数据更新及视图1.docx
《数据更新及视图1.docx》由会员分享,可在线阅读,更多相关《数据更新及视图1.docx(13页珍藏版)》请在冰豆网上搜索。
数据更新及视图1
课程实验报告
课程名称
数据库系统概论
班级
计算
实验日期
2014.10.19
姓名
学号
实验成绩
实验名称
实验2:
数据更新及视图
实
验
目
的
及
要
求
1.掌握数据定义语句;
2.掌握数据更新语句;
3.掌握视图的使用。
实
验
环
境
操作系统:
Windows
DBMS:
SQLServer2005
实
验
内
容
商品(商品号字符(3),商品名字符(20),单价浮点型,商品类别字符(5),供应商字符(20));
顾客(顾客号字符(3),姓名字符(10),住址字符(20));
购买(顾客号字符(3),商品号字符(3),购买数量整型);
用SQL语句实现如下题目:
1.创建上述3个表。
2.往表中插入数据:
商品:
M01,佳洁士,8.00,牙膏,宝洁;
M02,高露洁,6.50,牙膏,高露洁;
…
顾客:
C01,Dennis,海淀;
C02,John,朝阳;
购买:
C01,M01,13;
C01,M05,12;
3.将所有的“牙刷”商品单价增加10%。
4.将“高露洁”供应商改为“Colgate”。
5.删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品。
6.删除没有购买记录的商品。
7.创建顾客号,商品号,商品名称,单价,购买数量的视图。
调
试
过
程
及
实
验
结
果
CREATETABLE商品
(商品号VARCHAR(3)PRIMARYKEY,
商品名VARCHAR(20)UNIQUE,
单价FLOAT,
商品类别VARCHAR(5),
供应商VARCHAR(20)
);
CREATETABLE顾客
(顾客号VARCHAR(3)PRIMARYKEY,
姓名VARCHAR(10)UNIQUE,
住址VARCHAR(20)
);
CREATETABLE购买
(顾客号VARCHAR(3),
商品号VARCHAR(3),
购买数量INT,
PRIMARYKEY(顾客号,商品号)
);
INSERT
INTO商品
VALUES('M01','佳洁士','8.00','牙膏','宝洁');
INSERT
INTO商品
VALUES('M02','高露洁','6.50','牙膏','高露洁');
INSERT
INTO商品
VALUES('M03','六必治','6.00','牙膏','蓝天');
INSERT
INTO商品
VALUES('M04','狮王','10.00','牙膏','青岛狮王');
INSERT
INTO商品
VALUES('M05','海飞丝','16.00','牙膏','宝洁');
INSERT
INTO商品
VALUES('M06','欧莱雅','35.00','牙膏','苏州尚美');
INSERT
INTO顾客
VALUES('C01','Dennis','海淀');
INSERT
INTO顾客
VALUES('C02','John','朝阳');
INSERT
INTO顾客
VALUES('C03','God','海南');
INSERT
INTO顾客
VALUES('C04','Susan','郑州');
INSERT
INTO顾客
VALUES('C05','KIN','海岛');
INSERT
INTO顾客
VALUES('C06','Jork','青岛');
INSERT
INTO购买
VALUES('C01','M01','13');
INSERT
INTO购买
VALUES('C01','M05','12');
INSERT
INTO购买
VALUES('C03','M02','21');
INSERT
INTO购买
VALUES('C04','M03','19');
INSERT
INTO购买
VALUES('C05','M04','30');
INSERT
INTO购买
VALUES('C06','M02','16');
UPDATE商品
SET单价=单价*1.1
WHERE商品类别='牙膏';
SELECT*
FROM商品;
UPDATE商品
SET供应商='Colgate'
WHERE供应商=
(SELECT供应商
FROM商品
WHERE供应商='高露洁');
SELECT*
FROM商品;
DELETE
FROM购买
WHERE购买数量IN
(SELECT购买数量
FROM购买
WHERE购买数量<20AND购买数量!
=0);
SELECT*
FROM购买;
DELETE
FROM商品
WHERE商品号NOTIN
(SELECT商品号
FROM购买);
SELECT*
FROM商品;
CREATEVIEWFILES
AS
SELECT顾客.顾客号,商品.商品号,商品名,单价,购买数量
FROM顾客,商品,购买
WHERE购买.顾客号=顾客.顾客号AND商品.商品号=购买.商品号;
总
结
这次实验难度不是很大,基本上运用书本和老师讲的知识就能完成,但是在做5.6题的时候我感到很复杂,要删表再重新创建、插入,如果有快捷键直接跳到上一步就能够解决这些问题啦;第五题我第一次做的是时候是按商品号删的,所以C06M0216没有被删除,改成购买数量后问题解决;,第七题的视图都是六行一样的,这样看着好复杂。
附
录
(源程序清单)
CREATETABLE商品
(商品号VARCHAR(3)PRIMARYKEY,
商品名VARCHAR(20)UNIQUE,
单价FLOAT,
商品类别VARCHAR(5),
供应商VARCHAR(20)
);
CREATETABLE顾客
(顾客号VARCHAR(3)PRIMARYKEY,
姓名VARCHAR(10)UNIQUE,
住址VARCHAR(20)
);
CREATETABLE购买
(顾客号VARCHAR(3),
商品号VARCHAR(3),
购买数量INT,
PRIMARYKEY(顾客号,商品号)
);
INSERT
INTO商品
VALUES('M01','佳洁士','8.00','牙膏','宝洁');
INSERT
INTO商品
VALUES('M02','高露洁','6.50','牙膏','高露洁');
INSERT
INTO商品
VALUES('M03','六必治','6.00','牙膏','蓝天');
INSERT
INTO商品
VALUES('M04','狮王','10.00','牙膏','青岛狮王');
INSERT
INTO商品
VALUES('M05','海飞丝','16.00','牙膏','宝洁');
INSERT
INTO商品
VALUES('M06','欧莱雅','35.00','牙膏','苏州尚美');
INSERT
INTO顾客
VALUES('C01','Dennis','海淀');
INSERT
INTO顾客
VALUES('C02','John','朝阳');
INSERT
INTO顾客
VALUES('C03','God','海南');
INSERT
INTO顾客
VALUES('C04','Susan','郑州');
INSERT
INTO顾客
VALUES('C05','KIN','海岛');
INSERT
INTO顾客
VALUES('C06','Jork','青岛');
INSERT
INTO购买
VALUES('C01','M01','13');
INSERT
INTO购买
VALUES('C01','M05','12');
INSERT
INTO购买
VALUES('C03','M02','21');
INSERT
INTO购买
VALUES('C04','M03','19');
INSERT
INTO购买
VALUES('C05','M04','30');
INSERT
INTO购买
VALUES('C06','M02','16');
UPDATE商品
SET单价=单价*1.1
WHERE商品类别='牙膏';
SELECT*
FROM商品;
UPDATE商品
SET供应商='Colgate'
WHERE供应商=
(SELECT供应商
FROM商品
WHERE供应商='高露洁');
SELECT*
FROM商品;
DELETE
FROM购买
WHERE购买数量IN
(SELECT购买数量
FROM购买
WHERE购买数量<20AND购买数量!
=0);
SELECT*
FROM购买;
DELETE
FROM商品
WHERE商品号NOTIN
(SELECT商品号
FROM购买);
SELECT*
FROM商品;
CREATEVIEWFILES
AS
SELECT顾客.顾客号,商品.商品号,商品名,单价,购买数量
FROM顾客,商品,购买
WHERE购买.顾客号=顾客.顾客号AND商品.商品号=购买.商品号;