Oracle-DQL 2- 限定和排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle-DQL 2- 限定和排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3748字,纯文字阅读大概需要6分钟。
内容图文
![Oracle-DQL 2- 限定和排序](/upload/InfoBanner/zyjiaocheng/512/8d76b7a5ea434779b072b23ff51b9801.jpg)
--查询30号部门员工的姓名,职位和工资
SELECT ename,job,sal,deptno FROM emp
WHERE deptno = 30;
--查询职位是manager的员工
SELECT * FROM emp
WHERE job = ‘MANAGER‘;
--手动输入字符串要加单引号,并且区分大小写
-- 比较条件的两边的数据类型必须一致
--查询工资高于2000的员工信息
SELECT * FROM emp
WHERE sal > 2000;
--where字句后面必须是一个完整的逻辑表达式,结果要么为真要么为假
--在数据库中,这样的逻辑表达式通常是比较运算:= > < >= <= <>(!=)
--比较条件可以是某列数据和手动输入的数据比较
--也可以是某两列数据进行比较
SELECT * FROM emp
WHERE comm > sal;
--where中不能出现列的别名
SELECT ename,job,sal,12*sal nianxin FROM emp
WHERE 12*sal < 25000;
--作为条件的列可以不出现在select后面
--为了查询结果的可读性,最好选择作为查询条件的列
SELECT ename,job,deptno FROM emp
WHERE sal < 1500;
2.比较运算符
--in(value1,value2,...valueN) 列表匹配
SELECT * FROM emp
WHERE job IN (‘CLERK‘,‘PRESIDENT‘,‘SALESMAN‘);
--between 最小值 and 最大值,范围匹配
SELECT * FROM emp
WHERE sal BETWEEN 1500 AND 3000;
--like,模糊匹配
--% 表示任意个任意字符
--_ 表示一个任意字符
SELECT * FROM emp
WHERE ename LIKE ‘A%‘;
SELECT * FROM emp
WHERE ename LIKE ‘%S‘;
SELECT * FROM emp
WHERE ename LIKE ‘%A%‘;
SELECT * FROM emp
WHERE ename LIKE ‘_A%‘;
SELECT * FROM emp
WHERE ename LIKE ‘____‘;
--is null,匹配空值(不能写成 = null)
SELECT * FROM emp
WHERE comm IS NULL;
3.逻辑运算符
--and 与运算,多个条件必须同时满足才能返回结果
SELECT * FROM emp
WHERE sal > 1500
AND deptno = 20;
--or 或运算,多个条件只需要满足其中任意一个条件就可以返回结果
SELECT * FROM emp
WHERE sal > 1500
OR deptno = 20;
--not 非运算,返回不满足条件的结果
SELECT * FROM emp
WHERE NOT sal > 1500;
SELECT * FROM emp
WHERE ename NOT LIKE ‘%A%‘;
4.运算优先级:数学运算>比较运算>not>and>or
--使用括号来表示或者改变运算优先级
SELECT * FROM emp
WHERE sal > 1500
OR deptno = 20
AND job IN (‘CLERK‘,‘MANAGER‘);
SELECT * FROM emp
WHERE (sal > 1500
OR deptno = 20)
AND job IN (‘CLERK‘,‘MANAGER‘);
5.order by排序
--order by永远在查询语句的最后
--asc 升序排列,默认可以不写
--desc 降序排列
SELECT * FROM emp
ORDER BY sal;
--字符和日期的数据类型也可以排序
SELECT * FROM emp
WHERE deptno = 20
ORDER BY hiredate DESC;
SELECT * FROM emp
ORDER BY ename ASC;
--order by中可以出现列的别名
SELECT ename,job,sal,12*sal nianxin FROM emp
ORDER BY nianxin DESC;
--order by后面排序的列可以不出现在select
--选择排序的列可以提高查询结果的可读性
SELECT ename FROM emp
ORDER BY hiredate;
--多列排序
SELECT * FROM emp
ORDER BY deptno,sal DESC;
【练习】
1.查询emp表,显示薪水大于2000,且工作类别是MANAGER的雇员信息
SELECT * FROM emp
WHERE sal > 2000
AND job = ‘MANAGER‘;
2.查询emp表,显示年薪大于30000,工作类别不是MANAGER的雇员信息
SELECT ename,job,sal,deptno,12*sal nianxin FROM emp
WHERE 12*sal > 30000
AND job <> ‘MANAGER‘;
3.查询emp表, 显示薪水在1500到3000之间,工作类别以“M”开头的雇员信息
SELECT * FROM emp
WHERE sal BETWEEN 1500 AND 3000
AND job LIKE ‘M%‘;
4.查询emp表,显示佣金为空并且部门号为20或30的雇员信息(佣金=薪水SAL+津贴COMM)
SELECT ename,job,sal,comm,deptno,sal+comm yongjin FROM emp
WHERE sal+comm IS NULL
AND deptno IN (20,30);
5.查询emp表,显示佣金不为空或者部门号为20的雇员信息,
要求按照薪水降序排列 (佣金=薪水+津贴)
SELECT ename,job,sal,deptno,sal+comm yongjin FROM emp
WHERE sal+comm IS NOT NULL
OR deptno = 20
ORDER BY sal DESC;
6.查询emp表,显示年薪大于30000工作类别不是MANAGER,
且部门号不是10或40的雇员信息,要求按照雇员姓名进行排列
SELECT ename,job,sal,deptno,12*sal nianxin FROM emp
WHERE 12*sal > 30000
AND job <> ‘MANAGER‘
AND deptno NOT IN (10,40)
ORDER BY ename;
Oracle-DQL 2- 限定和排序
标签:逻辑 clerk 之间 com 表示 返回结果 改变 查询条件 数学运算
本文系统来源:https://www.cnblogs.com/JodieRao/p/11363934.html
内容总结
以上是互联网集市为您收集整理的Oracle-DQL 2- 限定和排序全部内容,希望文章能够帮你解决Oracle-DQL 2- 限定和排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。