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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,942评论 0 4
  • 引出 •请思考如下问题? –查询所有员工的每个月工资总和,平均工资? –查询工资最高和最低的工资是多少? –查询公...
    C_cole阅读 7,317评论 0 3
  • 目标 聚合函数 分组函数 子查询 多行子查询 引出 •请思考如下问题? –查询所有员工的每个月工资总和,平均工资?...
    wqjcarnation阅读 4,169评论 0 6
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,122评论 0 0
  • 周瞳的笑 红尘炼心去,终是一个黄土莽汉 无与匕心胜血腥,无声无生无笙 黑夜里的我,站在通往光明的门口 经脉绞成同命...
    涯忘鱼阅读 320评论 0 0