- 语法规则
1)使用where子句限定返回的记录
2)where子句在from子句后面
3)select 列名的列表 from 表名 where 条件
select * from 表名
where 列名 查询条件
- 比较运算符
1)= 相等 >= 大于等于 > 大于 < 小于 <= 小于等于 <> 不等于
2)'字符串数据'要用单引号括起来(双引号也可以),默认是不区分大小写的。
3)日期数据使用单引号括起来,格式符合日期要求
select * from emp
where hiredate > '1981-02-20'
①查询职位为SALEMAN的员工编号、职位、入职日期。
SELECT empno 员工编号,job 职位,hiredate 入职日期
from emp
WHERE job = 'SALESMAN'
②查询1985年12月31日之前入职的员工姓名及入职日期。
select ename 员工姓名,hiredate 入职日期
from emp
where hiredate < '1985-12-31'
③查询部门编号不在10部门的员工姓名、部门编号。
select ename 员工姓名,deptno 部门编号
from emp
where DEPTNO <> 10
- 特殊比较运算符
1)between...and...:确定范围,在两个值之间(包含比较值)
2)in(列表):确定集合
3)like:模糊查询
a)使用通配符来替代未知的信息
b)%:可以代替任意长度的字符(0到任意多个)
c)_:可以代替任意一个字符
4)is null:查询是空的 - 练习
select *
from emp
where ename like '_a%'
①查询入职日期在82年至85年的员工姓名、入职日期。
SELECT ename,hiredate
FROM emp
WHERE hiredate BETWEEN '1982-01-01' AND '1985-12-31'
②查询月薪3000到5000的员工姓名、月薪。
SELECT ename,sal
FROM emp
WHERE sal BETWEEN '3000' and '5000'
③查询部门编号为10或者20的员工姓名、部门编号。
SELECT ename,DEPTNO
FROM emp
WHERE DEPTNO in (10,20)
④查询经理编号为7902、7566、7788的员工姓名。
SELECT ename
FROM emp
WHERE empno in (7902,7566,7788)
⑤ 查询员工姓名以w开头的员工姓名。
SELECT ename
FROM emp
WHERE ename LIKE 'W%'
⑥查询员工姓名倒数第二个字符为T的员工姓名。
SELECT ename
FROM emp
WHERE ename LIKE '%T_'
⑦查询奖金为空的员工姓名,奖金。
SELECT ename,comm
FROM emp
WHERE COMM is NULL
- 逻辑运算符:and(与)、or(或)、not(非)
and:条件1 and 条件2,条件1和条件2都成立,整个条件才成立。
or:条件1 or 条件2,条件1或者条件2成立一个,整个条件就都成立。
not:not 条件,取条件的剩余结果。可以和前面学习过的between...and... in like 一起使用
①查询工资超过2000并且职位是manager,或者职位是saleman的姓名、职位、工资。
SELECT ename,job,sal
FROM emp
WHERE sal > 2000 AND job = 'manager' or 'salesman'
②查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。
SELECT ename,DEPTNO,sal
FROM emp
WHERE DEPTNO in (10,20) AND (sal BETWEEN 3000 and 5000)
③查询入职日期在81年,并且职位不是sales开头的员工姓名、入职日期、职位
SELECT ename,hiredate,job
FROM emp
WHERE hiredate BETWEEN '1981-01-01' and '1981-12-31'
and not job LIKE 'sales%'
-- 查询职位是salesman或manager,部门编号是10或者20,姓名包含A的员工姓名、职位、部门编号。
SELECT ename,job,DEPTNO
FROM emp
where DEPTNO in(10,20) AND
job in('salesman','manager') AND
ename LIKE '%A%'
- 运算符的优先级
括号优于其他操作符
1算术运算符 * / + -
2连接运算符 ‖
3比较运算符= 相等 >= 大于等于 > 大于 < 小于 <= 小于等于 <> 不等于
4特殊比较运算符 between...and...、in、like、is null
5逻辑非 not
6逻辑与 and
7逻辑或 or