汽车牌照选号
四川⼤学数据库技术复习题三操作题
数据库技术试题
三、操作题
1. 设有关系数据库:
职⼯关系EMPLOYEE (职⼯号,职⼯名,街道,城市)
⼯作关系WORKS (职⼯号,公司号,⼯资)
公司关系COMPANY (公司号,公司名,城市)
假设职⼯可在多个公司兼职,请⽤关系代数表达式写出⾄少在公司号为‘C2’和‘C5’公司兼职的职⼯的职⼯号。
2. 设有关系数据库:
职⼯关系EMPLOYEE (职⼯号,职⼯名,街道,城市)
⼯作关系WORKS (职⼯号,公司号,⼯资)
公司关系COMPANY (公司号,公司名,城市)
试⽤SQL语句写出下列操作:
将所有在“联华公司”⼯作的职⼯加薪5﹪。
3. 图书出版管理数据库中有两个基本表:
图书 (书号,书名,作者编号,出版社,出版⽇期)
作者 (作者编号,作者名,年龄,地址)
试⽤SQL语句写出下列查询:检索年龄低于作者平均年龄的所有作者的作者名、书名和出版社。
4. 设有商店和顾客两个实体,
“商店”有属性商店编号、商店名、地址、电话,
“顾客”有属性顾客编号、姓名、地址、年龄、性别。
假设⼀个商店有多个顾客购物,⼀个顾客可以到多个商店购物,顾客每次去商店购物有⼀个消费⾦额和⽇期,⽽且规定每个顾客在每个商店⾥每天最多消费⼀次。试画出ER图,并注明属性和联系类型。
5. 学校有多名学⽣,财务处每年要收⼀次学费。为财务处收学费⼯作设计⼀个数据库,包括两个关系:
学⽣ (学号,姓名,专业,⼊学⽇期)
收费 (学年,学号,学费,书费,总⾦额)
假设规定属性的类型:学费、书费、总⾦额为数值型数据;学号、姓名、学年、专业为字符型数据;⼊学⽇期为⽇期型数据。列的宽度⾃定义。
试⽤SQL语句定义上述表的结构。(定义中应包括主键⼦句和外键⼦句)
6. ⽤SQL语⾔定义
(1) 学⽣关系S,包括学号SNo、姓名SN、年龄SA、系别SD;
(2) 课程关系C,包括课程号CNo、课程名CN、学分CC;
(3) 学⽣选课关系SC,包括SNo、CNo和成绩G。
注意:说明主键码和外键码(如果有的话)。
7. 已知关系模式为
(1) 学⽣关系S,包括学号SNo、姓名SN、年龄SA、系别SD;
(2) 课程关系C,包括课程号CNo、课程名CN、学分CC;
(3) 学⽣选课关系SC,包括SNo、CNo和成绩G。
⽤SQL语⾔
(1) 对于学⽣选课关系SC,授予李⼩兰删除权限以及对SNo和CNo 的修改权限;
(2) 删除学号为"9900205”的学⽣;
(3) 从学⽣选课关系SC中,删除王云(学⽣关系中可能有重名)的所有选课
(4)出不是既⼤于20岁⼜属于计算机系的学⽣。
8. 已知关系模式为
(1) 学⽣关系S,包括学号SNo、姓名SN、年龄SA、系别SD;
(2) 课程关系C,包括课程号CNo、课程名CN、学分CC;
(3) 学⽣选课关系SC,包括SNo、CNo和成绩G。
⽤SQL语句查询每个学⽣的总成绩,输出学号和总成绩,输出时按总成绩排序(升序),若总成绩相同,再按学号排序(降序)。
9. 有关图书发⾏的关系模型如下:
书店S(书店号SNo,书店名SN,地址A)
图书B(书号BNo,书名T,作者N,价格P)
图书馆L(馆号LNo,馆名LN,城市C)
图书发⾏SBL(SNo,LNo,BNo,发⾏量Q)
⽤SQL语⾔表达如下查询:
“上海图书馆”(馆名)收藏图书的书名和出售该书的书店名。
10. 图书管理数据库关系模型如下:
图书B(书号BN,书名T,作者A)
学⽣S(姓名N,班级C,借书证号LN)
借书L(借书证号LN,BN,⽇期D)
查询:2002.1.1(20020101)以前借书的学⽣姓名和书名。
11.已知关系模式:学⽣(学号,姓名,性别,年龄,系别),⽤SQL语句查询计算机系的男学⽣。
12. 有如下三个关系模式:
学⽣:S(S#,SN,AGE,SEX)
属性含义依次为:学号,姓名,年龄,性别
课程:C(C#,CN,TEACHER)
属性含义依次为:课程号,课程名,教师
选课:SC(S#,C#,SCORE)
属性含义依次为:学号,课程号,成绩
⽤SQL语句表达如下查询。
(1).查询“王兰”同学没有选修的课程的课程号。
(2).查询选修3门以上(含3门)课程的学⽣的学号和姓名。
(3).将成绩低于60分的⼥同学的成绩提⾼5%。
(4).查询选修课程包含LIU⽼师所授课的学⽣的学号。
13. 假设有三个表:
商场表:M(MNO,MNAME,CITY)
各属性含义依次为商场号、商场名和商场所在城市;
商品表:P(PNO,PNAME,CITY,COLOR)
各属性含义依次为商品号、商品名、产地和商品颜⾊;
销售表:S(MNO,PNO,QTY)
各属性含义依次为商场号、商品号和销售数量。
(1) 请⽤SQL语句创建销售表S,要求包含主码、外码(如果有的话)的定义,同时保证销售数量不能为空。
(2) 试⽤SQL语句写出下列查询:检索不销售北京⽣产的商品的商场名。
(3) 试⽤SQL语句实现下列查询:检索北京市的商场所销售的各种商品的销售总数量。
14.设有学⽣关系S(SNO,SNAME,AGE,SEX)和选课关系SC(SNO,CNO,GRADE)。⽤关系代数表达式写出⾄少选修了学⽣名(SNAME)为“LIMIN”所选课的学⽣学号(SNO)。
15.设有2个关系模式:
教⼯(职⼯编号,姓名,年龄,学院编号)
学院(学院编号,名称)
如果规定当删除某学院信息时,将教⼯关系中该学院的学院编号置为空值。试写出符合上述规则的外键⼦句。
16. 假设新华书店数据库中有2个关系模式:
出版社(出版社编号,出版社名称,出版社地址)
图书(图书编号,书名,出版社编号,图书分类,定价)试⽤SQL语句完成以下查询。
(1).检索出版社编号为“CS”的图书编号、书名和定价。
(2).查询图书分类为“教材”的书名、定价和出版社名称。
(3).按照出版社编号统计每个出版社出版的图书有多少种和平均定价。
(4).检索由⾼等教育出版社出版、图书分类为“教材”且定价超过30元的图书编号和书名。”
(5).设有关系模式R(A,B,C,D,E),F={A→C,C→D,B→C,DE
→C,CE→A}。求R的所有候选键。
17. 已知学⽣表 S 和选课表 SC :⽤ SQL语⾔完成如下的操作:(1) 将⼀个新学⽣(学号: s6 ,姓名:吴丽,所在系:⾃动化,性别:⼥,年龄: 20 )的纪录插⼊到学⽣表中。
(2) 将学号为 s1 的学⽣的年龄由 17 岁改为 18 岁。
(3) 建⽴计算机系学⽣的视图,视图名为 computer_student 。
(4) 按分数降序排列,输出选修了“程序设计”课程的学⽣的姓名和分数。
(5) 求学号为 s1 的学⽣的总分和平均分。
18. 现有关系数据库如下:学⽣(学号,姓名,性别,专业,奖学⾦);课程(课号,课名,学分) ;学习(学号,课号,分数)。⽤SQL语⾔实现下列查询:
(1) 检索“国际贸易”专业中获得奖学⾦1000元的学⽣信息,包括学号、姓名、课名和分数。
(2) 检索没有任何⼀门课程成绩在80分以下的学⽣的信息,包括学号、姓名和专业。
(3) 对成绩得过满分(100分)的学⽣,如果没有获得奖学⾦的,将其奖学⾦设为1000元。
19. 设有学⽣—课程关系数据库,包含学⽣关系S(学号S# ,学⽣
姓名SN,所属系名SD,学⽣年龄SA)、课程关系C(课程号
C# ,课程名字CN,先⾏课号码PC#)、和学⽣选课关系SC(学
号S# ,课程号C# ,学⽣成绩G)。⽤SQL语句实现下列查询:
(1) 求计算机系学⽣的学号、姓名。
(2) 求不选修C3课程的学⽣姓名。
(3) 将李明的数学成绩改为90分。
(4) 删除99011学⽣的选课记录。
(5) 把对表SC的INSERT权限授予张三,并允许他将此权限授予其他⽤户。
(6) 为计算机系学⽣创建⼀个视图,并在该视图上查询年龄在20岁
以下的学⽣。
20. 设有学⽣—课程关系数据库,包含有学⽣关系S(学号S# ,学
⽣姓名SN,所属系名SD,学⽣年龄SA)、课程关系C(课程号C# ,课程名字CN,先⾏课号码PC#)、和学⽣选课关系SC (学号S# ,课程号C# ,学⽣成绩G)。⽤SQL语句实现下列查询:
(1) 求年龄不在20岁与22岁之间的学⽣学号和年龄。
(2) 求选修课程号为C1且成绩为B以上的学⽣姓名及成绩。
(3) 求选修了课程名为‘J’的学⽣学号和姓名。
(4) 将⼀个新⽣记录(学号:99001,姓名:李强,所在系:计算
机,年龄:19)插⼊学⽣关系S中。
21. 已知如下关系模式:雇员E(ENO,EName,Age);⼯程P(PNO,PName);施⼯W(ENO,PNO,Salary);其中,E表⽰雇员关系,P表⽰⼯程关系,W表⽰施⼯关系,ENO为雇员号,Ename为雇员的姓名,Age为雇员的年龄,PNO为⼯程
号,Pname为⼯程名,Salary为酬⾦。⽤SQL语句表达如下查询:
(1) 参加⼯程名为“⽴交桥”的雇员姓名和酬⾦。
(2) 参加⼯程号为“P1”,且酬⾦最⾼的雇员名。
(3) 参加3个以上⼯程的职⼯号。
22. 已知如下关系模式:雇员E(ENO,EName,Age);⼯程P(PNO,PName);施⼯W(ENO,PNO,Salary);其中,E表⽰雇员关系,P表⽰⼯程关系,W表⽰施⼯关系,ENO为雇员号,Ename为雇员的姓名,Age为雇员的年龄,PNO为⼯程
号,Pname为⼯程名,Salary为酬⾦。分别⽤关系代数和SQL语句表达如下查询:
(1) 参加⼯程名为“⽴交桥”的雇员的平均酬⾦。
(2) 在参加⼯程P1的雇员中,查询⽐雇员E1的酬⾦⾼的雇员姓名。
(3) 参加的雇员数⼤于3的⼯程号。
23. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G)其中: S# 学号;SN 学⽣姓名;SD 所属系名;SA 学⽣年龄;C# 课程号; CN 课程名; PC# 先⾏课号码;
G 学习成绩;⽤SQL语句实现下列查询:
(1) 求选修课程号为C1课程的学⽣学号和学习成绩,结果按成绩降序排列。
(2) 查询选修课程号为C1课程且成绩为B以上的学⽣学号,姓名,系,年龄及成绩。
(3) 求不选修课程号为C3课程的学⽣姓名。
(4) 求选修课程超过3门的学⽣学号。
24. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G);其中: S# 学号;SN 学⽣姓名;SD 所
属系名;SA 学⽣年龄;C# 课程号; CN 课程名; PC# 先⾏课号码;
G 学习成绩;⽤SQL语句实现下列查询:
(1) 求学⽣姓名是以字母D打头的学⽣的学号,姓名。
(2) 求每⼀课程的间接先⾏课课程代号(即先⾏课的先⾏课)。
(3) 求选修了课程名为’J’的学⽣学号和姓名。
(4) 求课程号及选修该课程的学⽣⼈数。
25. 如下所⽰是⼀个保险公司的数据库,对这个关系数据库⽤SQL回
答以下问题:
person(drive_ id , name, address);car(license, year, model);
accident(date, driver _id , damage);owns(driver _ id,