2022年数据库系统实验报告 .pdf
实验一 SQL 语言一、实验目的(1)通过上机实践,熟悉Oracle的SQL * Plus 环境及使用方法(2)掌握SQL 语言,能熟练运用 SQL 语言进行数据定义和数据操纵(3)加深对关系数据模型的数据结构和约束的理解二、实验环境硬件:微机软件: ORACLE 8i 或 9i三、实验内容及要求1. 了解并掌握 SQL * Plus 环境的使用2. 用SQL 的DDL 语句图书管理系统创建基表3. 为基表“读者”补充定义:职称只能取初级、中级、高级之一4. 用SQL 的DML 语句向上述基表中增加、修改和删除数据5. 用SQL 的QL 语句完成指定查询6. 用SQL 的DDL 语句创建视图、索引7. 为自己创建一张结构与 scott 用户的员工表 emp 相同的员工表。四、实验过程1、用SQL 的DDL 语句图书管理系统创建基表图书(图书编号、分类号、书名、作者、出版单位、单价)CREATE TABLE 图书 (图书编号VARCHAR(4)PRIMARY KEY, 分类号VARCHAR(5), 书名VARCHAR(18), 作者 VARCHAR(8), 出版单位 VARCHAR(10), 单价 DEC(5,2);读者(借书证号、姓名、单位、职称)CREATE TABLE 读者 (借书证号VARCHAR(6) PRIMARY KEY, 姓名 VARCHAR(10), 单位 VARCHAR(10),职称 VARCHAR(10);借阅(借书证号、图书编号、借阅日期、备注)CREATE TABLE 借阅 (借书证号VARCHAR(6),图书编号VARCHAR(4), 借阅日期DATE,备注VARCHAR(30),PRIMARY KEY( 借书证号 ,图书编号 ),FOREIGN KEY( 借书证号 )REFERENCES 读者 (借书证号),FOREIGN KEY( 图书编号 ) REFERENCES 图书 (图书编号 );2、为基表 “ 读者 ” 补充定义:职称只能取初级、中级、高级之一ALTER TABLE 读者 ADD CHECK( 职称 IN( 初级 , 中级, 高级 );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 3、向三个基表中插入指定数据。图书表中数据:0001 TP31 计算机基础 WANG 高等教育 17.000002 TP32 数据库原理 16.500003 TN31并行计算机 YANG 清华大学 12.800004 TP33 高等数学 WANG 高等教育 25.000005 TN32 大学英语 ZHAO 高等教育 22.500006 TN33 数据库系统 LIU 人民邮电 24.00INSERT INTO 图书VALUES(0001, TP31, 计算机基础 , WANG , 高等教育,17.00);INSERT INTO 图书 VALUES(0002, TP32, 数据库原理 ,NULL,NULL,16.50);INSERT INTO 图书VALUES(0003, TN31, 并行计算机 , YANG , 清华大学,12.80);INSERT INTO 图书VALUES(0004, TP33, 高等数学 , WANG , 高等教育,25.00);INSERT INTO 图书VALUES(0005, TN32, 大学英语 , ZHAO , 高等教育,22.50);INSERT INTO 图书VALUES(0006, TN33, 数据库系统 , LIU , 人民邮电,24.00);读者表中数据:T201 LIXIN 计算机系 中级S981 WANG 通信系高级Z003 CHEN 工厂初级T205 ZHAO 英语系中级INSERT INTO 读者 VALUES ( T201, LIXIN , 计算机系 , 中级);INSERT INTO 读者 VALUES ( S981, WANG , 通信系 , 高级);INSERT INTO 读者 VALUES ( Z003, CHEN , 工厂, 初级);INSERT INTO 读者 VALUES ( T205, ZHAO, 英语系 , 中级);借阅表中数据:S981 0002 2001-2-20Z003 0001 2001-3-3T201 0001 2001-3-10T201 0002 2016-4-11名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - T201 0003 2016-4-12T201 0004 2016-4-13T201 0005 2016-4-14INSERT INTO 借阅VALUES ( S981,0002,to_date(2001-2-20 , yyyy-mm-dd),null);INSERT INTO 借阅 VALUES ( Z003,0001,to_date(2001-3-3 , yyyy-mm-dd ),null);INSERT INTO 借阅 VALUES ( T201,0001,to_date(2001-3-10 , yyyy-mm-dd ),null);INSERT INTO 借阅 VALUES ( T201,0002,to_date(2016-4-11 , yyyy-mm-dd ),null);INSERT INTO 借阅 VALUES ( T201,0003,to_date(2016-4-12 , yyyy-mm-dd ),null);INSERT INTO 借阅 VALUES ( T201,0004,to_date(2016-4-13 , yyyy-mm-dd ),null);INSERT INTO 借阅 VALUES ( T201,0005,to_date(2016-4-14 , yyyy-mm-dd ),null);4、数据的修改和删除 为编号为 0002的图书填上作者和出版单位。UPDATE 图书SET 作者=LIU,出版单位 = 电子工业 WHERE 图书编号=0002; 将所有图书单价上调 5(即:原值 1.05) 。UPDATE 图书 SET 单价=单价*1.05; 将书名包含 计算机 的书的分类号改为TP38。UPDATE 图书 SET 分类号 =TP38 WHERE 书名 LIKE %计算机 % ; 删除借书证号以 S 开头的所有读者信息和借阅信息。DELETE FROM 借阅 WHERE 借书证号 LIKE S% ;5、用SQL 的QL语句完成以下查询(1)列出图书馆中所有藏书的书名及出版单位。SELECT 书名 ,出版单位FROM 图书;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - (2) 查询工厂所有借阅了图书的读者姓名和职称。SELECT 姓名 ,职称FROM 读者,借阅WHERE 读者.借书证号 =借阅.借书证号 AND 单位= 工厂 ;(3) 查询藏书中比高等教育出版社所有图书单价更高的书籍。SELECT *FROM 图书WHERE 单价ALL(SELECT 单价 FROM 图书 WHERE 出版单位 = 高等教育 );(4) 查询各出版社图书的最高价、最低价和平均价格。SELECT MAX(单价),MIN(单价),AVG(单价 )FROM 图书GROUP BY 出版单位 ;(5) 列出当前至少借阅了5本图书的读者及所在单位。SELECT 姓名 ,单位FROM 读者WHERE 借书证号 IN (SELECT 借书证号 FROM 借阅 GROUP BY 借书证号 HAVING COUNT(*)4);6、用SQL 的DDL 语句创建视图、索引(1)建立各单位当前借阅图书情况的简单统计视图,视图中包括单位名称,借书人数和借阅人次。CREATE VIEW V1(单位,借书人数 ,借阅人次 )AS SELECT 单位 ,COUNT(*),COUNT( 借书证号 )FROM 读者WHERE 借书证号 IN (SELECT 借书证号 FROM 借阅) GROUP BY 单位;(2) 对该视图进行查询。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - SELECT 单位 ,借书人数 ,借阅人次FROM V1;(3) 按出版社为图书表建立一个降序索引。CREATE INDEX 索引 ON 图书 (出版单位 DESC);7.为自己创建一张结构与scott用户的员工表 emp相同的员工表。connect scott/tiger grant all privileges on emp to wang;connect wang/rootcreate table 员工表 as select * from scott.emp;五、实验小结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -