标签:des style io ar 数据 sp on c line
create database 石高峰
go
use 石高峰
go
create table fruit
(
xuliehao int primary key,
name varchar(20) not null,
jiage float,
[type] varchar(20)
)
go
insert into fruit values(‘1‘,‘红富士‘,‘578‘,‘苹果‘)
insert into fruit values(‘2‘,‘高清西瓜‘,‘265‘,‘西瓜‘)
insert into fruit values(‘3‘,‘红提‘,‘957‘,‘提子‘)
insert into fruit values(‘4‘,‘黄蕉‘,‘386‘,‘香蕉‘)
insert into fruit values(‘5‘,‘硬梨‘,‘186‘,‘梨‘)
insert into fruit values(‘6‘,‘鸭梨‘,‘586‘,‘梨‘)
insert into fruit values(‘7‘,‘酸果‘,‘359‘,‘苹果‘)
insert into fruit values(‘8‘,‘青提‘,‘789‘,‘提子‘)
insert into fruit values(‘9‘,‘火龙果‘,‘965‘,‘火果‘)
insert into fruit values(‘10‘,‘酸枣‘,‘329‘,‘枣类‘)
select *from fruit--*代表全部,显示fruit表里全部信息
选中上面 执行 即出结果
将列名 显示成中文的三种写法:
Select 列名 from 表名 where 列名 关系表达式 值
上边显示符合某一条件的列 ,称为投影
投影破坏了实体完整性,不能完整描述一个对象,所以失去了意义。
Select * from 表名 where 列名 关系表达式 值
上边的格式显示符合某一条件的行,称为筛选
例:
Select distinct 列名from 表名 去除这一列的重复值
Select * from 表名 where 列名 like‘’
通配符 % 任意多个字符
一个下划线代表一个任意字符
[4,6,7]中括号代表选里面的值其一
例:’ [3,5]%’可以代替’ 3%’or’ 5%’
Select * from表名 order by 列名 asc(升序)或desc(降序)
(可以写多个依据条件,用逗号分开,排序前面还可以加where筛选)
Select top 3 * from 表名 order by 列名 asc 升序选前三条
Select count(*)from 表名 表里有多少条信息,后可加筛选
Select AVG(列名)from 表名 查表中此列的平均值,括号内可为运算式,后可加条件
同理有最大值max 最小值min和sum
求平均值时的区别
Select *,(单价列名*重量列名)as新添加列名 from表名 显示添加新列
Select 列名 from 表名 [where筛选] group by列名 [having筛选] [排序]
中括号代表可以有可以没有,显示二选一: 列名 or 列名,统计
显示的列名必须与分组依据的列名相同
Having筛选是对分组后的结果进行筛选,不能单独用,只能在group by后
土方法:(依据为空值时容易丢数据)(筛选条件和连接条件混杂)
Select * from表名1,表名2… where 表名1.列名=表名2.列名…
表1 和表2 的列名不同时可以不用写 表名的
*可以为 表名.列名,…表名.列名as新列名(改列名)
SQL国际标准化方法:(不容易丢数据)(条件清晰)
Select * from表名1
Join 表名2 on 连接条件
Join 表名3 on 连接条件
……
Where 筛选条件
连接 |
内连接 |
Join前不加任何条件,有对应的显示,无对应不显(丢数据) |
||
外连接 |
全连接 |
Join前加Full |
左表右表内容全显,无对应值为空(行增加很多) |
|
左连接 |
Join前加Left |
左表全显,右表中无对应值为空(行增加) |
||
右连接 |
Join前加Right |
右表全显,左表中无对应值为空(行增加) |
Join会产生 笛卡尔积,影响性能,数据大时有可能系统瘫痪,所以join一般不用,如果需要用,一般别超过6个表,每个表别超过5000条记录。
Union语句
一个表中:
Select * from 表名where 条件
Union
Select *from 表名where 条件
两个表:
Select * from 表1
Union
Select * from表2
*可以是列名……
嵌套查询
Select * from表1 where 列名=
(
Select 列名 from 表2 where 条件
)
如果()内的值不是惟一的,等号换成in
子查询分相关子查询和无关子查询
无关子查询:内层查询时与外层无关联,可以单独执行语句
相关子查询:里层查询时单独无法执行,必须内外同时进行
Exists 经常用在相关子查询(拿内层的条件到外层去筛选一下)
子查询不光可以在where处用,还可以在select与from之间用
Select …(select 列名 from 表名 后可加条件语句等)…from 表名…
子查询应用:
分页查询(查指定页数数据):
外层(每页多少条)内层(要找第几页)
例:取第三页的前三行(每页五行)
取总页数:
标签:des style io ar 数据 sp on c line
原文地址:http://www.cnblogs.com/wanwuguizong/p/3977504.html