查询【最重要、难度最大】
- 计算列
- distinct
- between
- in
- top
- null
- order by
- 模糊查询
- 聚合函数
- group by
- having
- 连接查询(定义;分类:内链接、外连接、完全链接、交叉连接、自连接、联合)
- 嵌套连接
- 计算列
select ename,sal*12 as '年薪' from emp; -- 为了保证语句的可移植性,别名 年薪,一定要用双引号!
注意:在Oracle中字段的别名不允许用单引号括起来,但是SqlServer 2005却允许,因此为了兼容性,最好字段别名都用双引号括起来。
select 5 from emp; --输出的行数与emp的行数相同,每行只有一个字段,值为5
select 5; --ok, 不推荐
- distinct(可以过滤重复的null)
select distinct deptno from emp; -- 输出不重复的部门编号
select distinct comm,deptno from emp; -- 对comm和deptno的组合进行过滤
select deptno,distinct comm from emp; -- 逻辑上冲突
select ename,* from emp; -- error *已经包含了ename,逻辑错误
- null
isnull 是个函数,语法:isnull(check_value,replace_value),检查check_value是否为null,为null的话返回replace_value。
select avg(isnull(price,10)) from list --将价格为null的书的价格改为10,然后计算平均价格。