Loading... * 限制数据和对数据排序 + where子句 - 作用:限制显示的数据 简单来说就是选择显示的行数据 - 语法:where 列名 操作符 操作数 - 注意:where 子句一定放在from子句后面 1、查询工作在20号部门的员工信息 select * from emp where deptno = 20; *** * 比较操作符 < <= >= <> != = * 比较数值型数据 2、查询工资大于2000的员工姓名,工资 select ename,sal from emp where 2000<sal; 比较字符型数据 注意:需要用单引号引起来 而且严格区分大小写 3、查询工作是CLERK的员工信息 select * from emp where job='CLERK'; select * from emp where job='clerk';--严格区分大小写 比较日期型数据 注意:需要用单引号引起来 oracle默认日期格式为 DD-MON-RR格式 31-12月-1981 4、查询入职日期在1981年之后的员工信息 select * from emp where hiredate>'31-12月-1981'; 5、查询不在20号部门工作的员工信息 select * from emp where deptno !=20; select * from emp where deptno <>20; *** * 特殊比较运算符 BETWEEN 下限 AND 上限 使用BETWEEN .. AND.. 运算符来判断要比较的值是否在某个范围内。 注意:包含上限和下限 * 比较数值类型 6、查询工资在1000到3000之间的员工信息 select * from emp where sal between 1250 and 3000; * 比较日期类型 7、查询入职日期在81年之后83之前的员工信息 select * from emp where hiredate between '31-12月-1981' and '1-1月-1983'; *** * IN运算符 使用IN运算符判断要比较的值是否和集合列表中的任何一个值相等 - 语法: in(集合列表) 8、查询工作在20或10号部门的员工信息 select * from emp where deptno in (20,10); 9、查询职位是CLERK或MANAGER的员工信息 select * from emp where job in('CLERK','MANAGER'); 4.查询经理编号为7902, 7566, 7788的员工姓名,经理编号。 select ename,mgr from emp where mgr in(7902,7566,7788); *** * LIKE运算符 + 使用LIKE运算符判断要比较的值是否满足部分匹配,也叫模糊查询 - %:代表零个或多个字符 - _:代表一个字符 10、查询名字中包含M的员工信息 select * from emp where ename like '%M%';--%:代表零个或多个字符 11、查询名字第二个字符为S的员工信息 select * from emp where ename like '_M%';--_:代表一个字符 12、查询名字开头为SM的员工信息 select * from emp where ename like 'SM%'; 可以使用ESCAPE标识符实现对“%”和 “_”的查找 13、查询名字开头为SM_的员工信息 select * from emp where ename like 'SM@_%' escape '@'; *** * IS NULL 运算符 - 使用 IS NULL 运算符来判断要比较的值是否为空值NULL 14、查询奖金为null的员工信息 select * from emp where comm is null; *** * 逻辑运算符 and与 or或 not非 - 作用:当需要和多个条件表达式进行比较时,需要使用逻辑运算符把多个表达式连接起来 - 语法: 表达式A and 表达式 B :当A和B都为true整个表达式才为true,否者为false - 注意: 表达式A和表达式 B必须返回的都是boolean 15、查询职位是CLERK【并且】工资大于1000的员工姓名和工资 select ename,sal from emp where job='CLERK' and 1000<sal; *** -- ---------------or ------------------ - 语法: 表达式A or 表达式 B :只要A或者B其中一个表达式为true,整个表达式为true,A和B都为false,整个表达式才为false - 注意: 表达式A和表达式 B必须返回的都是boolean 16、查询职位是CLERK【或者】工资大于1000的员工姓名和工资 select ename,sal,job from emp where job='CLERK' or 1000<sal; select *from emp *** -----------------not----------------------- * 逻辑非,用来对条件表达式取反。 - 一般与 between..and.. like in结合使用 17、查询入职日期不在81年之后83之前的员工信息 select * from emp where hiredate not between '31-12月-1981' and '1-1月-1983'; 18、查询员工姓名开头不是S的员工信息 select * from emp where ename not like 'S%'; 19、查询不工作在20号或10号部门的员工信息 select * from emp where deptno not in(10,20); *** * 运算符的优先级 - 逻辑运算符的优先级:or<and - 括号的优先级最高 - 先运算再比较最后做逻辑判断 20、查询工资大于1500并且职位是CLERK,或职位是SALESMAN的员工信息 select * from emp where 1500<sal and job='CLERK' or job='SALESMAN'; 21、查询工资大于1500并且职位是CLERK或者SALESMAN的员工信息 select * from emp where (job='CLERK' or job='SALESMAN') and 1500<sal; 22、查询年薪在12000到60000之间 并且 工作是SALESMAN的员工信息(不计奖金) select * from emp where 12000<sal*12 and sal*12<60000 and job='SALESMAN'; *** * 排序:order by子句 - 作用:对查询得到的结果集进行排序 - 语法:order by 列/列别名/列序号 排序规则 -+ 注意: - ①空值最大,降序排序时,null会在最前 - ②order by子句 必须在整个sql语句最后 - ③sql语句运行顺序:from-where-select-order by - ④按照多列排序:中间用逗号隔开,而且有先后顺序 - asc:升序排序,默认 - desc:降序排序 * 数值类型 23、查询所有员工信息并按照工资进行升序排序 select * from emp order by sal asc; select * from emp order by sal; 24、查询所有员工信息并按照工资进行降序排序 select * from emp order by sal desc; 25、查询所有员工信息并按照奖金进行降序排序 select * from emp order by comm desc; 26、查询工作在10号部门的员工信息并且按照工资进行降序排序 select * from emp where deptno=10 order by sal desc * 字符类型排序: 按照26个英文字母排序 A~Z 27、查询所有员工信息并按照员工姓名进行升序排序 select * from emp order by ename ; * 日期类型排序 日期越往后越大 28、查询所有员工信息并按照入职日期进行升序排序 select * from emp order by hiredate; * 按列别名排序 select ename,hiredate empdate,empno from emp order by empdate; * 按列序号排序:序号从1开始 select ename,hiredate ,empno from emp order by 2; * 按照多列排序:中间用逗号隔开,而且有先后顺序 29、查询20号部门员工信息并先按工作降序排序,再按照工资升序排序 select * from emp where deptno=20 order by job desc,sal desc; 最后修改:2020 年 11 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
1 条评论
木有代码高亮OωO