zoukankan      html  css  js  c++  java
  • Oracle学习总结(5)—— SQL语句经典案例

    --0.所有员工信息

    SELECT * FROM emp

    --1.选择部门30的所有员工

    SELECT * FROM emp WHERE deptno=20

    --2.列出所有办事员(CLERK)的姓名,编号部门编号

    SELECT ename,empno,deptno FROM emp WHERE job = 'CLERK'

    --3.找出佣金高于薪金的员工

    SELECT ename,sal,comm FROM emp WHERE comm > sal

    --4.找出佣金高于薪金的60%的员工

    SELECT ename,sal,comm FROM emp WHERE comm>sal*0.6

    --5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料

    SELECT * FROM emp WHERE (deptno =10 AND job = 'MANAGER') OR (deptno = 20 AND job ='CLERK')

    --6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但薪金大于或等于2000的所有员工的详细资料

    SELECT * FROM emp

    WHERE (deptno =10 AND job = 'MANAGER')

    OR (deptno = 20 AND job ='CLERK')

    OR (job NOT IN('MANAGER','CLERK') AND sal >=2000)

    --7.找出收取佣金的员工的不同工作

    SELECT DISTINCT job FROM emp WHERE comm IS NOT NULL

    --8.找出不收取佣金或收取佣金低于100的员工

    SELECT ename,comm FROM emp WHERE comm IS NULL OR comm<100

    --9.找出各月倒数第三天受雇佣的所有员工

    SELECT ename,hiredate FROM emp WHERE last_day(hiredate)-hiredate=2

    --10.找出早于12年前受雇佣的员工

    SELECT ename,hiredate WHERE (to_char(SYSDATE,'YYYY')-to_char(hiredate,'YYYY'))>12

    --11.首字母大写的方式显示所有的员工姓名

    SELECT INITCAP(ename) FROM emp

    --12.显示姓名正好为5个字符的员工

    SELECT ename FROM emp WHERE ename LIKE '_____'

    SELECT ename FROM emp WHERE LENGTH(ename)=5

    --13.显示不带有“R”的员工姓名

    SELECT ename FROM emp WHERE ename NOT LIKE '%R%'

    --14.显示所有员工姓名的前三个字符

    SELECT SUBSTR(ename,1,3) AS ename FROM emp

    --15.显示所有员工的姓名,用“a”替换所有的“A”

    SELECT REPLACE(ename,'A','a') AS newname FROM emp

    --16.显示满10年服务年限的员工的姓名和受雇日期

    SELECT ename,hiredate FROM emp WHERE (to_char(SYSDATE,'YYYY') -to_char(hiredate,'YYYY'))>10

    --17.显示员工的所有资料,按姓名排序

    SELECT * FROM emp ORDER BY ename

    --18.显示员工的姓名和受雇日期,根据其年限将老员工排在前面

    SELECT * FROM emp ORDER BY hiredate ASC

    --19.显示所有员工的姓名,工作和薪金,按工作降序排列,工作相同则按薪金排序

    SELECT ename,job,sal FROM emp ORDER BY job DESC,sal ASC

    --20.显示所有员工的姓名,加入公司的年份和月份,按月份排序,月份相同则按最早年份排序

    SELECT ename,to_char(hiredate,'MM') AS MONTH,to_char(hiredate,'yyyy') AS YEAR FROM emp ORDER BY MONTH ASC,YEAR ASC

    --21. 显示在一个月为30天的情况下所有员工的日薪金,忽略余数

    SELECT ename,TRUNC(sal/30,0) AS daysal FROM emp

    --22.找出在任何年份的二月受雇佣的所有员工

    SELECT ename,hiredate FROM emp WHERE to_char(hiredate,'MM')=2

    --23.对于每个员工,显示其加入公司的天数

    SELECT ename,TRUNC(sysdate-hiredate) AS days FROM emp

    --24.显示姓名字段的任何位置包含“A”的所有员工的姓名

    SELECT ename FROM emp WHERE ename LIKE '%A%'

  • 相关阅读:
    SecureCRT ssh Ubuntu Home End delete键失效?
    ssh登陆ubuntu开始较慢
    Ubuntu 12.04安装最新版本PostgreSQL
    xpath用法
    算法作业5——分治法求最近点对问题
    算法作业4——二分归并排序
    算法作业2——Floyd和Dijkstra
    算法作业3——顺序查找和二分查找
    算法作业1——Prim和Kruskal算法
    M
  • 原文地址:https://www.cnblogs.com/zhanghaiyang/p/7212781.html
Copyright © 2011-2022 走看看