SQL查询
SQL数据查询
select [all | distinct] COLUMN_LIST from TABLE | VIEW //可查询多列
[where CONDITION] //用于行的条件,检索条件可以来源于一张表或多张表
[order by ORDER_LISH] //对检索结果排序,使可读性更好
[group by GROUP_LIST] //对检索结果分组,使可读性更好
[having CONDITION] //用于组的条件
列的计算
对于按照范式设计要求的表,各列之间不存在函数依赖,可以在查询时可以对列值进行计算
select name,salary,salary*0.08 as 'bonus' from member;
as后的名字是计算后新的列的别名
对查询结果分类
select name,salary,comment =
case
when salary>8000 then 'good'
when salary<8000 then 'not bad'
when
end
from member;
拼接列值
主要用于拼接字符串,对于不是字符串的列值可用cast转换
select NAME+ "'S SALARY IS" + cast (SALARY as varchar(10)) as 'INFO' from MEMBER;
where条件查询
条件有:=,>,<,<=,>=,!<,!>,!=等,并列子句有and,or,not
区间查询
where语句中,对于一些区间的情况,可以使用between ··· and ···来实现
in运算符
当where语句中用or并列的子句过多,可以用in。in可以提高可读性,提高检索速度,还可以用索引查询,但or不能
where ID [not] in ('001','002','003')
空值查询
is [not] null
like模糊查询
like需要与通配符结合使用
* %:表示0个或多个字符
* _:包含一个字符
* []:指定范围,如[a-z]
* [^]:不属于指定范围,如[^a-z]
排序查询
单列排序
order by COLUMN asc:表升序
order by COLUMN desc:表降序
多列排序
order by COLUMN1 asc,COLUMN2 desc
显示部分排序结果
select top NUM [percent] * from ···order by ··· asc //要排序才能显示部分
注意:as后新建的虚拟字段,也可以用于排序