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) ;

推荐阅读更多精彩内容