Oracle实验四 SQL语言

实验四 SQL语言

【实验目的】

  1. 掌握在Oracle中添加示例方案的方法

  2. 熟练掌握SQL语言的查询功能

  3. 掌握SQL Plus常用命令

【实验内容】

一、 需要访问HR示例方案中的表,如果机器上没有该示例方案,则运行相关包和相应配置装入HR方案。如果已有HR方案,则跳过该步骤。

  1. hr.rar解压到D:\oracle\product\10.2.0\db_2\demo\schema\ human_resources目录下(不同机房可能根目录不同,也可能在C盘下,相应解压位置和下面的命令都要随之改变),然后在SQL*PLUS中执行hr_main.sql这个文件,以SYS用户登录并执行 SQL>@D:\oracle\product\10.2.0\db_2\demo\schema\human_resources\hr_main.sql

  2. 然后按提示依次输入如下:***是你oracle安装目录下的\product\10.2.0\db_2\RDBMS\log的文件路径

    Specify passwordfor HR as parameter 1:
    
    Enter valuefor 1: hr
    
    Specify default tablespeacefor HR as parameter 2:
    
    Enter valuefor 2: users
    
    Specify temporary tablespacefor HR as parameter 3:
    
    Enter valuefor 3: temp
    
    Specify passwordfor SYS as parameter 4:
    
    Enter valuefor 4:runner 
    
    Specify log path as parameter 5:
    
    Enter valuefor 5: D:\oracle\product\10.2.0\db_2\RDBMS\log 
    

​ 对于在官网下载和安装的Oracle Database 11g,其已安装HR,若要使用首先需按照下列步骤进行解锁
在这里插入图片描述

二、 完成下面的查询,记录查询命令和结果。

  1. 查询HR方案种有哪些表,列出表名
    在这里插入图片描述

  2. 设置行宽为160,每页行数为40
    在这里插入图片描述

  3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓、名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列,使用如下语句:

    select employee_id,
           first_name,
           last_name,
           hire_date,
           job_id,
           salary,
           manager_id,
           department_id
    from HR.employees
    where salary > 3000 and salary<6000
    order by department_id asc,employee_id desc;
    

在这里插入图片描述

  1. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列,使用如下语句

    select department_id, avg(salary), max(salary), min(salary), count(employee_id)
    from HR.employees
    where salary > 3000
      and salary < 6000
    group by department_id
    order by department_id asc;
    

在这里插入图片描述

  1. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称,使用语句

    select EMPLOYEE_ID, FIRST_NAME, PHONE_NUMBER, HR.EMPLOYEES.DEPARTMENT_ID, DEPARTMENT_NAME
    from HR.DEPARTMENTS,
         HR.EMPLOYEES
    where HR.EMPLOYEES.FIRST_NAME like '_t%'
      and HR.DEPARTMENTS.DEPARTMENT_ID = HR.EMPLOYEES.DEPARTMENT_ID;
    

在这里插入图片描述

  1. 在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。使用语句:

    select EMPLOYEE_ID, round(months_between(END_DATE, START_DATE)) 任职历时月份, JOB_ID, DEPARTMENT_ID
    from HR.JOB_HISTORY
    where round(months_between(END_DATE, START_DATE)) > 12;
    

在这里插入图片描述

  1. 查询每个部门经理的员工编号、姓名、薪水、部门号。

    select distinct Man_1.EMPLOYEE_ID, Man_1.FIRST_NAME, Man_1.LAST_NAME, Man_1.SALARY, Man_1.DEPARTMENT_ID
    from HR.EMPLOYEES Man_1 inner join HR.EMPLOYEES Man_2
    on Man_1.EMPLOYEE_ID = Man_2.MANAGER_ID;
    

在这里插入图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值