数据库原理与应用-期末考试复习题(1)(1) 下载本文

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( xh char(5), kch char(5), cj int

primary key(xh,kch),

foreign key(xh) references Student(xh), foreign key(kch) references Course(kch)) 2.查询选修课程的成绩小于60分的人数。 select count(*) from SG where cj<60

3.查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。要求查询结果的标题显示为汉字。

select xh 学号,cj 成绩 from SG where kch='C3' order by cj

4.查询选修了“数据库应用”课程且成绩在90分以上的学生的姓名和所在系。

select xm,szx from Student s,Course c,SG g

where s.xh=g.xh and c.kch=g.kch and kcm='数据库应用' and cj>90 5.向Student表中插入一条记录,学号为“05020”,姓名为“丁莉”,性别为“女”,年龄为“17”,所在系为“计算机系”。 insert into Student

values('05020','丁莉',‘女’,‘17’,‘计算机’) 6.将计算机系全体学生的成绩置零。 update SG set cj=0

where '计算机'=(select szx from Student where Student.xh=SG.xh )

7.创建一个“学生成绩”视图,包括选修了课程的学生的学号、姓名、选修课程的课程号、课程名以及成绩。 create view 学生成绩 as

select s.xh,xm,g.kch,kcm ,cj from Student s,Course c,SG g where s.xh=g.xh and c.kch=g.kch

8.为Student表建立一个按学号升序排列的唯一索引Stusno_IDX。 create unique index Stusno_IDX on Student(xh) order by xh

9.求各课程的选修人数及平均成绩。

select count(xh),avg(cj) from SG group by kch

10.查询选修了课程编号为’14001’和’14002’课程的学生的学号和姓名。

select s.xh,xm from Student s,SG g from Student s,SG g

where kch='14001' or kch='14002'

(四)设有如下所示的三个关系模式:商店Shop(bh,mc,cs),商品Product(sph,spm,jg),商店所售商品SP(bh,sph,sl),其中带下划线的字段为主键。各属性含义如下:bh (商店编号)、mc (商店名)、cs (所在城市)、sph (商品编号)、spm(商品名称)、jg (价格)、sl (商品数量)。

ShopSP bh mc Cs 长沙 北京 北京 长沙 上海 101 百货商店 204 长安商场 256 西单商场 345 铁道商店 620 太平洋百货 bh 101 101 101

Product sph spm 1 2 3 4 钢笔 羽毛球 复读机 书包 101 204 jg 21 5 300 76 256 256 345 345 345 620 sph sl 1 2 3 4 3 1 2 1 2 4 4 105 42 25 104 61 241 91 141 18 74 125 试用SQL语言完成下列操作: (1)用Create语句创建商店表Shop,要求创建主键,商店名不允许为空,各属性的数据类型根据表中所给数据选定。

creat table Shop( bh char(4) primary key, mc char(10) not null, cs char(4))

(2)检索所有商店的商店名和所在城市。 select mc,cs from Shop

(3)检索价格低于50元的所有商品的商品名和价格。 select spm,jg from Product where jg<50

(4)检索位于“北京”的商店的商店编号,商店名,结果按照商店编号降序排列。

select bh,mc from Shop where cs='北京' order by bh;

(5)检索供应“书包”的商店名称。

select mc from Shop s,Product p,SP

where s.bh=SP.bh and p.sph=SP.sph and spm='书包'; (6)检索所有商场中各种商品的平均数量。 select avg(sl) from SP group by sph;

(7)将商品“复读机”的价格修改为350。 update Product set jg=350 where spm='复读机';

(8)将“百货商店”的商店名修改为“百货商场”。 update Shop set mc='百货商场' where mc='百货商店'; (9)创建视图:“铁道商店”所售商品的商品编号,商品名和数量。