SQL 实验项目3-数据更新和视图

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/COCO56/article/details/102680258

大三上:数据库系统概论所有实验报告:https://blog.csdn.net/COCO56/article/details/102768942

一、实验目的及要求

  1. 熟练使用DBMS提供的功能组件来实现向数据库中插入数据、修改数据和删除数据等操作;
  2. 掌握用INSERT、DELETE、UPDATE语句实现对数据库的增加、删除和修改;
  3. 进一步理解完整性约束的概念,了解DBMS对完整性约束检查的实现;
  4. 熟练使用DBMS提供的功能组件来实现向数据库中视图的定义。
  5. 掌握对视图的操作。

二、实验内容(或实验原理、实验拓扑)

  1. 数据的更新操作:包括实现对关系表进行插入、修改和删除操作。
  2. 体会完整性约束的作用,设置数据修改和删除的处理策略。当更新操作可能破坏参照完整性时,根据需要设置系统的操作策略。
  3. 视图的定义:包括实现数据库中视图的创建、修改和删除。
  4. 通过视图实现数据的查询和更新。

三、实验设备与环境

I7 7700HQ+16G内存+43TB分布式硬盘的笔记本电脑、Windows 10 1903政府版、Visual Studio 2019 企业版、.NET Framework 4.7.2

四、实验设计方案(包括实验步骤、设计思想、算法描述或开发流程等)

任务一

  1. 启动DBMS服务器,视情况决定是否附加实验用数据库。
  2. 利用对象资源管理器,对指定数据库中的表进行数据的添加、修改和删除。尝试去做一些违反数据库定义中的约束的操作,分析反馈操作信息,并回答思考问题。
  3. 在查询编辑器中,利用INSERT、DELETE、UPDATE语句在指定的数据库的相关表中进行如下数据的添加、修改和删除。对操作中出现的问题进行分析,并加以解决。

第一阶段:在已经创建好的eshop数据库中的各表中添加样例数据。

  1. 在eshop数据库的members表中增加2条记录,内容如下:
    ‘jinjin’, ‘津津有味’,‘女’,‘1982-04-14’,‘北京市’,8200.0, ‘jinjin’
    ‘liuzc518’,‘刘志成’,‘男’,‘1972-05-18’,‘湖南株洲’,3500.0,‘liuzc518’
  2. 将姓名为“津津有味”的姓名修改为“刘津”
  3. 将m_sex(性别)为‘男’且m_address(家庭地址)为‘湖南株洲’的会员的m_salary(月薪)增加20%
  4. 删除m_address(家庭地址)为‘北京市’的会员记录。
  5. 删除members表中所有记录。

第二阶段:教材P130 习题 5、(8)-(11)

5.针对习题4中的四个表试用SQL语言完成以下各项操作:
(8)把全部红色零件的颜色改成蓝色。
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
(11)请将(S2, J6, P4, 200)插入供应情况关系。

第三阶段:更新“学生—课程”数据库(选作)。

  1. 向学生表S中插入一行数据。(分析插入数据的学号与已有学号相同或不同时的反馈信息)。
  2. 根据学生表和课程表生成一个“计算机”系学生的成绩临时表CGRADE,表中包括SN、CNO、GRADE三个属性。
  3. 将王玲所学的高等数学成绩改为86.0.
  4. 删除成绩低于所有课程平均成绩的选课元组。
  5. 设置数据修改和删除的处理策略。(要求选课表中有S04的选课信息)
    a.将学生表中学号为S04的学生学号修改为S28。
    b.删除学生表中学号为S28的学生信息。
    查看执行操作后表SC的变化情况或不能执行操作的反馈信息,并加以分析。

任务二

  1. 启动DBMS服务器,视情况决定是否附加实验用数据库。
  2. 在查询编辑器(或对象资源管理器)中,进行视图的创建、修改、删除操作。

第一阶段:在已经创建好的eshop数据库中进行视图的相关操作。

  1. 在members表中创建地址为“湖南株洲”的会员的视图V_addr。
  2. 在orders表中创建购买了商品号为“0910810004”商品的视图V_buy。
  3. 在members和orders表上创建“湖南株洲”的会员购买了商品号为“0910810004”商品的视图V_addr_buy。
  4. 在视图V_addr上查询性别为“男”的会员信息。
  5. 在视图V_addr中增加一条记录(内容如下),并查看members表中记录的改变情况。记录内容如下:(T-SQL)
    ‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’
  6. 将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况。
  7. 在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况。
  8. 删除视图V_addr_buy、V_buy和V_addr

第二阶段:教材P130 习题 9(1)-(2)

9.请为三建工程项目建立一一个供应情况的视图,包括供应商代码(SNO)、零件代码( PNO)、
供应数量(QTY)。
针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1供应三建工程的情况。

五、实验结果(包括设计效果、测试数据、运行结果等)

任务一

第一阶段:在已经创建好的eshop数据库中的各表中添加样例数据。

  1. 在eshop数据库的members表中增加2条记录,内容如下:
    ‘jinjin’, ‘津津有味’,‘女’,‘1982-04-14’,‘北京市’,8200.0, ‘jinjin’
    ‘liuzc518’,‘刘志成’,‘男’,‘1972-05-18’,‘湖南株洲’,3500.0,‘liuzc518’
    在这里插入图片描述
  2. 将姓名为“津津有味”的姓名修改为“刘津”
    在这里插入图片描述
  3. 将m_sex(性别)为‘男’且m_address(家庭地址)为‘湖南株洲’的会员的m_salary(月薪)增加20%。
    在这里插入图片描述
  4. 删除m_address(家庭地址)为‘北京市’的会员记录。
    在这里插入图片描述
  5. 删除members表中所有记录。
    在这里插入图片描述

第二阶段:教材P130 习题 5、(8)-(11)

5.针对习题4中的四个表试用SQL语言完成以下各项操作:
(8)把全部红色零件的颜色改成蓝色。
在这里插入图片描述
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
在这里插入图片描述
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
在这里插入图片描述
(11)请将(S2, J6, P4, 200)插入供应情况关系。
在这里插入图片描述

任务二

第一阶段:在已经创建好的eshop数据库中进行视图的相关操作。

  1. 在members表中创建地址为“湖南株洲”的会员的视图V_addr。
    在这里插入图片描述
  2. 在orders表中创建购买了商品号为“0910810004”商品的视图V_buy。
    在这里插入图片描述
  3. 在members和orders表上创建“湖南株洲”的会员购买了商品号为“0910810004”商品的视图V_addr_buy。
    在这里插入图片描述
  4. 在视图V_addr上查询性别为“男”的会员信息。
    在这里插入图片描述
  5. 在视图V_addr中增加一条记录(内容如下),并查看members表中记录的改变情况。记录内容如下:(T-SQL)
    ‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’
    在这里插入图片描述
  6. 将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况。
    在这里插入图片描述
  7. 在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况。
    在这里插入图片描述
  8. 删除视图V_addr_buy、V_buy和V_addr
    在这里插入图片描述

第二阶段:教材P130 习题 9(1)-(2)

9.请为三建工程项目建立一一个供应情况的视图,包括供应商代码(SNO)、零件代码( PNO)、
供应数量(QTY)。
在这里插入图片描述
针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
在这里插入图片描述
(2)找出供应商S1供应三建工程的情况。
在这里插入图片描述

六、实验小结(包括收获、心得体会、注意事项、存在问题及解决办法、建议等)

任务一:
操作过程中,注意以下几点:

  1. 在输入数据时,要注意数据类型、键和数据约束的限制。
  2. 数据更改和删除时要注意参照完整性约束。
  3. 往基本表中插入记录时表名后面可带列名表(插入指定列及列顺序,指定对应列的值),也可不带列名表(指定所有列的值,按固定顺序)。

任务二:
操作过程中,注意以下几点:

  1. 视图是一个虚表,只是为用户提供了一个观察底层数据的窗口,通过视图看到的数据会随关系表的变化而改变。
  2. 用户可像操作关系表一样操作视图,但操作能否成功,还要看对视图的操作能否由DBMS转化为对相应基表的操作。

七、附录(包括作品、流程图、源程序及命令清单等)

-- 任务一:
-- 第一阶段:在已经创建好的eshop数据库中的各表中添加样例数据。
USE eshop
--(1)在eshop数据库的members表中增加2条记录,内容如下: 
--‘jinjin’, ‘津津有味’,‘女’,‘1982-04-14’,‘北京市’,8200.0,	‘jinjin’
--‘liuzc518’,‘刘志成’,‘男’,‘1972-05-18’,‘湖南株洲’,3500.0,‘liuzc518’
INSERT INTO members VALUES('jinjin','津津有味','1982-04-14','女','北京市',8200.0,'jinjin')
INSERT INTO members VALUES('liuzc518','刘志成','1972-05-18','男','湖南株洲',3500.0,'liuzc518')

--(2)将姓名为“津津有味”的姓名修改为“刘津”
update members set M_name='刘津' where M_account='jinjin'

--(3)将m_sex(性别)为‘男’且m_address(家庭地址)为‘湖南株洲’的会员的m_salary(月薪)增加20%
update members set M_salary*=1.2 where M_sex='男' and M_address='湖南株洲'

--(4)删除m_address(家庭地址)为‘北京市’的会员记录。
delete from members where M_address='北京市'

--(5)删除members表中所有记录。
delete from members

--第二阶段:教材P130 习题 5、(8)-(11)
use spj
--(8)把全部红色零件的颜色改成蓝色。
UPDATE P SET
PColor='蓝' WHERE PColor='红' ;

--(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJ SET SNO='S3' WHERE SNO='S5'AND JNO='J4' AND PNO='P6'

--(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETE FROM SPJ WHERE SNO='S2';
DELETE FROM S WHERE SNO='S2';

--(11)请将(S2, J6, P4, 200)插入供应情况关系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY)
/*INTO子句中指明列名*/
VALUES('S2', 'J6', 'P4', 200);
/*插入的属性值与指明列要对应*/

--任务二:
--第一阶段:在已经创建好的eshop数据库中进行视图的相关操作。
USE eshop
--(1)在members表中创建地址为“湖南株洲”的会员的视图V_addr。
create view V_addr as select * from members where M_address='湖南株洲'

--(2) 在orders表中创建购买了商品号为“0910810004”商品的视图V_buy。
create view V_buy as select * from orders where P_no='0910810004'

--(3)在members和orders表上创建“湖南株洲”的会员购买了商品号为“0910810004”商品的视图V_addr_buy。
create view V_addr_buy as 	SELECT members.* FROM members 
	JOIN orders ON members.m_account = orders.m_account
		AND p_no = '0910810004' AND m_address = '湖南株洲'

--(4)在视图V_addr上查询性别为“男”的会员信息。
SELECT * FROM V_addr WHERE m_sex = '男'

--(5)在视图V_addr中增加一条记录(内容如下),并查看members表中记录的改变情况。记录内容如下:(T-SQL)
--‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’
INSERT into V_addr VALUES('fengxk','冯向克','1972-05-18','男','北京市',5000.0,'fxk0628')

--(6)将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况。
UPDATE V_addr
SET m_password = 'liuzc0518'
WHERE m_password = 'liuzc518'
select * from members where M_account='liuzc518'

--(7)在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况。
DELETE 
FROM V_addr
WHERE m_account = 'fengxk'
select * from members where M_account='fengxk'

--(8) 删除视图V_addr_buy、V_buy和V_addr
DROP VIEW V_addr_buy, V_buy, V_addr

--第二阶段:教材P130 习题  9(1)-(2)
use spj
--9.请为三建工程项目建立一一个供应情况的视图,包括供应商代码(SNO)、零件代码( PNO)、
--供应数量(QTY)。针对该视图完成下列查询:
--创建视图:
CREATE VIEW V_SPJ AS
SELECT SNO, PNO, QTY FROM SPJ
WHERE JNO=
	(SELECT JNO FROM J WHERE JNAME='三建')
--(1)找出三建工程项目使用的各种零件代码及其数量。
SELECT PNO,QTY FROM V_SPJ;
--(2)找出供应商S1供应三建工程的情况。
SELECT PNO,QTY FROM V_SPJ /*S1供应三建工程的零件号和对应的数量*/
WHERE SNO='S1'

猜你喜欢

转载自blog.csdn.net/COCO56/article/details/102680258