Oracle 实验五:Oracle中的SQL使用

实验五:Oracle中的SQL使用

一、实验目的

1.掌握SQL语言中常用系统函数;

2.掌握SQL语言的应用。

二、实验内容

1. 查询SQL中如下常用函数的使用,并举例说明(完成格式参考Length)。

  1. 字符< Ltrim、Replace、Rtrim、Substr、Trim>
  2. 日期< Sysdate、next_day>
  3. 转换< To_char、to_date、to_number>
  4. 统计函数< Sum、Avg、Max、Min、Count>

例如:Length

函数形式:Length(X)   

函数说明:返回字符串X的长度

举例:select length(hello world) from dual;

运行结果

LENGTH('HELLOWORLD')

--------------------

        11

函数形式Ltrim(X[,trim_string])

函数说明删除字符串X左边的字符

举例: select ltrim('***hello world***','*') from dual;

运行结果

LTRIM('***HELL

--------------

hello world***

2. 在使用SQL的内置函数时,经常用到关键词dual,查询dual的含义,并举例说明其使用方法。

含义:dual是Oracle中的一个伪表,利用这个伪表可以设置或查看序列,或者是调用一些内置的函数

使用方法求系统当前时间

SELECT sysdate FROM daul

3. 练习SQL事务处理

(参见教材p112- p113中的示例内容,自己举例使用保存点进行事务回退操作,将练习所执行的SQL记录下来)

4. SQL语言的应用(根据题目的写出执行正确的SQL语句):

(1)解锁HR模式,对HR模式下的表进行操作(此操作不用记录);

(2)以HR身份登录数据库后进行如下操作:

  • 查询HR.EMPLOYEES表的表结构;
  • 查询EMPLOYEES表中每个雇员的姓名(要求将first_name,last_name字段连接在一起显示)、职位、工薪、部门编号;
  • 查询HR.DEPARTMENTS表的表结构;
  • 使用子查询查询属于某一部门员工的姓名、职位、工薪、部门编号的信息(已知的信息为部门名称,部门名称由用户自己给出);
  • 统计某一部门的雇员的最高和最低工薪;
  • 向EMPLOYEES表添加一组数据:

values(600,’LISI’,’lisi@163.com’,sysdate,’SH_CLERK’,1650)

通过SELECT查询语句,查看是否在EMPLOYEES表中添加了相应的记录;

  • 使用UPDATE语句更新该记录的SALARY列,为部门编号80的员工上调工薪10%;
  • 删除操作⑥中新增加的那条记录。

(1)

(2)

1、

2、

3、

4、

5、

6、

7、

8、

实验五附加:SQL语句基础(子查询、多表查询应用)

  • 实验目的

1.掌握子查询的使用;

2.掌握检索多表中的数据。

  • 实验内容

SQL语言的应用(以scott用户下emp、dept表为例,根据题目写出执行正确的SQL语句或运行结果):

1.列出每个部门的部门号,员工数量、员工平均工资

2.列出员工SCOTT所在部门的所有员工编号(empno)、姓名(ename)、部门编号(deptno)以及工资(sal)。

3.列出工资(sal)比SCOTT多的所有员工信息。

4.查询emp表中所有员工的编号(empno)、姓名(ename)、部门编号(deptno)、部门名称(dname)。

5.若已知emp,dept表数据如下图所示:

  图1 emp表 

 

                                                                     图2 dept表

(1)运行如下语句后:

 SQL> select e.empno, e.ename,d.deptno,d.dname

  2   from emp e left join dept d

  3   on e.deptno=d.deptno;

显示的结果数据应为(  14  )行,并写出运行结果。

(2)运行如下语句后:

SQL> select e.empno, e.ename,d.deptno,d.dname

  2  from emp e right join dept d

  3  on e.deptno=d.deptno;

显示的结果数据应为( 15 )行,并写出运行结果。

(3)运行如下语句后:

SQL> select e.empno, e.ename,d.deptno,d.dname

  2  from emp e full join dept d

  3  on e.deptno=d.deptno;

显示的结果数据应为( 15  )行。

(4)运行如下语句后:

SQL> select count(*) from emp, dept;

显示的统计结果为( 56   )。

关注我,了解更多精彩内容!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不服输的小乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值