关系代数与SQL作业题参考答案
SQL查询习题及答案

36.设教学用的四个基本表(S,C,T,SC)(2)查询年龄大于23岁的女同学的学号和姓名select 姓名,学号from swhere 性别='女' and 年龄>23(3)查询至少选修了刘老师所讲授课程中的一门课程的女同学姓名select s.姓名from s,scwhere s.性别='女'and s.学号=sc.学号and sc.课程编号in(select c.课程编号from c,twhere c.教师编号=t.教师编号and t.姓名='刘%')(4)查询至少选修了2门课程的学生学号select sc.学号from scgroup by 学号having count(课程编号)>2(5)查询全部学生都选修的课程号与课程名select c.课程编号,c.课程名称from c,scwhere sc.课程编号=c.课程编号and sc.学号=(select distinct s.学号from s)(6)计算机系每个教师讲授的课程号select t.教师编号,课程编号from c,twhere t.所在系='计算机系(7)查询没有选修过任何一门课程的学生的学号select s.学号from swhere s.学号not in(select distinct sc.学号from sc)(10)统计个系教师的人数select count (教师编号)from tgroup by 所在系(11)统计出教师人数超过10人的系的名称select t.所在系from tgroup by 所在系having count(教师编号)>10(12)在选课表SC中查询成绩为NULL的学生的学号和课程号select 学号课程编号from scwhere 成绩='NULL'(13)姓王的同学的年龄、姓名、选课名称、成绩select 年龄,姓名,课程名称,成绩from s,c,scwhere s.学号=sc.学号and c.课程编号=sc.课程编号and s.姓名='王%'(14)查询年龄大于女同学平均年龄的男同学姓名和年龄select 姓名,年龄from swhere 性别='男' and 年龄>(select avg(年龄)from swhere 性别='女')37.在数据库{USER、ORDER}中,用户需要查询“所有于2009年5月25日下订单的女顾客姓名”。
关系代数SQL语句习题last

一、选择题1. 下面的选项不是关系数据库基本特征的是()。
A.不同的列应有不同的数据类型B.不同的列应有不同的列名C.与行的次序无关D.与列的次序无关2. 一个关系只有一个()。
A.候选码B. 外码C. 超码D. 主码3. 关系模型中,一个码是()。
A.可以由多个任意属性组成B.至多由一个属性组成C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成D.以上都不是4. 现有如下关系:患者(患者编号,患者姓名,性别,出生日起,所在单位)医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是()。
A. 患者编号B. 患者姓名C. 患者编号和患者姓名D. 医生编号和患者编号5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是()。
A. 书号B. 读者号C. 书号+读者号D. 书号+读者号+借期6. 关系模型中实现实体间N:M 联系是通过增加一个()。
A.关系实现B. 属性实现C. 关系或一个属性实现D. 关系和一个属性实现7. 关系代数运算是以()为基础的运算。
A. 关系运算B. 谓词演算C. 集合运算D. 代数运算8. 关系数据库管理系统应能实现的专门关系运算包括()。
A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表9. 五种基本关系代数运算是()。
A.∪-× σ πB.∪-σ πC.∪∩ × σ πD.∪∩ σ π10. 关系代数表达式的优化策略中,首先要做的是()。
A.对文件进行预处理B.尽早执行选择运算C.执行笛卡尔积运算D.投影运算11. 关系数据库中的投影操作是指从关系中()。
A.抽出特定记录B. 抽出特定字段C.建立相应的影像D. 建立相应的图形12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是()操作。
sql 关系代数 练习

32设有两个关系(如下图): R S A C D B C D 1 2 3 5 2 4 3 2 4 6 3 3 4 3 4 8 2 4 3 3 4 计算ПA, B(R∞S)的值。
33 设有两个基本表R(A,B,C)和 S (A,B,C) 使用sql语言实现下列关系代数
(1)σ
B=‘17ห้องสมุดไป่ตู้(R)
11设有两个关系R (A,B,C) 和S (C,D,E), 试用SQL查询语句表达下列关系代数表达式 E(
πA,
σB = D (R∞S))。
12设有关系数据库:职工关系EMPLOYEE (职工 号,职工名,街道,城市) 工作关系WORKS (职工号,公司号,工资) 公司关系COMPANY (公司号,公司名,城市) 假设职工可在多个公司兼职,请用关系代数表达 式写出至少在公司号为‘C2’和‘C5’公司兼职的 职工的职工号。
用SQL语言实现下列5—8小题: 5.检索不学课程号为“C135”课程的学生信息, 包括学号,姓名和专业; 6.检索至少学过课程号为“C135”和“C219” 的学生信息,包括学号、姓名和专业; 7.从学生表中删除成绩出现过0分的所有学生 信息; 8.定义“英语”专业学生所学课程的信息视 图AAA,包括学号、姓名、课程号和分数。
8.下述说法正确的是 。 A.关系数据库的一个查询语句的结果 是一个满足查询条件的元组 B.SQL语言既能在交互环境中使用, 也可嵌入宿主语言中使用。 C.关系数据语言只具有数据操纵的功能 D.SQL语言只能在交互环境下使用
9写出R÷S计算结果
10现有关系数据库如下: 学生(学号,姓名,性 别,专业、奖学金) 课程(课程号,名称,学分) 学 习(学号,课程号,分数) 用关系代数表达式实现下列1—4小题: 1.检索“国际贸易”专业中获得奖学金的学生信 息,包括学号、姓名、课程名和分数; 2.检索学生成绩得过满分(100分)的课程的课程号、 名称和学分; 3.检索没有获得奖学金、同时至少有一门课程成 绩在95分以上的学生信息,包括学号、姓名和专 业; 4.检索没有任何一门课程成绩在80分以下的学生 的信息,包括学号、姓名和专业;
关系数据库与SQL语言_习题答案

关系数据库与SQL语言_习题(黄旭明)参考答案本章习题均基于以下假设:在某校,有关学生有学号、姓名、系别、出生日期等信息,有关课程有课程号、课程名、选修课程等信息,每个学生只有一个学号、只在一个系、可以选修多门课程;每门课程只有一个课程号、可以由多个学生选修,学生选修课程产生成绩。
这些数据在名为Student的数据库中进行管理,其中各表逻辑结构设计如下:表名:学生属性:学号(定长字符串,12)如:200210515001,2002年,105系别,15专业代码,001学生编号姓名(变长字符串,20,非空)出生日期(日期时间,非空)是否党员(逻辑型)班委(定长字符串,8)主键:学号表名:课程属性:课程号(定长字符串,3)课程名称(变长字符串,20)先修课号(定长字符串,3)主键:课程号外键:先修课号其值取自本表主键“课程号”的值表名:成绩表属性:学号(定长字符串,12)课程号(定长字符串,3)成绩(整数,3,取值0~100) .主键:(学号,课程号)外键:学号其值取自表“学生”主键“学号”的值.课程号其值取自表“课程”主键“课程号”的值1.用SQL语言创建一个数据库,命名为Student。
Create dababase student2.在Student数据库中,用SQL语言建立以上各表。
1)Create table 学生(学号 char(12) primary key,姓名 varchar(20) not null,出生日期datetime not null,是否党员 bit,班委 char(8))2)Create table 课程(课程号 char(3) primary key,课程名称 varchar(20) ,先修课号char(3) foreign key references 课程(课程号))3)Create table 成绩表(学号 char(12) foreign key references 学生(学号),课程号char(3) foreign key references 课程(课程号),成绩 smallint check(成绩 between 0 and 100),primary key (学号,课程号))3.在表“成绩表”中创建关于“课程号”的索引。
答案《关系数据库与SQL语言》第一章练习题

《关系数据库与SQL语言》第一章练习题一、选择题1. 实体完整性要求主属性不能取空值,这一点通常是通过(B)A. 定义外键来保证B. 定义主键来保证C. 用户定义完整性来保证D. 关系系统自动保证2. 建立在计算机外部设备上的结构化的、有联系的数据集合是(A)。
A. 数据库B. 数据库管理系统C. 数据结构D. 数据文件3. 英文缩写 DBA 是代表(B)。
A. 数据库管理系统B. 数据库管理员C. 数据定义语言D. 数据操纵语言4. 数据库设计中,在概念设计阶段可用 E — R 方法,其设计出的图称为(A)。
A. 实体联系图B. 实用概念图C. 实体表示图D. 实物示意图5. 在概念设计阶段可用 E —R 图,其中“矩形框”表示实体,(D)表示实体间联系。
A. 圆形框B. 椭圆框C. 箭头D. 菱形框6. 一个教师能开多门课程,一门课程有许多教师会开,实体课程与实体教师间是(C)。
A. 一对一的联系B. 一对多的联系C. 多对多的联系D. 多对一的联系7. 两个不同型实体间(B)。
A. 只有一种联系B. 可以有多种联系C. 不能有联系D. 只有多对多的联系8. 不是数据库系统中的数据模型是(D)。
A. 层次模型B. 网状模型C. 关系模型D. 多用户型9. 对于两实体间 m:n 联系,必须对“联系”单独建立(D),用来联系双方实体。
A. 一个实体B. 一个属性C. 一个指针D. 一个关系10. 模式的逻辑子集通常称为(C)A .存储模式B .内模式C .外模式D .模式11.要保证数据库物理数据独立性,需要修改的是 ( B ) 。
A. 模式B. 模式与内模式的映射C. 模式与外模式的映射D. 内模式12. 下列四项中,不属于数据库特点的是 ( C ) 。
A. 数据共享B. 数据完整性C. 数据冗余很高D. 数据独立性高13. 数据库中存储的是 ( D ) 。
A. 数据B. 数据模型C. 数据之间的联系D. 数据以及数据之间的联系14.表示数据库的概念模型一般使用 ( C) 。
关系数据库标准语言——SQL 练习及答案

--更新图书表,将高等教育出版社的图书定价,未达 更新图书表,将高等教育出版社的图书定价 未达 更新图书表 到该社平均定价的图书, 到该社平均定价的图书,定价提高到平均定价 Update 图书
Set 定价 定价=(select avg(定价 from 图书 定价) 定价 where 出版社 高等教育出版社 出版社=‘高等教育出版社 高等教育出版社') Where 定价 定价<(select avg(定价 from 图书 定价) 定价 where 出版社 高等教育出版社 出版社=‘高等教育出版社 高等教育出版社')
--查询本周借出的图书借阅信息,字段同题一 查询本周借出的图书借阅信息, 查询本周借出的图书借阅信息 Select 借阅 书号 书名 借阅 读者编号 借阅日期 借阅.书号 书名,借阅 读者编号,借阅日期 书号,书名 借阅.读者编号 From 图书 借阅 读者 图书,借阅 借阅,读者
Where 图书 书号 借阅 书号 and 借阅 读者编号 读者 编号 图书.书号 借阅.书号 书号=借阅 借阅.读者编号 读者.编号 读者编号=读者
--建立“机械工业出版社”和“高等教育出版社”图书的借 建立“机械工业出版社” 高等教育出版社” 建立 阅情况视图V_jxgj(书号,书名,出版社,读者编号,读者 书号, 阅情况视图 书号 书名,出版社,读者编号, 姓名,借阅时间) 姓名,借阅时间 Create view V_jxgj As select 借阅.书号, 书名, 出版社, 借阅.读者编号,借阅日期 借阅.书号 书名, 出版社, 借阅.读者编号 书号, 读者编号,借阅日期 From 图书 借阅 读者 图书,借阅 借阅,读者 Where 图书 书号 借阅 书号 and 借阅 读者编号 读者 编号 图书.书号 借阅.书号 书号=借阅 借阅.读者编号 读者.编号 读者编号=读者 And 出版社 in ('机械工业出版社 ,'高等教育出版社 机械工业出版社' 高等教育出版社') 机械工业出版社 高等教育出版社
数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。
5)查找书名以”计算机”开头的所有图书和作者(WRITER)。
6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了一书的借书证号。
11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13)求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15)求出各个出版社图书的最高价格、最低价格和总册数。
#16)分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18)分别找出借书人次数多于1人次的单位及人次数。
19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20)查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
关系代数与SQL作业题参考答案

(3)检索至少选修“程军”老师所授全部课程的学生姓名SNAME。
SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE TEACHER=’程军’ AND NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND O=O));
(4)检索“李强”同学不学课程的课程号。
SELECT CNO FROM C
WHERE CNO NOT IN
(SELECT CNO FROM SC,S
或
WHERE SC.SNO=S.SNO AND S.SNAME=’李强’) ; SELECT CNO
FROM C EXCEPT SELECT CNO FROM SC,S WHERE SC.SNO=S.SNO AND S.SNAME=’李强’ ;
(11)检索选修课程名为“C语言”的学生学号和姓名。
(11) SELECT SNO,SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND O=O AND CNAME=’C语言’ ;
SQL练习二
NO 108
NAME 曾华
SEX 男
Hale Waihona Puke BIRTHDAY 09/01/77
(7)检索选修课程包含“程军”老师所授课程之一的学生学号。
SNO (SC CNO ( TEACHER "程军" (C)))
(8)检索选修课程号为k1和k5的学生学号。
SNO,CNO (SC) CNO ( CNO 'k1'CNO 'k 5 ' (C))
(9)检索选修全部课程的学生姓名;
SQL查询实例练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(10)、删除student中学号为”999”的学生记录;
(11)、将student中学号为”990”的学生的班号改为“95031”;
(1)select name,sex,class
from student; (2) select distinct depart
from teacher;
(3) select * from score where degree between 60 and 80; (4) select *
(8)检索选修课程号为k1和k5的学生学号。
SNO,CNO (SC) CNO ( CNO 'k1'CNO 'k 5 ' (C))
(9)检索选修全部课程的学生姓名;
SNAME (S(SNO,CNO (SC) CNO (C)))
(10)检索选修课程包含学号为2的学生所修课程的学生学号。
(11)检索选修课程名为“C语言”的学生学号和姓名。
(11) SELECT SNO,SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND O=O AND CNAME=’C语言’ ;
SQL练习二
NO 108
NAME 曾华
SEX 男
BIRTHDAY 09/01/77
(5)检索至少选修两门课程的学生学号。
SELECT SNO FROM SC A, SC B WHERE A.SNO=B.SNO AND O<>O;
(6)检索全部学生都选修的课程的课程号和课程名。
SELECT CNO,CNAME
FROM C
WHERE NOT EXISTS (SELECT *
SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE TEACHER=’程军’ AND NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND O=O));
(4)检索“李强”同学不学课程的课程号。
SELECT CNO FROM C
WHERE CNO NOT IN
(SELECT CNO FROM SC,S
或
WHERE SC.SNO=S.SNO AND S.SNAME=’李强’) ; SELECT CNO
FROM C EXCEPT SELECT CNO FROM SC,S WHERE SC.SNO=S.SNO AND S.SNAME=’李强’ ;
(3)检索至少选修“程军”老师所授全部课程的学生姓名SNAME。
SNAME ( S( SNO ,CNO ( SC ) CNO ( TEACHER"程军" (C ))))
(4)检索“李强”同学不学课程的课程号。
CNO (C) CNO ( NAME "李强" (s)SC)
(5)检索至少选修两门课程的学生学号。
2
5 5
K5
K5 K8
90
84 80
(1) 检索“程军”老师所授课程的课程号CNO和课程名CNAME。
CNO ,CNAME ( TEACHER "程军" (C))
(2)检索年龄大于21的男学生学号SNO和姓名SNAME。
SNO,SNAME ( AGE 21SEX "男" (S ))
3-105
3-105 3-105 3-105 3-105 3-105 6-166 6-166 6-166
92
88 76 64 91 78 85 79 81
9-888
6-187
高等数据学
数据库系统
100
804
用SQL完成以下操作:
(1)、在屏幕上列出student表中所有记录的name,sex和class列;
WHERE O=’k5’;
(9)检索选修全部课程的学生姓名;
SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND O=O));
(2)、屏幕显示教师所有的单位(即不重复的depart列);
(3)、屏幕显示score表中成绩在60到80分之间的所有记录; (4)、在屏幕上显示student中”950311”班或性别为”女”的同学记录 ; (5)、以class降序在屏幕上显示student表的所有记录; (6)、在屏幕上显示 “95031”班的学生人数; (7)、显示所有学生的name,cno和degree列; (8)、显示所有学生的name, cname 和degree列; (9)、列出所有未讲课的教师的name和depart;
Course:课程信息表
CNO 3-105 3-245 6-166 CNAME 计算机导论 操作系统 数据字电路 TNO 825 804 856
Score:成绩信息表
NO 103 105 109 CNO 3-245 3-245 3-245 DEGRE E 86 75 68
103
105 109 101 107 108 101 107 108
SELECT CNO,CNAME FROM C
WHERE TEACHER=’程军’;
(2)检索年龄大于21的男学生学号SNO和姓名SNAME。
SELECT SNO,SNAME FROM S WHERE AGE>21 AND SEX=’男’;
(3)检索至少选修“程军”老师所授全部课程的学生姓名SNAME。
(8)检索选修课程号为k1和k5的学生学号。
SELECT SNO FROM SC WHERE O=’k1’ 或: SELECT SNO FROM SC A, SC B WHERE A.SNO=B.SNO AND O=’k1’ AND O=’k5’ ;
INTERSECT
SELECT SNO FROM SC
FROM S
WHERE NOT EXISTS (SELECT * FROM SC WHERE O=O AND SC.SNO=S.SNO));
(7)检索选修课程包含“程军”老师所授课程之一的学生学号AND C.TEACHER=’程军’ ;
关系代数及SQL查询实例练习
S:学生信息表
SNO 1 2 5 SNAME 李强 刘丽 张友 AGE 23 22 22 SEX 男 女 男
SC:学生选课成绩表
SNO 1 2 5 CNO K1 K1 K1 GRADE 83 85 92
C:课程信息表
CNO( 课号 ) k1 k5 k8
CNAME ( 课 名 ) TEACHER ( 教 师 ) C语言 数据库原理 编译原理 王华 程军 程军
CLASS 95033
Student:学生信息表
105
107 101 109 103
匡明
王丽 李军 王芳 陆君
男
女 男 女 男
10/02/75
01/23/76 02/20/76 02/10/75 06/03/74
95031
95033 95033 95031 95031
Teacher:教师信息表
NO 804 856 825 831 NAME 李诚 张旭 王萍 刘冰 SEX 男 男 女 女 BIRTHDAY 12/02/58 03/12/69 05/05/72 08/15/77 PROF 副教授 讲师 助教 助教 DEPART 计算机系 电子工程系 计算机系 电子工程系
from student
where class=‘95031’ or sex=‘女’;
(5) select *
from student order by class desc;
(6) select count(*) as 学生人数 from student
where class='95031'
(7) select name,cno,degree from student,course,score
SNO ( [1][ 4][ 2][5] (SC SC))
(6)检索全部学生都选修的课程的课程号和课程名。
CNO,CNAME (C(SNO,CNO (SC) SNO (S )))
(7)检索选修课程包含“程军”老师所授课程之一的学生学号。
SNO (SC CNO ( TEACHER "程军" (C)))
(10)检索选修课程包含学号为2的学生所修课程的学生学号。
SELECT SNO
FROM S
WHERE NOT EXISTS (SELECT * FROM SC A WHERE SC.SNO=’2’ AND NOT EXISTS (SELECT * FROM SC B B.SNO=S.SNO AND O=O));
SNO,CNO (SC) CNO ( SNO'2 ' (SC)
(11)检索选修课程名为“C语言”的学生学号和姓名。
SNO,SNAME (SSNO (SC( CNAME 'C语言' (C)))
SQL查询实例练习
(1) 检索“程军”老师所授课程的课程号CNO和课程名CNAME。
where student.no=score.no
(8) select name,cname,degree from student,course,score
where student.no=score.no and o=o
(9) select name,depart from teacher where no not in (select distinct tno from course) (10) delete from student where no='999' (11)update student set class=’95031’ where no=’990’