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

where dj between 100000 and 200000 7.查询销量高于平均销量的汽车名称 select cxmc from QCXX x,JYJL j

where x.qcbh=j.qcbh and xl>(select avg(xl) from JYJL) 8.查询没有卖出过的汽车编号。 select qcbh from QCXX

where not in(select qcbh from JYJL); 9.使用SQL语句将汽车单价增加10%。 update QCXX set dj=dj*1.1

10.使用SQL语句创建一个名为zxxl(最新销量)的视图,要求能够使用该视图查询2015年销售量的车型名称、单价、销量和销售日期。

create view zxxl as

select cxmc,dj,xl,xsrq from QCXX q,JYJL j where q.qcbh=j.qcbh and xsrq='2015' (七)设“职工_社团”数据库有3个基本表:

职工:zg (zgh,xm,nl,xb,gz); 社会团体:shtt(bh,nc,fzr,dd); 参加:cj(zgh,bh,rq)。

其中:(1)职工表zg的主码为zgh(职工号)。xm为姓名,nl为年龄,xb为性别,gz为工资。

(2)社会团体表shtt的主码为bh(编号),fzr(负责人)为外码,参照职工表zg的zgh。nc为名称,fzr为负责人,dd为活动地点

(3)参加表cj的职工号zgh和编号bh为主码;zgh为外码,参照职工表zg的zgh;编号bh为外码,参照社会团体表shtt的bh。 rq为参加日期。

使用SQL语句完成下列操作:

1.定义参加表,在语句中要求定义表中的主码和外码约束;(说明:表中属性的类型根据实际情况定义。)

create table cj( zgh char(5), bh char(4), primary key(zgh,bh),

foreign key(zgh) references zg(zgh), foreign key(bh) references shtt(bh))

2.查询每个社会团体的参加人数; select count(*) from cj group by bh

3.检索所有比“王华”年龄大的职工的姓名、年龄和性别; select xm,nl,xb from zg

where nl>(select nl from zg where xm='王华')

4.查找参加了歌唱队或篮球队的职工号和姓名; select zgh,xm from zg,shtt,cj

where zg.zgh=cj.zgh and shtt.bh=cj.bh and mc in('篮球队','歌唱队');

5.查找没有参加任何社会团体的职工信息;

selec * from zg where not in(select distinct zgh from cj)

6.将所有参加编号为“10001”的社会团体的职工的工资增加10%; update zg set gz=gz*1.1

where zgh in(select zgh from cj where bh='10001' ) 7.查询年龄最大的职工的职工号和姓名; select zgh,xm from zg where nl=(select max(nl) from zg)

8.查询各社会团体的编号以及其负责人的姓名; select bh,xm from zg,shtt where zg.zgh=shtt.fzr

9.删除职工号为’402’的职工参加所有社会团体的记录; delete from cj where zgh='402'

10.以职工姓名为参数建立一个带参数的存储过程,用于查询其所参加的社会团体的编号和名称,并调用此存储过程查询“王明”所参加的社会团体的编号和名称。

create procedure procl @name char(8) as

select shtt.bh,mc from zg z,shtt s,cj c

where z.zgh=c.zgh and shtt.bh=c.bh and xm=@name exec procl @name='王明'