zoukankan      html  css  js  c++  java
  • 数据库7-22

    oracle 第二章

    练习1  

    1.使用两种方式查询所有员工信息  

    select *  from emp    select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO  from emp  

    2.查询员工编号、员工姓名、员工职位、员工月 薪、工作部门编号。

     select empno,ename,job,sal,deptno  from emp

    练习2

     1.员工转正后,月薪上调20%,请查询出所有员 工转正后的月薪。  

    select sal*(1+0.2) newsal  from emp

     2.员工试用期6个月,转正后月薪上调20%,请查 询出所有员工工作第一年的月薪所得(不考虑奖 金部分)

     select sal*6+sal*(1+0.2)*6 newsal  from emp

    练习3

     1.员工试用期6个月,转正后月薪上调20%,请查 询出所有员工工作第一年的所有收入(需考虑奖 金部分),要求显示列标题为员工姓名,工资收 入,奖金收入,总收入。

     select  ename "员工姓名",sal*6+sal*(1+0.2)*6 "工资收入",12*comm "奖金收入",6*sal+6*sal*(1+0.2)+12*comm  "总收入"   from emp;

    练习4

     1.员工试用期6个月,转正后月薪上调20%,请查 询出所有员工工作第一年的所有收入(需考虑奖 金部分),要求显示列标题格式为:XXX的第一年 总收入为XXX。

     select  ename|'的第一年总收入为’||(6*sal+6*sal*(1+0.2)+12*comm )
     from emp;

     2.查询员工表中一共有哪几种岗位类型。

     select  distinct job  from emp;

    课后作业

    1.分别选择员工表、部门表、薪资等级表中的所 有数据。

     select  *  from emp;

     select  *  from dept;

     select  *  from salgrade;

     2.分别查看员工表、部门表、薪资等级表的表结 构。

     ????????(并没有运行出来)

    到命令窗口

     desc emp;

     desc dept;

     desc salgrade;  

     3.验证语句

    SELECT DISTINCT deptno,job FROM emp 的结果。  

    mysql

    练习1

    1.使用两种方式查询所有员工(EMP)信息

     select *  from emp;    select empno,ename,job,mgr,hredate,sal,comm,deptno  from emp;

    2.查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号

     select empno,ename,job,sal,deptno  from emp;

    练习2

    1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。

     select sal*(1+0.2) newsal  from emp;

    2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)

     select sal*6+sal*(1+0.2)*6 newsal  from emp;

    练习3

    1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。

     select ename "员工姓名",sal*6+sal*(1+0.2)*6 "工资收入",comm*12 "奖金收入",sal*6+sal*(1+0.2)*6+ifnull(comm*12,0) "总收入"  from emp;

    练习4

    1.查询员工表中一共有哪几种岗位类型。

     select distinct job  from emp;

    练习5

    1. 分别查看员工表、部门表、薪资等级表的表结构

     describe emp;  describe dept;  describe salgrade;

    练习6

    1.查询职位为SALESMAN的员工编号、职位、入职日期。

     select empno,job,hiredate  from emp  where job='SALESMAN';

    2.查询1985年12月31日之前入职的员工姓名及入职日期。

     select ename,hiredate  from emp  where hiredate < '1985-12-31';

    3.查询部门编号不在10部门的员工姓名、部门编号。

     select ename,deptno  from emp  where deptno !=10;

    练习7

    1.查询入职日期在82年至85年的员工姓名,入职日期。

     select ename,hiredate  from emp  where hiredate between '1982-01-01' and '1985-12-31';

    2.查询月薪在3000到5000的员工姓名,月薪。

     select ename,sal  from emp  where sal between 3000 and 5000;

    3.查询部门编号为10或者20的员工姓名,部门编号。

     select ename,deptno  from emp  where deptno =10 or deptno=20;

    4.查询经理编号为7902, 7566, 7788的员工姓名,经理编号。

     select ename,empno  from emp  where empno=7902 or 7566 or 7788;

    练习8

    1.查询员工姓名以W开头的员工姓名。

     select ename  from emp  where ename like 'W_';

    2.查询员工姓名倒数第2个字符为T的员工姓名。

     select ename  from emp  where ename like '%T_';

    3.查询奖金为空的员工姓名,奖金。

     select ename,comm  from emp  where comm  is null;

    练习9

    1.查询工资超过2000并且职位是MANAGER,或者职位是SALESMAN的员工姓名、职位、工资

     select ename,job,sal  from emp  where sal>2000 and job='MANAGER';

    2.查询工资超过2000并且职位是 MANAGER或SALESMAN的员工姓名、职位、工资

     select ename,job,sal  from emp  where sal>2000 and job='MANAGER' or 'SALEMAN';

    3.查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。

     select ename,deptno,sal  from emp  where deptno=10 or 20 and sal between 3000 and 5000;

    4.查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。

     select ename,hiredate,job  from emp  where hiredate between '1981-01-01' and '1981-12-31' and job not like 'SALES_';

    5.查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。

     select ename,job,deptno  from emp  where (job = 'SALESMAN' or 'MANAGER' )and (deptno =10 or 20 )and ename like '%A%';

    练习11

    1.查询入职日期最早的前5名员工姓名,入职日期。

     select ename,hiredate  from emp  order by hiredate  limit 0,5;

    2.查询工作在CHICAGO并且入职日期最早的前2名员工姓名,入职日期。

     select ename,hiredate  from emp,dept  where emp.deptno=dept.deptno and loc='CHICAGO'  order by hiredate  limit 0,2;

    3.按照每页显示5条记录,分别查询第1页,第2页,第3页信息,要求显示员工姓名、入职日期、部门名称。

     select ename,hiredate,deptno  from emp  limit 0,5;  

     select ename,hiredate,deptno  from emp  limit 6,10;

     select ename,hiredate,deptno  from emp  limit 11,15;

    课后作业

    1.查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。

     select ename,hiredate,job  from emp  where hiredate > '1982-07-09'and job not like 'SALESMAN';

    2.查询员工姓名的第三个字母是a的员工姓名。

     select ename  from emp  where ename like '__a%';

    3.查询除了10、20号部门以外的员工姓名、部门编号。

     select ename,deptno  from emp  where deptno not between 10 and 20;

    --where deptno not in (10,20);

    4.查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。

     select *  from emp  where deptno =30  order by sal desc, ename ;  

    5.查询没有上级的员工(经理号为空)的员工姓名。

     select ename  from emp  where mgr is null;

    6.查询工资大于等于4500并且部门为10或者20的员工的姓名工资、部门编号。

     select ename,sal,deptno  from emp  where sal>=4500 and deptno = 10 or 20;

    --where sal>=4500 and deptno in (10,20);

  • 相关阅读:
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    SVN分支
    SVN分支
    SVN 版本回退
    SVN 版本回退
    如何在excel中取消合并单元格后内容自动填充?
    如何在excel中取消合并单元格后内容自动填充?
    如何让自己像打王者荣耀一样发了疯、拼了命的学习?
  • 原文地址:https://www.cnblogs.com/hole/p/11228187.html
Copyright © 2011-2022 走看看