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

create view 铁道商店 as

select sph,spm,sl from Product p,SP where p.sph=SP.sph ;

(10)将查询和更新SP表的权限赋给用户U1。 grant select,update on table SP to U1;

(五)已知研究生管理数据库YJSGL包含graduate(研究生信息)数据表和teacher(导师信息)数据表,表结构如表1和表2所示:

表 1 graduate(研究生信息表结构) 字段名 bh xm xb mz ly cj dsbh 字段类型 char char char char char int char 字段宽度 4 8 2 20 20 4 说明 研究生编号(主码) 姓名 性别 民族 来源地区 入学成绩 导师编号(外码)

表 2teacher(导师信息表结构) 字段名 dsbh dsxm zc dh 字段类型 char char char char 字段宽度 4 8 10 11 说明 导师编号(主码) 姓名 职称 联系电话 请用SQL语句完成以下操作: 1.

查询每个研究生的编号、姓名、性别、民族、入学成绩、

来源地区和所选导师编号。 select * from graduate 2.

查询学号为1001的学生的姓名和入学成绩。

select xm,cj from graduate where bh='1001'

3.查询所有姓“王”的学生的编号和来源地区。 select bh,ly from graduate where mc like '王%';

4.查询所有入学成绩在350和400分之间的学生的编号、姓名和所选导师的姓名及其职称。

select bh,xm,dsxm,zc from graduate g,teacher t where g.dsbh=t.dsbh and cj between 350 and 400; 5.查询选了“张一伟”为导师的研究生的编号和姓名。 select bh,xm from graduate g,teacher t where g.dsxm=t.dsxm and dsxm='张一伟';

6.查询入学成绩低于平均入学成绩的研究生的编号、姓名、民族。 select bh,xm,mz from graduate where cj<(select avg(cj) from graduate); 7.查询不同来源地区的研究生人数。 select count(bh) from graduate group by ly;

8.查询没有选导师的研究生的编号、姓名、性别和入学成绩。 select bh,xm,xb,cj from graduate g where dsbh is not null

9.将少数民族的研究生的入学成绩加10分。 update graduate set cj=cj+10 where mz<>'汉'

10.创建一个名为rxcj(入学成绩)的视图,要求使用该视图能够查询入学成绩超过平均入学成绩的研究生的编号、姓名、入学成绩和所选导师的姓名及联系电话。 create view rxcj as

select bh,xm,cj,dsxm,dh from graduate g,teacher t

where g.dsbh=t.dsbh and cj>(select avg(cj) from graduate);

(六)已知汽车销售数据库QCXS包含QCGS(汽车公司)数据表、QCXX(汽车信息)数据表和JYJL(交易记录)数据表,表结构如表 1、表2和表3所示:

表 1 QCGS(汽车公司表结构) 字段名 bh mc szd 字段类型 字段宽度 CHAR 4 CHAR CHAR 10 20 说明 公司编号,主码 公司名称,唯一 所在地 表 2 QCXX(汽车信息表结构) 字段名 qcbh cxmc bh dj bxq 字段类型 CHAR CHAR CHAR INT INT 字段宽度 4 10 4 说明 汽车编号,主码 车型名称 公司编号,外码 单价 保修期,缺省值12 表 3 JYJL(交易记录表结构) 字段名 jybh qcbh xl xsrq 字段类型 CHAR CHAR INT DATE 字段宽度 4 4 说明 交易编号,主码 汽车编号,外码 销量 销售日期

请用SQL语句完成以下操作:

1.查询通用公司单价大于20万的汽车信息并按照单价降序排列,需要含有以下4列:公司名称,车型名,单价和保修期。 select mc,cxmc,dj,bxq from QCGS c,QCXX x where c. bh=x.bh and dj>200000

2.查询每个汽车公司卖出每款汽车的总销量,需给出汽车公司编号,汽车编号和销量。

select bh,j.qcbh,count(xl) from QCXX x,JYJL j where x.qcbh=j.qcbh group by j.qcbh

3. 查询所有产地为“天津”的汽车公司编号和姓名。 select bh,xm from QCGS where szd='天津'

4.查询生产汽车种类大于2的汽车公司编号。 select bh from QCXX

group by bh having count(cxmc)>2 5.查询所有进行过交易的汽车编号。 select distinct qcbh from JYJL

6.查询单价在10万-20万之间的汽车名称和单价。 select cxmc,dj from QCXX