设计题
1.已知一广告公司代理若干个品牌的电视广告宣传业务。该公司有专人对所代理的品牌 和签约电视频道进行登记,对每个品牌的登记信息包括:品牌编号、品牌的名称、电视宣传片的长度(以秒计)、联系人及电话、备注等,对每个频道登记的信息包括:频道缩号、频道名称、简称、联系人及电话等。每个品牌的宣传广告片可投放到多个电视频道的多个时段播出。不同时段有不同收费标准,播出时间表示为YYYYMMDDHHMISS(即年月目时分秒)的字符串形式。该公司对每个品牌的广告按电视频道汇总。结果保存在月投放播出长度及广告费用计划汇总表中。 根据以上信息完成36-39题。
36.写出需要建立的关系模式。
答案:品牌(品牌编号,品牌名称,片长,联系人,电话,备注)
频道(频道编号,频道名称,简称,联系人,电话)
品牌广告投放情况(品牌编号,频道编号,播出时间,广告费)
品牌广告计划表(月份,品牌编号,频道编号,播出总时间,总广告费)
37.播出长度超过60秒的为专题片,写出求2006年4月播出的专题片次数及总时问长度的 SQL语句。(提示:关系表名使用36题中建立的关系模式名,下同)
答案:SELECT COUNT(a.品牌编号),SUM(a.播出时间)
FROM 品牌广告投放情况 a,品牌 b
WHERE (b.片长)60)AND(b品牌编号=a.品牌编号)
AND(a.播出时间like ‘200604%’)
38.现在”猴王”牌桃子(品牌编号PEACH)的广告要求增加滚动字幕.按要求应加收5%的费用。写出增加费用事务的语句
答案:BEGIN TRANSACIION
UPDATE 品牌广告投放情况 SET 广告费=广告费*1.05
WHERE 品牌编号=‘PEACH‘
COMMIT
39.现在”猴王”牌桃子要撤销在花果山电视台(频道编号HGS)2006年4月豹宣传广告,试分析应修改哪些关系表中的数据,并写出相应的SQL语句
答案:1.应修改品牌广告投放情况和品牌广告计划表中的数据
2.DELETE FROM 品牌广告投放情况
WHERE 品牌编号=’PEACH’ AND频道编号‘HGS‘
AND 月份=‘200604‘
COMMIT;
有如下三个关系模式 学生姓名年龄性别 课程教师 选课
SC(S#
C(C#C#
S(S#CN
SNAGESEX) 属性含义依次为学号
TEACHER) 属性含义依次为课程号课程名
SCORE) 属性含义依次为学号课程号成绩 用SQL
语句完成36~39题。
36.查询“黎明”同学选修的所有课程的课程名。
答案:Select CN from C where C# in (
Select C# from SC where S# in (
Select S# from s where SN=’ 黎明’))
37.查询选修4门以上(含4门)课程的学生的姓名。
Select SN from S where S# in (
Select S# from SC group by S# having count(*)>=4)
38.将成绩低于60分的同学的成绩提高5。
Update SC set score=score*1.05 where score<60
39.删除“王兰”同学选修的全部课程。
Delete from SC where S# in (
Select S# from S where SN=’ 王兰’
有一个学生课程数据库,包括三个关系模式:
(1)学生关系Student(Sno,Sname,Ssex,Sage,Sdept)
其属性的含义依次为学号、姓名、性别、年龄、所在系
(2)课程关系Course(Cno,Cname,Teacher)
其属性的含义依次为课程号、课程名、任课教师
(3)选修关系SC(Sno,Cno,Grade)
其属性的含义依次为学号、课程号、成绩 用SQL语句完成36-39题。
36.查询至少选修两门课程的学生学号。
SELECT Sno FROM SC
GROUP BY Sno
HAVING COUNT(*)>=2
37.查询选修课程号为′C4′的学生的平均年龄。
SELECT AVG(Sage)
FROM Student,SC
WHERE Student.Sno=SC.Sno AND Cno=‘C4’
38.查询女同学选修课程的课程名和任课教师。
SELECT Cname,Teacher
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Ssex=39.把WANG同学选修的课程和成绩全部删去。
DELETE FROM SC
WHERE Sno IN
‘女’
(SELECT Sno FROM Student WHERE Sname=‘WANG’)
有如下三个关系模式: 学生:S(S#,SN,AGE,SEX) 属性含义依次为:学号,姓名,年龄,性别 课程:C(C#,CN,TEACHER) 属性含义依次为:课程号,课程名,教师 选课:SC(S#,C#,SCORE) 属性含义依次为:学号,课程号,成绩 用SQL语句完成36~39题。
36.查询“王兰”同学没有选修的课程的课程号。
36.SELECT C# FROM C
WHERE C# NOT IN
(SELECT C# FROM SC WHERE S# IN
(SELECT S# FROM S
WHERE SN =“王兰”))
37.查询选修3门以上(含3门)课程的学生的学号和姓名。
37.SELECT S.S#,SN FROM S,SC
WHERE SC.S#=S.S#=S,S#
GROUP BY SC.S#
HAVING COUNT(*)>=3
38.将成绩低于60分的女同学的成绩提高5%。
38.UPDATE SC
SET SCORE=SCORE*1.05
WHERE SCORE<60 AND
S# IN
(SELECT S# FROM S WHERE SEX =“女”)
39.查询选修课程包含LIU老师所授课的学生的学号。
39.SELECT DISTINCT S#
FROM SC
WHERE C# IN
(SELECT C# FROM C
WHERE TEACHER=”LIU”)
有一个学生课程数据库,包括三个关系模式:
(1)学生关系Student(Sno,Sname,Ssex,Sage,Sdept)
其属性的含义依次为学号、姓名、性别、年龄、所在系 (2)课程关系Course(Cno,Cname,Cpno,Ccredit) 其属性的含义依次为课程号、课程名、先行课、学分 (3)选修关系SC(Sno,Cno,Grade)
其属性的含义依次为学号、课程号、成绩
根据以上3个关系模式用SQL语句完成36~39题。
36.查询年龄不在20~23岁之间的学生的姓名、所在系和年龄。
36.select Sname,Sdept,sage
From Student
Where sage not between 20 and23;
37.查询所有年龄在20岁以下的女学生姓名与年龄。
37.nelect Sname,Sage
From Student
Where Sage<20 and sacx=’女’;
或
Select Sname,Sage
From student
Where not sage>=20 and saex=‘女’;
38.查询每个学生及其选修课程的情况。
38.nelect student.*,sc.*
From student
Where student..sno=sc.sno;
39.查询选修课程名为“ENGLISH”课程的学生的平均年龄。
39.selent AVG(sage)
From student
Where sno in
(selent sno from sc where cno in
( selent cno from counte where cname =”ENGLISH”));
有4个关系模式如下: 出版社(出版社编号,出版社名称) 图书(图书编号,书名,出版社编号,定价) 作者(作者编号,姓名) 著书(图书编号,作者编号,作者排序) 注:作用排序=1表示第一作者,依此类推。 用SQL语句完成36~39题。
36.查询所有定价超过20元的书名。
SELECT 书名
FROM 图书
WHERE 定价>20
37.统计每个出版社图书的平均定价。
SELECT 出版社名称,AVG(定价)
FROM 出版社,图书
WHERE 出版社,出版社编号=图书。出版社编号
GROUP BY 出版社名称
38.将科学出版社的所有图书定价下调5%。
UPDATE 图书SRT 定价=定价*0.95
WHERE 出版社编号 IN
(SELECT 出版社编号 FROM 出版社
WHERE c出版社名称=‘科学出版社‘)
39.列出所有图书的书名、第一作者姓名和出版社名称
SELECT s书名,姓名,出版社名称
FROM 出版社,图书,作者,著书。
WHERE 作者排序=1 AND 出版社。出版社编号=图书 出版社编号
AND 图书。图书编号=著书。图书编号 AND 作者。作者编号=著书。作者编号
有三个关系如下 EMP(E#ENAMEAGESEXC#
ECITY)其属性分别表示
职工号、姓名、年龄、性别和籍贯。 WORKS(E#工号、公司编号和工资。 COMP(C#
CNAME
SALARY)其属性分别表示职
CITY)其属性分别表示公司编号、39题。
公司名称和公司所在城市。 用SQL语句完成36
36.查询在“联华公司”工作的男性职工的职工号和姓名。
SELECT E#ENAME FROM EMP WHERE SEX=’男’ AND E# IN ( SELECT E#
FROM WORKS WHERE C# IN (SELECT C# FROM COMP WHERE CNAME=’联华公司’))
37.查询“联华公司”中低于本公司平均工资的职工号和姓名。
SELECT E#ENAME FROM EMP WHERE E# IN (SELECT E# FROM WORKS
WHERE C# IN (SELECT C# FROM COMP WHERE CNAME=‘联华公司’) GROUP BY E# HAVING SALARY>AVG(SALARY) )
38.为所有的50岁以上(含50岁)的职工加薪100元。
UPDATE WORKS SET SALARY=SALARY+100 WHERE E# IN (SELECT E# FROM EMP WHERE AGE>=50)
39.在EMP和WORKS中删除年龄大于60岁的职工。
DELETE FROM WORKS WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60) DELETE FROM EMP WHERE AGE>60
36.设学生社团管理数据库有三个关系: S(Sno,Sname,Age,Sex,Dept)
A(Ano,Aname,Location,Manager)
SA(Sno,Ano,Date)
其中表S的属性分别表示学号、姓名、年龄、性别和所在系;表A的属性分别表示会员编号、协会名、协会的办公地点和负责人(负责人为学号);表SA描述了学生参加社团的情况,其属性分别表示学号、协会编号、加入协会时间。 试用SQL语言查询参加“篮球”协会的学生姓名和所在系。
Select S.Sname,S.Dept
from A inner join SA on SA.Ano=A.Ano inner join S on
SA.Sno=S.Sno Where A.Aname=’篮球’
37.依据36题的关系模式,建立一个包含Sno、Sname、Aname和Date的视图ST。
Create view ST(Sno,Sname,Aname,Date)
AS
Begin
Select Sno,Sname,Aname,Date
From from A inner join SA on SA.Ano=A.Ano inner join S on SA.Sno=S.Sno end
38.依据36题的关系模式,试用SQL语言查询每个协会的协会编号和学生数,并按人数降序排列。
Select Ano,count(Sno)
From SA
Group by Ano
Order by count(Sno) desc
39依据36题的关系模式,试用SQL语言查询没有参加任何协会的学生姓名和所在系。 Select Sname,Dept
From S left join SA on S.Sno=SA.Sno
Where SA.Sno is null
40.依据36题的关系模式,试用关系代数查询计算机系的学生姓名和年龄。
Π Sname,Age (σ dept=’计算机’(S))
因篇幅问题不能全部显示,请点此查看更多更全内容