• SQL 简单练习


    USE study;
    SELECT * FROM EMP 

    --查询雇员姓名的最后三个字母

    SELECT ename,right(ename,3) FROM EMP ;

    --查询10部门雇员进入公司的星期数

    SELECT ename,datename(month,hiredate) from EMP where deptno =10

    --1 查询部门30中的所有员工

    SELECT * FROM EMP WHERE deptno=30

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

    SELECT ename,empno,deptno FROM EMP where job='clerk'

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

    SELECT ename from EMP where sal >comm

    --求出每个雇员的年薪

    SELECT ename,sal*12 FROM EMP ;

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

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

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

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

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

    SELECT *FROM EMP WHERE (job ='MANAGER'AND deptno =10) OR (job ='CLEAK'AND deptno =20)OR(job<>'MANAGER'AND job<>'CLEAK'AND sal >=2000) 

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

    SELECT DISTINCT job FROM EMP WHERE comm is not null

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

    SELECT *FROM EMP where comm IS NULL OR comm<100

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

    SELECT * FROM EMP WHERE month (dateadd (day,3,hiredate))=month(dateadd(month,1,hiredate))

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

    SELECT * FROM EMP WHERE datediff (year,hiredate ,getdate())>12

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

    SELECT upper(substring(ename,1,1))+lower(substring (ename,2,len(ename)))from emp

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

    SELECT ename FROM EMP WHERE len(ename)=5 ;

    --13 显示不带有"R"的员工的姓名

    SELECT ename FROM EMP WHERE ename NOT LIKE 'R'

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

    SELECT ename,right(ename,3) FROM EMP 

    --15 显示所有员工的姓名,用"a"代替所有的"A"

    SELECT replace(ename,'A','a')from EMP 

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

    SELECT ename,hiredate FROM EMP WHERE datediff(year,hiredate,getdate())>10 

    --17 显示员工详细信息,按姓名排序

    SELECT * FROM EMP ORDER BY ename

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

    SELECT ename,hiredate FROM EMP ORDER BY datediff(year ,hiredate ,getdate())DESC    

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

    SELECT ename,job,sal from EMP ORDER BY job DESC,sal

    --20 显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将
    --最早年份的员工排在前面

    SELECT ename,year(hiredate)'年份',month(hiredate)'月份'FROM EMP ORDER BY 月份,年份 

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

    SELECT ename,floor(sal/30) FROM EMP 

    --22 找出在(任何年份的)2月受雇的所有员工

    SELECT ename FROM EMP WHERE month(hiredate)=2

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

    SELECT ename,datediff (day,hiredate ,getdate()) FROM EMP

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

    SELECT ename FROM EMP WHERE ename LIKE '%A%';

    --25 以年月日的方式显示所有员工的服务年限(大概)

    SELECT ename, floor(datediff(day,hiredate ,getdate())/365),floor(floor(datediff(day,hiredate ,getdate()))-floor(datediff(day,hiredate ,getdate())/365)*365)/12 from EMP
  • 相关阅读:
    简单工厂、工厂方法、抽象工厂
    c#之反射总结
    设计模式Builder(建造者)模式
    c#之委托和事件的区别
    c#之委托总结
    javascript之流程控制 和函数的容易忽略点
    javascript之六种数据类型以及特殊注意点
    Sublime Text 快捷键
    链接中获取文件名
    js 获取当天23点59分59秒 时间戳 (最简单的方法)
  • 原文地址:https://www.cnblogs.com/stayreal/p/3906715.html
Copyright © 2020-2023  润新知