关系代数与SQL作业题参考答案
- 格式:ppt
- 大小:156.00 KB
- 文档页数:21
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日下订单的女顾客姓名”。
一、选择题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语言_习题(黄旭明)参考答案本章习题均基于以下假设:在某校,有关学生有学号、姓名、系别、出生日期等信息,有关课程有课程号、课程名、选修课程等信息,每个学生只有一个学号、只在一个系、可以选修多门课程;每门课程只有一个课程号、可以由多个学生选修,学生选修课程产生成绩。
这些数据在名为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语言》第一章练习题一、选择题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课后练习题及答案解析第一篇:数据库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语言(共1 00分)一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。
1.在数据库技术领域,术语DBMS指的是( A )A.数据库管理系统B.数据库系统C.对象关系数据库系统D.分布式数据库2.以下常见软件中,属于数据库管理系统的是( B )A.Word 2007 B.Oracle 10G C.Visio 2003 D.QQ 20093.以下关于数据冗余的叙述中,不平确的是( A )A.数据库中不应该存在任何冗余B.冗余的存在将给数据库的维护增加困难C.冗余的存在可能导致数据的不一致性D.数据冗余是指在两个或多个文件或表中出现重复的数据4.SQL Server 2000是常用的一种数据库产品,它所基于的数据模型是( B )A.网状模型B.关系模型C.层次模型D.瀑布模型5.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选修课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系( B )A.S B.SC,C C.S,C,SC D.S,SC6.设有关系R和S如图-1:则R与S进行差运算,其结果的元组数为( D )A.1 B. 5 C.3 D. 27.一个规范化的关系模式至少应属于(D )A BCNFB 3NFC 2NFD 1NF8.设有关系R如图-2所示:则进行关系运算后所得结果的元组数为(D )A 2B 3C 4D 59.当关系模式R(A,B)属于3NF,下列说法中正确的是(A )A 一定消除了插入和删除异常B 可能仍存在插入或删除异常C 一定消除了插入异常D 一定消除了删除异常10. 在关系R1(S,SN,D)和R2(D,CN,NM)中,R1的主键是S,R2的主键是D,则D在R1中称为(C )A 主码B 主属性C 外键D 主键11. 在SQL中使用FOREIGN KEY时,与之配合的语句是(C )A EXISTSB EXCEPTC REFERENCESD TABLE12.在SQL中,建立索引使用( B )A CREATE SCHEMA 命令B CREATE INDEX命令C CREATE TABLE 命令D CREATE VIEW 命令13.在SQL中,建立索引使用(B )A INSERTB CERA TEC UPDA TED ALTER14.在SQL中,对Name字段所作的涉及空值的比较,不正确...的是( D )A Name IS NULLB Name IS NOT NULLC NOT(Name IS NULL)D Name=NULL15.实体集书店与图书之间的联系是( A )A 一对多B 一对一C 多对多E 多对一16.现有关系表:医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果,恢复情况),可选作主码(主键)的是( B )A.诊断日期B.医生编号C.患者编号,医生编号,诊断日期D.患者编号17.在数据库设计中,独立于计算机的硬件和DBMS软件,设计人员仅从用户角度看待数据及处理要求和约束的阶段是( C )A.逻辑设计B.物理设计C.概念设计D.系统实施18.下列SQ[。
现有关系数据库如下:
Product(maker, model, type)表示产品的制造商,型号,类别
其中类别为PC,Laptop,Printer
PC(model, speed, ram, hd, rd, price) 表示个人电脑的型号,速度,内存,硬盘,光驱,价格
Laptop(model, speed, ram ,hd, screen, price) 表示笔记本电脑的型号,速度,内存,硬盘,屏幕,价格
Printer(model, color, type, price) 表示打印机的型号,彩色,类别,价格
1. 用关系代数表达式实现下列(1)—(4)小题:
(1) 找出销售便携式电脑但不销售PC的厂商;(2分)
(2) 找出厂商B生产的所有产品(任一类型)的型号和价格;(2分)
(3) 找出厂商C生产的内存为512MB的所有PC机型号;(2分)
(4) 找出价格在1000-3000之间的所有打印机型号,制造商。
(2分)
2. 用SQL语言实现下列(5)—(10)小题:
(5) 定义销售PC机的视图AAA,包括电脑的型号,电脑的速度,销售的厂商;(4分)
(6) 找出厂商C生产的内存为512MB的所有PC机型号;(2分)
(7) 删除厂商B生产的价格大于15000的笔记本记录;(3分)
(8)查询厂商D共生产了多少种不同型号的PC(型号总数,不是型号列表);(3分)
(9)在Printer中增加记录model:’P101’, color:’彩色’, type:’激光’, price:1200;(2分)
(10)将厂商D所生产的所有PC产品价格下调100元。
(3分)。
设有STUDENT数据库,包括S、SC、C三个关系模式:S(SNO,SNAME,SEX,AGE);SNO学生学号,SNAME学生姓名,AGE 学生年龄SEX 学生性别(用字母F代表女,用字母M代表男)SC(SNO,CNO,GRADE);SNO 学生学号,CNO 课程号,GRADE 成绩C(CNO,CNAME,TEACHER);CNO课程号,CNAME 课程名,TEACHER 任课教师姓名1请使用关系代数、SQL实现下列操作:1)查询MA HONG老师所授课程的课程号和课程名2)查询至少选修LI XI老师所授课程中一门课程的女生姓名3)查询WANG GANG同学不学的课程的课程号4)查询选修课程包含LI XI老师所授全部课程的学生学号。
2请使用SQL语言表达下列操作:1)统计每门课程的学生选修人数(超过10人的课程才统计)。
要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
2)检索姓名以M打头的所有学生的姓名和年龄。
3)求年龄大于所有女同学年龄的男学生姓名和年龄。
4)把低于所有课程总平均成绩的男同学成绩提高3%。
5)从SC关系中删除C2的记录,并从C关系中删除相应的记录。
6)将学生的学号和他的平均成绩定义一个视图1.①πCNO,CNAME(σTEACHER=’MA HONG’(C))②πSNAME(σSEX=’F’∧TEACHER=’LI XI’(S⋈SC⋈C))③πCNO(C)-πCNO(σSANME=’WANG GANG’(S⋈SC))④πSNO,CNO(SC)÷πCNO(σTEACHER=’LI XI’(C))①SELECT CNO,CNAME FROM C WHERE TEACHER=’MA HONG’②SELECT SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND O=O AND SEX=’F’ANDTEACHER=’LI XI’③SELECT CNO FROM C WHERE NOT EXISTS(SELECT * FROM SC,SWHERE SC.SNO=S.SNO AND O=O ANDSNAME=’WANG GONG)’⑷ select sno from S where not existsSelect * from C where teacher=’LI XI’and not existsSelect * from SC where cno=o and sno=S.sno2(1)SELECT CNO,COUNT(SNO) FROM SCGROUP BY CNOHAVING COUNT(*)>10ORDER BY 2 DESC,1(2)SELECT SNAME,AGE FROM SWHERE SNAME LIKE ’M%’(3)SELECT SNAME,AGE FROM SWHERE SEX=’M’AND AGE > ALL(SELECT AGE FORM SWHERE SEX=’F’)(4)UPDATE SC SET GRADE=GRADE*1.03WHERE SNO IN(SELECT SNO FROM S WHERE SEX=’M’)AND GRADE<(SELECT AVG(GRADE) FROM SC)(5)DELETE FROM SC WHERE CNO=’C2’DELETE FROM C WHERE CNO=’C2’。
一、选择题1、SQL语言是()语言。
——(SQL特点)(易)A)层次数据库B)网络数据库C)关系数据库D)非数据库答案:C2、SQL语言具有两种使用方式,分别称为交互式SQL和()。
——(SQL语言使用方式)(易)提示式SQL B)多用户SQL C)嵌入式SQL D)解释式SQL答案:C3、()包括数据库模式定义和数据库存储结构与存取方法定义。
()实现对DB的操作,包括查询、插入、删除、修改数据库中的数据。
()用于数据保护,包括数据的安全性,完整性,并发控制和恢复等。
——(数据库语言DDL DML DCL)(中)数据控制子语言B)数据定义子语言C)数据操纵子语言D)数据库语言答案:B C A4、下列SQL语句中,实现数据检索的语句是(),修改表结构的是(),修改属性值的是(),删除表结构的是(),删除表记录的是()。
——(DROP TABLE, ALTER TABLE,UPDATE, DELETE,SELECT 语句)(难)A)SELECT B)DROP C)UPDATE D)ALTER E)DELETE答案:A D C B E二、用关系代数表达式及SQL语句描述关系查询设有如下关系表R、S和T:——(易)R(BH, XM, XB, DWH)S(DWH, DWM)T(BH, XM, XB, DWH)写出实现下列关系代数的SQL语句:解:SELECT * FROM R WHERE DWH=’100’;SELECT XM,XB FROM R;SELECT XM,DWH FROM R WHERE XB=’女’;SELECT R.*,S.DWM FROM R, S WHERE R.DWH=S.DWH;SELECT XM,XB,DWH FROM R,S WHERE R.DWH=S.DWH AND XB=’男’;2、设有如下关系模式:student(NO, NAME , SEX ,BIRTHDAY, CLASS)teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART) PROF为职称,DEPART为系别course(CNO, CNAME, TNO)score(NO, CNO, DEGREE) DEGREE 为成绩写出实现以下各题功能的SQL语句:查询至少有2名男生的班号;——(难)Select CLASS from student where SEX=’男’Group by SEX Having Count(*)>=2查询不姓“王”的同学记录;——(易)Select * from student where NAME NOT Like ‘王%’查询每个学生的姓名和年龄;——(难)Select NAME year(date())-year(BIRTHDAY) as age From student查询学生中最大和最小的birthday日期值;——(中)Select max(BIRTHDAY), min(BIRTHDAY) From student查询学生表的全部记录并按班号和年龄从大到小的顺序;——(中)Select * from student order by CLASS DESC, BIRTHDAY DESC查询男教师及其所上的课程;——(中)Select NO,NAME, CNAME From teacher , course where teacher.NO= course.TNO and SEX=’男’查询最高分同学的学号,课程号和成绩;——(中)Select * from score where DEGREE=(select max(DEGREE) from score)查询和“李军”同性别并同班的所有同学的姓名;——(中)Select NAME from student where SEX=(select SEX from student where NAME=’李军’) AND CLAEE=(select CLASS from student where NAME=’李军’)查询选修“数据库系统概论”课程的男同学的成绩表;——(中)①Select NO,NAME, CNO, CNAME DEGREE from student, course, scoreWhere student.NO= score.NO and O= Oand CNAME=’数据库系统概论’and SEX=’男’②Select * from score where NO in(select NO from student where Sex=’男’) AND CNO=(select CNO from course where CNAME=’数据库系统概论’) 查询所有未讲课的教师的姓名和所在系别;——(难)Select NAME DEPART from teacher where NOT EXISTS(select * from score where teacher.NO=score.TNO)查询“计算机系”教师所教课程的成绩表;——(难)①Select * from score where CNO IN(select CNO from course where TNO in(select TNO from teacher where DEPART=’计算机系’))②Select Student.NO, , O, AME, Teacher.NO, , from student, teacher,course,score where student.NO=score.NO and O=O and Teacher.NO=Course.TNO and DEPART=’计算机系’查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录;——(难)Selec t student.NO, NAME, O,CNAME, DEGREE where O=’3-105’ and DEGREE > (select DEGREE from score where NO=’109’ and CNO=’3-105’ ) and student.NO=score.NO and O=O查询最低分大于70,最高分小于90的学生的学号;——(中)Select NO from score Group by NO having min(DEGREE)>70 and max(DEGREE)<90查询成绩在60到80之间的所有记录;——(中)Select * from score where DEGREE BETWEEN 60 AND 80查询成绩比该课程平均成绩低的同学的成绩表;——(相关子查询)(难)Select * from score x where DEGREE <(select AVE(DEGREE) from score y where O=O Group by O)查询所有女教师和女同学的姓名、性别和生日;——(中)Select NAME, SEX, BIRTHDAY from student where SEX=’女’UNIONSelect NAME, SEX, BIRTHDAY from teacher where SEX=’女’查询“计算机系”和“无线电系”不同职称的教师的姓名和职称;——(中)Select NAME, PROF from teacher where DEPART=’计算机系’OR DEPART =’无线电系’order by PROF;(以上是我自己做的答案)参考答案:解:(1)SELECT CLASS FROM student WHERE SEX=‘男’GROUP BY CLASS HAVING COUNT(*)>=2;(2)SELECT * FROM student WHERE NAME NOT LIKE ‘王*’;(3)SELECT NAME,year(date())-year(birthday) as age FROM student;(4)SELECT MAX(BIRTHDAY), MIN(BIRTHDAY) FROM student ;(5)SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC;(6)SELECT , ame FROM teacher x, course y WHERE x.no=y.tno and x.sex=’男’; (7)SELECT * FROM score WHERE degree=(SELECT max(degree) FROM score);(8)SELECT name FROM student WHERE sex=(SELECT sex FROM student WHERE name=’李军’) and class=(SELECT class FROM student WHERE name=’李军’);(9)SELECT * FROM score WHERE no IN(SELECT no FROM student WHERE sex=‘男’) and cno=(SELECT cno FROM course WHERE cname=‘数据库系统概论’);(10)SELECT name, depart FROM teacher t WHERE NOT EXIST (SELECT * FROM course c WHERE c.tno=t.no);(11)SELECT * FROM score s, teacher t, course c WHERE t.depart=’计算机系’and t.no=c.tno and o=o;(12)SELECT * FROM student s, score sc WHERE s.no=sc.no and cno=’3-105’and degree>(SELECT degree FROM sc WHERE no=’109’and cno=’3-105’);(13)SELECT no FROM score GROUP BY no HAVING min(degree)>70 and max(degree)<90; (14)SELECT * FROM score WHERE degree BETWEEN 60 AND 80;(15)SELECT * FROM score a WHERE degree < (SELECT avg(degree) FROM score b WHERE o=o group by o);(16)SELECT name, sex, birthday FROM teacher WHERE sex=‘女’UNION SELECT name, sex, birthday FROM student WHERE sex=‘女’;(17) SELECT name, prof FROM teacher WHERE depart=’计算机系’OR depart=’无线电系’order by prof;。
对下列关系模式分别用关系代数、和SQL 实现下列查询 理解下面几句话:1. SQL 语言是具有很坚实数学基础的语言2. SQL 语言是介于关系代数和关系演算之间的结构化查询语言3. 一个查询只要能用关系代数或关系演算实现,必能用SQL 实现4. 一个查询即能用关系代数、关系演算、SQL 实现5. 在SQL 语言中,能用非EXISTS 谓词实现的查询,均能用EXISTS 谓词实现,反之不一定。
1. 查询学生95001的所有信息。
① 关系代数:)('95001'Student Sno =σ ②SQL 语言:SELECT * FROM StudentWHERE Sno='95001'2. 查询学生95001的姓名和所在系。
① 关系代数:))(('95001',Student Sno Sdept Sname =σπ ②SQL 语言:方法一:SELECT Sname,Sdept FROM StudentWHERE Sno='95001'方法二:SELECT Sname,Sdept FROM StudentWHERE EXISTS (SELECT * FROM Student SXWHERE Student.Sno=SX.Sno AND SX.Sno='95001')方法三:SELECT Sname,Sdept FROM StudentWHERE Sno IN (SELECT Sno FROM StudentWHERE Sno='95001')3. 查询选修了1号课的学生的学号。
① 关系代数:))(('1'SC Cno Sno =σπ②SQL 语言:方法一:SELECT Sno FROM SCWHERE Cno='1'方法二:WHERE EXISTS (SELECT * FROM SC SCXWHERE SC.Sno=SCX.Sno AND o='1')方法三:SELECT Sno FROM SCWHERE Sno IN (SELECT Sno FROM SCWHERE Cno='1')4. 查询选修了1号课的学生的姓名。
数据库习题课答案(sql-关系代数-权限管理)教程文件数据库习题课答案(s q l-关系代数-权限管理)●根据下面所给的商品库,写出SQL语句商品表1(商品代号char(8),分类名char(8),单价float数量int) 商品表2(商品代号char(8),产地char(8),品牌char(8) )1)从商品库中查询出数量在10和20之间的商品种数select count(*)from 商品表1where 数量between 10 and 20;2)从商品库中查询出每类(即分类名相同)商品的总数量select 分类名,sum(数量)from 商品表1group by 分类名3)从商品库中查询出比所有商品单价的平均值要低的全部商品select *from 商品表1where 单价< (select avg(单价)from 商品表1)4)从商品库中查询出所有商品的不同产地的总数select count(distinct 产地)from 商品表2●设车辆管理数据库的数据模式如下:车辆(车号,车名,车颜色,生产厂名)工厂(厂名,厂长姓名,所在城市名)城市(城市名,人口,市长姓名)用关系代数写出如下查询:1)查询车名为红旗牌轿车的所有车号π车号(σ车名=‘红旗’(车辆))2)查询红旗牌轿车的生产厂家及厂长姓名Π 厂名,厂长姓名(σ车名=‘红旗’(车辆工厂))3)查询林肯牌轿车的生产厂家及所在城市的市长姓名Π 生产厂家,市长姓名(σ车名=‘林肯’(车辆工厂城市))4)查询第一汽车制造厂生产的汽车的颜色Π 车颜色(σ生产厂名=’第一汽车制造厂’(车辆))5)查询武汉生产哪些牌子的车Π车名(σ所在城市名=’武汉’(车辆工厂))●今有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号);部门(部门号,名称,经理名,地址,电话)。
请用SQL 的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。
针对书上的学生选课数据库S_T,用关系代数和SQL语言完成以下查询:1、查询“CS”系所有学生的学号和姓名。
2、Slelect sno,sname from student where sdept =’CS’3、查询所有姓“刘”的学生的信息。
4、Select * from student where sname like ‘刘%’5、查询年龄在18至20岁之间的学生信息。
6、Select * from student where sage between 18 and 207、查询不在“CS”系也不在“MA”系的学生的所有信息。
8、Select * from student where sdept not in (‘CS’,’MA’)9、查询“CS”系所有学生的平均年龄。
10、Select avg(sage) from student where sdept like ‘CS’11、查询课程名是以“系统”结尾的课程信息。
12、Select * from course where cname like ‘%系统’13、查询先行课为“6”号课程的课程信息。
14、Select * from course where cpno=615、查询间接先行课为“5”号课程的课程号及课程名。
16、Select o,ame from c c1,c c2 where c1.cpno=o and c2.cpno=517、Select cno ,cname from course where cpno in (select cno from course wherecpno=5)18、查询没有先行课的课程名。
19、Select cname from course where cpno is null20、查询选修了“1”号课程的学生选课信息。
21、Select * from sc where cno=122、查询成绩为90分以上的学生姓名和课程名。