第一章 检索记录(SQL server经典实例)
本章目录
/****** SSMS 的 SelectTopNRows 命令的脚本 ******/
SELECT TOP (1000) [EMPNO]
,[ENAME]
,[JOB]
,[MCG]
,[HIREDATE]
,[SAL]
,[COMM]
,[DEPTNO]
FROM [Text_02].[dbo].[emp]
select * from emp --查看表中的所有数据
select * from emp where DEPTNO =10 --查找部门编号为10的所有员工
select * from emp where deptno=10 --部门编号为10的所有员工
or comm is not null --有业务提成的所有员工
or sal<=2000 and deptno=20 --部门编号为20且工资低于2000的所有员工
select * from emp
where (
deptno=10 --部门编号为10的所有员工
or comm is not null --有业务提成的所有员工
or sal<=2000) --工资低于2000的所有员工
and deptno=20 --部门编号为20的所有员工
select ename, deptno,sal from emp --筛选部分列
select sal as salary, comm as commission from emp where salary <5000
--无法执行,不能直接在where字句中引用别列名
select * from ( select sal as salary, comm as commission from emp ) x where salary <5000
--包装一个内嵌视图x,这样就可以使用别列名了
select (ename + ' WORKS AS A ' + job) as msg from emp where deptno=10
--将符合要求的一些数据,字符串组合成msg输出
--串联运算符+
--select语句中使用条件逻辑
select ename,sal ,
case when sal <=2000 then 'UNDERPAID' --工资低于2000,返回underpaid
when sal >=4000 then 'OVERPAID' --工资高于4000,返回overpaid
else 'OK' --其它工资水平,返回ok
end as status
from emp
--限定返回行数
select top 5* from emp
--随机返回若干行记录
select top 5 ename, job from emp order by newid()
--判断一个值是否为null,必须用is而不是=
select * from emp where comm is null
--将null转化为实际值 coalesce函数
select coalesce(comm,0) as commission from emp
--查找匹配项
select ename, job,deptno from emp where deptno in (10,20) --查找编号为10或20的两个部门的所有员工
--in(数组)在此范围内
select ename, job,deptno from emp
where deptno in (10,20)
and (ename like '%I%' or job like '%ER') --且(名字中含有i或职位以er结尾)
--like运算符
--%通配符 一个或多个字符
1. 查看表中的所有数据
2. 查找符合条件的所有员工
or–或
and–且