欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-08 11:59:41
电子科技大学数据库与软件工程实验报告二一、实验目的​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