2019070203 限定查询
每天学习一点点,进步一点点
语法如下:
③SELECT [DISTINCT] * | 列名称 [别名] , 列名称 [别名] ,... | 数据计算
①FROM 数据表 [别名]
②[WHERE 限定条件(s)];
- 在WHERE 子句里面常用的几种判断符: 关系运算(>、< 、>= 、<= 、= 、<> 、!=)
- 还有其他几种 BETWEEN...AND 、IN 、LIKE 、IS NULL
范例:查询出工资大于1000的所有的雇员信息
1、
SELECT *
FROM emp
WHERE sal>1000 ;
范例:查询出姓名是SMITH的雇员信息
- 数据内容是区分大小写的
2、
SELECT *
FROM emp
WHERE ename='SMITH' ;
范例:查询出工资在10000 ~ 1500之间的所有非销售人员的编号、姓名、职位、工资
3、
SELECT empno,ename,job,sal
FROM emp
WHERE sal>=1000 AND sal<=1500 AND job!='SALESMAN' ;
范例:查询出所有不是办事员的员工信息
4、
SELECT * FROM emp WHERE job<>'CLERK' ;
SELECT * FROM emp WHERE job!='CLERK' ;
范例:查询出所有是办事员的员工信息
5、
SELECT * FROM emp WHERE job='CLERK' ;
范例:查询出职位是办事员或销售人员的信息
6、
SELECT * FROM emp WHERE job='CLERK' OR job='SALESMAN' ;
除了上面的运算符 还有其他的运算符
1)、范围查询 BETWEEN 最小值 .. AND 最大值;
- 是带边界的范围;
- 可以使用在各种数据类型上;
范例:查询出工资在1000~1500的所有雇员信息
7、
SELECT * FROM emp WHERE sal>=1000 AND sal<=1500 ;
SELECT * FROM emp WHERE sal BETWEEN 1000 AND 1500 ;
范例:查询所有在1981年雇佣的雇员
8、
SELECT * FROM emp WHERE hiredate BETWEEN '01-1月 -81' AND '31-12月 -1981' ;
2)、空判断:IS NULL、IS NOT NULL;
- 空:在数据库原理上称之为一个不确定的内容,如果使用null进行任何运算结果都是null。
范例:查询所有不领取佣金的雇员信息
9、
SELECT * FROM emp WHERE comm IS NULL ;
范例:查询所有领取佣金的雇员信息
- 应该使用IS NOT NULL 运算符一次性完成检查,而不应该使用组合处理:
10、
SELECT * FROM emp WHERE comm IS NOT NULL ;
SELECT * FROM emp WHERE NOT comm IS NULL ;
3)、模糊查询:LIKE
- 使用LIKE 可以实现关键字的检索,而后提供有两个运算匹配符号:
- “ _ ” :表示匹配任意的一位字符;
- “ % ” :表示匹配任意的0位、1位或者多位字符;
范例:查询雇员姓名中以字母A开头的所有员工信息
11、
SELECT * FROM emp WHERE ename LIKE 'A%' ;
范例:查询雇员姓名中以第二个字母A开头的所有员工信息
12、
SELECT * FROM emp WHERE ename LIKE '_A%' ;
- LIKE 进行运算的时候可以针对于各种数据类
13、
SELECT * FROM emp WHERE hiredate LIKE '%-81' ;
SELECT * FROM emp WHERE sal LIKE '%00' ;
- 如果现在要想进行关键字查询,则可以使用 “%关键字%”的形式完成;
14、
SELECT * FROM emp WHERE ename LIKE '%A%' ;
- 如果在进行关键字检索时没有设置关键字,也就是说设置的是空字符串,则表示查询全部; 当然性能是最差的的,查询全部 全是得用 select * from emp;
15、
SELECT * FROM emp WHERE ename LIKE '%%' ;
4)、范围查询:IN 、NOT IN;
范例:查询出雇员编号为 7369、7566、7799、9999的雇员
- 这一操作最初的做法是使用OR
16、
SELECT * FROM emp
WHERE empno=7369 OR empno=7566 OR empno=7839 OR empno=9999 ;
- 但是如果查询条件过多,查询的复杂度就会提升,那么此时最好的做法是使用IN 来完成:
17、
SELECT * FROM emp
WHERE empno IN (7369,7566,7839,9999) ;
SELECT * FROM emp
WHERE empno NOT IN (7369,7566,7839,9999) ;
NOT IN 中不能有空
18、
SELECT * FROM emp
WHERE empno NOT IN (7369,7566,7839,NULL) ;