综合练习第1套
设有如下所示的三个关系模式:
商店Shop(Sno,Sname,City)//Sno (商店编号)、Sname (商店名)、City (所在城市) 商品Product(Pno,Pname,Price)//Pno (商品编号)、Pname (商品名称)、Price (价格) 商店所售商品SP(Sno,Pno,Qty),//Qty (商品数量) 其中带下划线的字段为主键
ShopSP
Sno 101 204 256 345 620
Product Pno 1 2 3 4 Pname 钢笔 羽毛球 复读机 书包 Price 21 5 300 76 Sname 百货商店 长安商场 西单商场 铁道商店 太平洋百货 City 长沙 北京 北京 长沙 上海 Sno 101 101 101 101 204 256 256 345 345 345 620 Pno Qty 1 2 3 4 3 1 2 1 2 4 4 105 42 25 104 61 241 91 141 18 74 125 (1)用Create语句创建商店表Shop,要求创建主键,商店名不允许为空,各属性的数据类型根据表中所给数据选定。 Create table Shop (
Sno int primary key, Sname char(10) not null, city char(10))
(2)检索所有商店的商店名和所在城市。 Select sname,city from shop
(3)检索价格低于50元的所有商品的商品名和价格。 Select Pname,price From Product
25
Where price<50
(4)检索位于“北京”的商店的商店编号,商店名,结果按照商店编号降序排列。 Select sno,sname From Shop
where city=‘北京’ order by sno desc
(5)检索供应“书包”的商店名称。 SELECT Shop.Sname from Shop,Product,SP
WHERE Shop.Sno=SP.Sno and Product.Pno = SP.Pno and Pname=‘书包’ (6)检索所有商场中各种商品的平均数量。 Select avg(qty) 平均数量 from SP group by sno
(7)将商品“复读机”的价格修改为350。 Update Product Set price=350
Where Pname=‘复读机’
(8)将“百货商店”的商店名修改为“百货商场”。 Update Shop
Set Sname=‘百货商场’ Where Sname=‘百货商店’
(9)创建视图:“铁道商店”所售商品的商品编号,商品名和数量。 Create view tdsd As
Select Product.pno, Product.pname,qty From Shop,Product,SP
Where Shop.Sno=SP.Sno and Product.Pno=SP.Pno and sname=‘铁道商店’ (10)将查询和更新SP表的权限赋给用户U1。 Grant select,update on SP to U1
26
综合练习第2套
某大学的运动会比赛项目管理数据库包括如下三张表:
Student(xh,xm,xb,nl,szx)// 学号、姓名、性别、年龄、所在系 Sports(xmh,xmm,dw) //运动项目的编号、名称、项目的计分单位 SS(xh,xmh,cj) //学号、运动项目的编号、成绩 根据上述情况,完成如下操作:
(1)使用SQL语言,创建student表,并定义xh为主键。
Create table Student (
xh char(10) primary key, xm char(20), xb char(2), nlint,
szx char(50) )
(2)在Student表xh属性列上建立名称为xh的聚簇索引。
Create clustered index xh on student(xh)
(3)使用SQL语言从表Student中删除学生“张三”的记录。
Delete from Student where xm=’张三’
(4)使用SQL语言为SS表添加一条记录:学号为“xh001”的学生参与了编号为“xm001”的运动项目,但还没成绩。
Insert into SS (xh,xmh) values ('xh001', 'xm001')
(5)使用SQL语言,将Student表学号为“xh001”的学生的姓名改为“李明”。 Update student set xm='李明' where xh='xh001'
(6)查询“计算机”系的学生参加了哪些运动项目,只把运动项目名称列出,去除重复记录。 SELECT DISTINCT xmm FROM Sports WHERE xmh IN
(SELECT xmh FROM SS WHERE xh IN
(SELECT xh FROM Student WHERE szx='计算机'))
27
(7)查询各个系的学生的“跳高”项目比赛的平均成绩 (不要求输出比赛项目的计分单位) 。
SELECT szx,AVG(cj) FROM Student, SS, Sports
WHERE Student.xh=SS.xh and SS.xmh=Sports.xmh AND xmm='跳高' GROUP BY szx
(8)统计各个系的总成绩情况,并根据总成绩按降序排序。
SELECT szx,sum(cj) FROM Student, SS, Sports
WHERE Student.xh=SS.xh and SS.xmh=Sports.xmh GROUP BY szx
Order by sum(cj) desc
(9)建立“计算机”系所有男学生的信息视图JSJ_M_Student。
CREATE VIEW JSJ_M_Student AS
SELECT * FROM Student
WHERE szxt='计算机' AND xb='男'
(10)回收用户“李明”对Sports表的查询权限。
REVOKE SELECT ON TABLE Sports FROM 李明
28
综合练习第3套
有一个“学生选课”数据库,数据库中包括三个表,其关系模式分别为: Student(xh,xm,xb,nl,szx) Course(kch,kcm,xxk,xf) SG(xh,kch,cj)
其中:Student是学生表,xh表示学号、xm表示姓名、sb表示性别、nl表示年龄、szx表示所在系。xh为主码。
Course是课程表,kch表示课程号、kcm表示课程名、xxk表示先修课号、xf表示学分。kch为主码。 SG是选课表,xh表示学号,参照学生表的学号xh、kch表示课程号,参照课程表的课程号kch、cj表示成绩。(xh,kch)为主码。 请用SQL语言实现下列功能:
1.建立选课表SG,要求实现主键约束和外键约束,且成绩不能为空。 CREATE TABLE SG( Sno CHAR(5), Cno CHAR(3),
Ccredit tinyint not null, PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
CONSTRAINT C3 FOREIGN KEY (Cno) REFERENCES Course(Cno)) 2.查询选修课程的成绩小于60分的人数。 SELECT COUNT(DISTINCT Sno) FROM SG
WHERE Grade < 60
3.查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。要求查询结果的标题显示为汉字。
SELECT Sno 学号,Grade 成绩 FROM SG WHERE Cno='C3' ORDER BY Grade DESC
4.查询选修了“数据库应用”课程且成绩在90分以上的学生的姓名和所在系。 SELECT Sname,Sdept FROM Student,SG,Course
WHERE Student.Sno=SG.Sno and SG.Cno=Course.Cno and Cname='数据库应用' AND Grade>=90 或
SELECT Sname,Sdept
FROM Student JOIN SG ON Student.Sno=SG.Sno JOIN Course ON SG.Cno=Course.Cno WHERE Cname='数据库应用' AND Grade>=90
5.向Student表中插入一条记录,学号为“05020”,姓名为“丁莉”,性别为“女”,年龄为“17”,所在系为“计算机系”。 INSERT INTO Student
29
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库总复习题(新)新 有答案(6)在线全文阅读。
相关推荐: