数据库教程:电子科技大学数据库与软件工程实验报告二

电子科技大学数据库与软件工程实验报告二一、实验目的​1、熟悉 Oracle 的环境,学习使用 SQL Developer 与 Oracle 进行交互;​2、建立基本的数据库表,表结构的查看、修改与删除;​3、学习对表中数据进行插入,删除,修改及查询操作。二、实验内容​在SQL Developer中使用学生用户连接Oracle数据库,导入4张表:BONUS、 DEPT(部门表)、EMP(员工表)和 SALGRADE(工资等级表),进行简单查询以及高级查询操作;创建学生信息表(INFOS)和


电子科技大学数据库与软件工程实验报告二

一、实验目的

​ 1、熟悉 Oracle 的环境,学习使用 SQL Developer 与 Oracle 进行交互;

​ 2、建立基本的数据库表,表结构的查看、修改与删除;

​ 3、学习对表中数据进行插入,删除,修改及查询操作。

二、实验内容

​ 在SQL Developer中使用学生用户连接Oracle数据库,导入4张表:BONUS、 DEPT(部门表)、EMP(员工表)和 SALGRADE(工资等级表),进行简单查询以及高级查询操作;创建学生信息表(INFOS)和成绩表(SCORES),进行数据库表及数据的插入、查询、更新、删除等基本操作。

三、实验软件

​ Oracle 数据库、SQL Developer

四、实验步骤及数据记录

1.使用SQL Developer导入表

​ (1) 使用学生用户连接数据库,此时角色选择“默认值”。

​ (2) 将SQL 脚本粘贴进工作表窗口中,点击“运行脚本”按钮,导入成功后查询到的DEPT,EMP和SALGRADE表的数据内容如下图所示。

!!!

2.数据库表和字段的基本操作

2.1 创建学生信息表和约束

电子科技大学数据库与软件工程实验报告二

电子科技大学数据库与软件工程实验报告二

代码解析

​ ① 在 Oracle 代码中,“/”执行缓存区中的语句,由于缓冲区中只存储一条

刚刚保存过语句,由于每条语句没有用分号结尾,只是保存在缓冲区,因此每条语句后面都有单独行“/”。

​ ② 创建一个主键约束。

​ ③、④、⑤、⑥、⑦ 一起创建各种 check 约束。其中⑦是唯一约束,表示该 列值是唯一的,列中的值不能重复。

​ 查看 INFOS 表创建成功后的“”和“约束条件”内容,如下图所示。

电子科技大学数据库与软件工程实验报告二

电子科技大学数据库与软件工程实验报告二

2.2 创建成绩表和约束

电子科技大学数据库与软件工程实验报告二

代码解析:

​ ① Oracle 中的自动增长需要借助序列(Sequence)完成。

​ ② Oracle 中的外键约束定义。

​ 查看 SCORES 表创建成功后的“”和“约束条件”内容,结果如图所示。

电子科技大学数据库与软件工程实验报告二
电子科技大学数据库与软件工程实验报告二

2.3 插入数据

​ 使用以下 INSERT 命令,在学生信息表(INFOS)中插入两个学生的信息:

电子科技大学数据库与软件工程实验报告二

代码解析:

​ ① 表名后面缺省了列名,默认是表 Infos 中的所有列名,values 中的值要与表中列一一对应,包括顺序和数据类型的对应。

​ ② 在 Oracle 中,日期是国际化的,不同的区域安装的数据库,默认的日期格式不同,因此为了程序便于移植,日期的输入要使用 TO_DATE 函数对日期格式化后输入,采用格式化字符串对日期进行格式化时,格式化字符串中字符不区分大小写,常见的格式化字符如下:

​ yyyy:表示四位年份

​ MM:表示两位月份,比如 3 月表示为 03

​ dd:表示两位日期

​ HH24:24 表示小时从 0-23,HH12 也表示小时从 0-11。

​ mi:表示分钟

​ ss:表示秒

​ ③ 在遇到存在默认值的列时,可以使用 default 值代替。

​ 查看插入数据成功后 INFOS 表的“***数据”,***如图所示。

2.4 简单查询数据

​ 用 SELECT 命令查询学生信息表(INFOS),获取所有性别(GENDER)为 “男”的学生姓名(STUNAME)、性别(GENDER)、年龄(AGE)和住址 (STUADDRESS)信息,并按年龄排序。***记录***本次查询操作使用的相关命令。

​ 相关命令:

SELECT STUNAME,GENDER,AGE,STUADDRESS FROM INFOS WHERE GENDER=‘男’ ORDER BY AGE;

​ 查询结果如图所示:

电子科技大学数据库与软件工程实验报告二

2.5 更新数据

​ 用 UPDATE 命令更新学生信息表(INFOS)中学生姓名(STUNAME)为“阮小二”的以下信息:

​ 班号(CLASSNO)改为“1002”

​ 住址(STUADDRESS)改为“山东莱芜”

​ 相关命令:

UPDATE INFOS SET CLASSNO=‘1002’,STUADDRESS=‘山东莱芜’ WHERE STUNAME=‘阮小二’;

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

2.6 删除某条数据

​ 用 DELETE 命令删除学生信息表(INFOS)中学号(STUID)为“s100102”的学生信息;然后用 SELECT 命令查询学生信息表(INFOS)的所有信息。

​ 相关命令:

DELETE FROM INFOS WHERE STUID=‘s100102’;

​ 删除后的结果如图所示:

电子科技大学数据库与软件工程实验报告二

3. 简单查询

​ 使用 Oracle 自带的三张表:EMP 表(员工表)、DEPT 表(部门表)和SALGRADE 表(工资等级表)。

​ 1)每名员工年终奖是 2000 元,请在 EMP 表中查询获取基本工资在 2000 元以上的员工姓名及其工资和不含奖金的年总工资信息。

​ 相关命令:

SELECT ENAME,SAL,12*SAL FROM EMP WHERE SAL>2000;

​ 查询结果如图所示:
电子科技大学数据库与软件工程实验报告二

​ 2)请在 EMP 表中查询获取工资在 2000 元以上的员工姓名及其工作信息。

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示:

电子科技大学数据库与软件工程实验报告二

4.高级查询

1)查询 EMP 表中的员工所在部门编号

​ 分析:可能有多个员工在一个部门的情况,此时只需要查询一个结果即可,

不需要查询多条数据。
电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示:
电子科技大学数据库与软件工程实验报告二

2)查询出薪酬少于 2000 且没有发奖金的员工

​ 第一步:查询薪酬少于 2000 的员工。

电子科技大学数据库与软件工程实验报告二

​ 查询的结果如图所示

电子科技大学数据库与软件工程实验报告二

​ 第二步:查询薪酬少于 2000 且没有发奖金的员工

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

3)查询工作职责是 SALESMAN、PRESIDENT 或 ANALYST 的员工

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

4)查询工资从 1000 到 2000 之间的员工

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

5)查询员工名称以 J 开头以 S 结尾的员工的姓名、工资和工资

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

6)查询出 DEPT 表中没有员工的部门编号

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示
电子科技大学数据库与软件工程实验报告二

7)查询出月工资大于 2000 元的员工姓名、工作、工资,及其所在部门名称

电子科技大学数据库与软件工程实验报告二

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

五、实验结论及思考题

1、查询出工作职责不是 SALESMAN、PRESIDENT 或 ANALYST 的员工姓名、 工作、工资,及其所在部门名称。

​ SELECT命令:

SELECT ENAME,JOB,SAL,DNAME FROM EMP,DEPT WHERE JOB NOT IN(‘SALESMAN’, ‘PRESIDENT’, ‘ANALYST’) AND EMP.DEPTNO=DEPT.DEPTNO;

​ 查询的结果如图所示

电子科技大学数据库与软件工程实验报告二

2、换一种方法查询出工资大于 2000 元的员工姓名、工作、工资,及其所在部门名称。

​ SELECT命令:

SELECT ENAME,JOB,SAL,DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO AND SAL>2000;

​ 查询结果如图所示

电子科技大学数据库与软件工程实验报告二

3、查询出每个部门下的员工姓名和工资。请写出 SELECT 命令,并给出查询结果截图。

​ SELECT命令:

SELECT ENAME,SAL,DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO;

​ 查询结果如图所示:

电子科技大学数据库与软件工程实验报告二

4、如果在步骤 2.4 中使用 sys 用户查询学生用户的 INFOS 表,能否查询到学生用户 INFOS 表的添加、删除、修改操作?为什么?如果不同,如何才能让 sys 用户查询到学生用户对 INFOS 表的添加、删除、修改操作?

​ 不能使用sys用户查询学生用户的INFOS表,因为没有得到dba用户的授权,需要得到dba用户的授权后,才能查询学生用户对INFOS表的添加、删除、修改操作。

六、总结及心得体会

1、无法连接到服务器

​ 检查数据库IP地址是否输入正确,账号密码是否输入正确

2、在命令行添加表之后,在左边表中找不到添加的表

INFOS 表,能否查询到学生用户 INFOS 表的添加、删除、修改操作?为什么?如果不同,如何才能让 sys 用户查询到学生用户对 INFOS 表的添加、删除、修改操作?**

​ 不能使用sys用户查询学生用户的INFOS表,因为没有得到dba用户的授权,需要得到dba用户的授权后,才能查询学生用户对INFOS表的添加、删除、修改操作。

六、总结及心得体会

1、无法连接到服务器

​ 检查数据库IP地址是否输入正确,账号密码是否输入正确

2、在命令行添加表之后,在左边表中找不到添加的表

​ 左边有个刷新按钮,点击刷新按钮,新建的表才会显示出来

源文件:
链接:https://pan.baidu.com/s/12g_PZS5F_jqxEi2Lpk14mQ
提取码:lyrt

数据库技术:电子科技大学数据库与软件工程实验报告二地址:https://blog.csdn.net/weixin_45088166/article/details/109451985

需要了解更多数据库技术:电子科技大学数据库与软件工程实验报告二,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/631162.html

(0)
上一篇 2021年5月31日
下一篇 2021年5月31日

精彩推荐