Oracle SQL:经典入门级查询练习 (2)

这是继续上一篇练习的一些例子
  1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。
  2. 找出EMP表员工名字中含有A 和N的员工姓名。
  3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小。
  4. 列出部门编号为20的所有职位。
  5. 列出不属于SALES 的部门。
  6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。
  7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。
  8. 说明以下两条SQL语句的输出结果:
  9. SELECT EMPNO,COMM FROM EMP WHERE COMMISNULL;
  10. SELECT EMPNO,COMM FROM EMPWHERE COMM =NULL;
  11. 让SELECT 语句的输出结果为
  12. SELECT * FROM SALGRADE;
  13. SELECT * FROM BONUS;
  14. SELECT * FROM EMP;
  15. SELECT * FROM DEPT;
  16. ……
  17. 列出当前用户有多少张数据表,结果集中存在多少条记录。 

  18. 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?
 
--答案解析如下:
--找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。 
SELECT ename FROM emp WHERE ename LIKE '__A%';

--找出EMP表员工名字中含有A 和N的员工姓名。 
SELECT ename FROM emp WHERE ename LIKE '%A%N%' OR ename LIKE '%N%A%';

--找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小。 
SELECT ename,sal,comm FROM emp ORDER BY sal ASC ,comm DESC;

--列出部门编号为20的所有职位。 
SELECT job FROM emp WHERE deptno=20;

--列出不属于SALES 的部门。 
SELECT deptno,dname FROM dept WHERE dname!='SALES'
SELECT deptno,dname FROM dept WHERE dname NOT IN 'SALES';

--显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。 
SELECT ename,sal FROM emp WHERE sal BETWEEN 1000 AND 1500 ORDER BY sal ASC;
SELECT ename,sal FROM emp WHERE sal>1000 AND sal<=1500 ORDER BY sal ASC;

--显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。 
SELECT ename ,job,(sal+NVL(comm,0))*12 FROM emp WHERE job IN ('MANAGER','SALESMAN');

--说明以下两条SQL语句的输出结果: */
SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL; --查询没有薪金的雇员编号和薪金

SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL; --查询薪金等于NULL的雇员编号和薪金
--说明:IS NULL是判断某个字段是否为空,为空并不等价于为空字符串或为数字0; 
--而 =NULL 是判断某个值是否等于 NULL,NULL = NULL和NULL <> NULL都为 FALSE。 

--让SELECT 语句的输出结果为 
        SELECT * FROM SALGRADE; 
        SELECT * FROM BONUS; 
        SELECT * FROM EMP; 
        SELECT * FROM DEPT; 
--列出当前用户有多少张数据表,结果集中存在多少条记录。 
SELECT 'SELECT * FROM ' || tab.tname || ';' FROM tab;
--其中的||表示的是字符串的连接

--判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?
--不会报错,这个句子和SELECT ENAME,SAL FROM EMP WHERE SAL > 1500;等价,执行语句的时候,系统解析到‘1500’的时候发现他能转换为数字,所有就按数字来执行了。


 


 


 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值