CUUG官方博客: CUUG官网_CUUG怎么样_CUUG培训就业怎么样_CUUG学Oracle要多少钱

SQL 1~3章作业 兰州交大 郭磊磊

 作业一
1 描述 scott.emp 表的结构,查询 emp 表中所有数据

  desc emp;
  select * from emp;

2 找出下面语句中的错误并修正
错误语句 select empno ename,job sal x 12 New Salary from emp;
修正语句select empno,ename,job,sal*12“New Salary” from emp;
3 查询 scott.emp 表中,所有员工的姓名、工资、工资与奖金之和,列头显示为
如下格式: NAME SALARY Total_Salary

      select ename“NAME”,sal“SALARY”,sal+nvl(comm,0)“Total_Salary” from emp;
   或select ename as name,sal as salary,sal+nvl(comm,0)“Total_Salary” from emp;
   或select ename  name,sal salary,sal+nvl(comm,0)“Total_Salary” from emp;
4 查看最后一次执行的查询语句,将此语句保存在操作系统中:
/home/oracle/les01_01.sql,sqlplus 中查看并执行这个脚本

     list
     save /home/oracle/les01_01.sql
     get  /home/oracle/les01_01.sql
    @/home/oracle/les01_01.sql
作业二
1 查询员工的姓名和工资,要求工资大于$2850.
      select ename,sal from emp where sal>2850;
2  查询员工的姓名和工资,要求工资在$1500 $2850 之间

     select ename,sal from emp where sal>=1500 and sal<=2850;
 或 select ename,sal from emp where sal between 1500 and 2850;
3 查询员工的姓名和工资,要求工资不在$1500 $2850 之间,按工资升序排序.
      select ename,sal from emp where sal not between 1500 and 2850 order by sal asc;
 或select ename,sal from emp where not (sal>=1500 and sal<=2850) order by sal asc;
4 查询出部门号为 10 30 的所有员工的姓名、工作、入职时间, 按照入职时
间的降序排序

    select ename,job,hiredate from emp where deptno in (10,30) order by hiredate desc;
 或select ename,job,hiredate from emp where deptno=10 or deptno=30 order by hiredate desc;
5 查询出姓名中第二个字母为: 'A'的所有员工姓名

    select ename from emp where ename like ‘_A% ';
6 查询员工的姓名、工作、工资,要求工作是 Clerk Analyst,并且工资不等
$1000$3000$5000

    select ename,job,sal from emp where job in (“CLERK”,“ANALYST”) and sal not in (1000,3000,5000);
作业三
1 写一个查询,选择出当前的日期
   select sysdate from dual;
2 查询出雇员表( emp)表中的员工编号、 姓名、 工资、 新的薪水(是原先薪水
1.25 倍),并将该列标记为 New Salary。将该脚本保存到 les03_02.sql

   select empno,ename,sal,sal*1.25“New Salary” from emp;
   save les03_02.sql
运行文件 les03_02.sql 中的查询
   @les03_02.sql
查询出雇员表中所有员工的姓名、入职时间、 和工资调整日期(工作 6 个月之
后的第一个星期一)。其格式如下:“ 1981-09-23

    select ename,hiredate,to_char(next_day(add_months(hiredate,6),‘MONDAY’),‘yyyy-mm-dd’) from emp;
查出每个员工的名字( ename)、雇佣日期到现在的日期间隔的月数(要求四
舍五入为整数),该列命名为 MONTHS_WORKED,并以该列的降序排序

     select ename,round(months_between(sysdate,hiredate)) months_worked from emp order by months_worked desc;
查询员工的姓名,以及姓名的长度。要求其姓名首字母大写

     select initcap(ename),length(ename) from emp;

作者:guoleilei 分类:学员作业 浏览:506 评论:0
留言列表
发表评论
来宾的头像

点击关闭
  • 在线客服