宁波大学2013年1月数据库试卷
- 格式:pdf
- 大小:310.72 KB
- 文档页数:8
2013年1月高等教育自学考试全国统一命题考试数据库系统原理试题课程代码:04735考生答题注意事项:1.本卷所有试卷必须在答题卡上作答。
答在试卷和草稿纸上的无效。
2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。
必须注明大、小题号,使用0.5毫米黑色字迹笔作答。
4.合理安排答题空间,超出答题区域无效。
选择题部分一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。
未涂、错涂或多涂均无分。
1.以下不属于...数据库系统优于文件系统的特点是A.数据库系统冗余更少、共享性更强B.数据库系统的数据独立性更强C.数据库系统为用户提供更方便的用户接口D.数据库系统对数据的操作以记录为单位2.数据库完整性约束的建立需要通过DBMS提供的A.数据定义语言B.数据操纵语言C.数据查询语言D.数据控制语言3.数据库逻辑设计时,应首先A.设计外模型B.把概念模型转化成逻辑模型C.设计存储模型D.修正模型4.如果规定:一个学校只有一个校长,一个校长只在一个学校任职,则实体集学校和校长之间的联系是A.1对1B.1对多C.多对多D.多对15.在关系模式设计时,每个关系模式应只对应于A.一个实体类型或一个联系类型B.一个实体类型和一个联系类型C.多个实体类型D.多个联系类型6.设F是关系模型R的FD集,如果对F中每个非平凡函数依赖X→Y,都有X是R的超键,则R属于A.1NFB.2NFC.3NFD.BCNF7.设关系R如下表,则π专业,入学年份(R)的元组数为A.2B.38.常用的关系运算是关系代数和A.集合运算B.逻辑演算C.关系演算D.集合演算9.如果想找出关系R的属性A上为空的那些元组,则选择子句应该为A.WHERE A=NULLB.WHERE A==NULLC.WHERE A IS NULLD.WHERE A NOT IS NULL10.SQL语言的聚合函数COUNT、SUM、A VG等,不允许...出现在其中的子句为A.SELECTB.HA VINGC.GROUP…HA VINGD.WHERE11.下列语句中表示事务执行成功的是MITB.BEGIN TRANSACTIONC.ROLLBACKD.OK12.事务把数据R的S锁升级为X锁的操作是A.XFIND RB.SFIND RC.UPDX RD.SRELEASE R13.在T-SQL批处理中调用存储过程所使用的命令是A. execB. declareC. userD. set14.在PowerBuilder应用中建立窗口为w_main,下列打开此窗口的正确脚本语句是A.open w_mamB.open(w_main)C.display w_mamD.display(w_main)15.如果有枚举类型定义:sex{male,female},那么male和female的值分别为A.0,0B.0,1C.1,0D.1,1非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
数据库及其应用真题2013年01月(总分90,考试时间90分钟)一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的)1. 在数据管理中,同一数据重复存储的现象,称为______A.不一致 B.数据冗余 C.规范化 D.异常2. 依据数据库逻辑模型完成数据库内部模型设计的阶段是______A.概念设计 B.逻辑设计 C.物理设计 D.外部设计3. 下列选项中,不属于关系模型3个重要组成部分的是______A.数据结构 B.数据操纵 C.数据控制 D.数据完整性规则4. 将关系模式S(学号,姓名,班级,班主任,课程编号,课程名称,学时,成绩)规范化到3NF,能得到的关系数目是______A.1 B.2 C.3D.45. 在Access中,不能用来编辑表中数据的数据库对象是______A.报表 B.窗体 C.数据访问页 D.杏询6. 在Access中,下列有关压缩数据库的说法中错误的是______A.压缩数据库是重新组织该文件在磁盘上的存储方式 B.不能压缩当前数据库 C.可以压缩未打开的数据库 D.通过设置可实现关闭数据库时自动压缩7. 在Access中,下列关于创建表的方法中,错误的是______A.通过输入数据创建表 B.通过导入Excel电子表格创建表 C.执行CREATE TABLE命令创建表 D.执行ALTER TABLE 命令创建表8. 在Access中,通过查询向导可创建一个值列表,不能作为值列表数据源的是______A.表 B.查询 C.窗体 D.键入值9. 在表设计时,有文本型的“电话号码”字段,若输入XX,令其显示形式为**,则应将字段的格式属性设置为______A.###-######## B.@@@-@@@@@@@@ C.<<<-<<<<<<<< D.>>>->>>>>>>>10. 为防止输入重复数据,可在表的字段上______A.设置有效性规则 B.设置掩码 C.设置格式 D.设置无重复索引11. 基于职工信息表创建一个查询,搜索当天过生日的职工,该查询有“姓名”、“出生月:Month([出生日期])”、“出生日:Day([出生日期])”3个字段,显示职工的姓名、出生月和出生日,则在“出生月”和“出生日”2个字段的准则(条件)中依次输入______A.Month(Now()),Day(Now()) B.Month([出生日期]),Day([出生日期]) C.Month([Date()]),Day([Date()]) D.Like Mont,h([Now()]),Like Day([Now()])12. 下列关于交叉表查询的说法中,错误的是______A.使用向导创建交叉表查询可选择多个数据源 B.交叉表查询的行标题最多可以选择3个字段 C.交叉表查询的列标题最多可以选择1个字段 D.交叉表查询是以只读方式显示数据源的数据13. 下列关于子窗体的说法中,错误的是______A.包含在另一个窗体中的窗体称为子窗体 B.利用“自动创建窗体”方法可以创建含有子窗体的窗体 C.利用子窗体可以有效地显示“一对多”关系的数据 D.可以将已有的窗体作为子窗体添加到另一个窗体中14. 人事档案表中包括一个名为“照片”的OLE字段,则该字段的图像______A.可以在“窗体”视图中显示 B.可以在“数据表”视图中显示 C.不能在“窗体”视图中添加 D.不能在“数据表”视图中添加15. 已知报表中含有20个字段,已对4个字段进行了排序,则最多还能排序的字段数是______A.0 B.4 C.6D.1416. 按照城市列出供应商信息的报表,如图所示,在报表设计视图中,“城市”字段应添加到______A.报表页眉B.页面页眉C.条件页眉D.组页眉17. 在下列选项中,专用于数据访问页的控件是______ A.标签B.文本框C.滚动文字D.列表框18. 下列有关数据访问页描述中,正确的是______A.数据访问页只能在Access中使用 B.可利用数据访问页浏览、编辑、排序和筛选记录 C.不能将现有的Web页转换为数据访问页 D.不能在数据访问页上插入超级链接19. 退出Access的宏命令是______A.stop B.exit C.cancelD.quit20. 创建一个带条件的宏,用于判断“影片”报表中“类型”字段的值为“喜剧”,则该宏条件表达式为______A.[Reports]![影片]![类型]=“喜剧” B.[Reports].[影片].[类型]=“喜剧” C.{Reports>.{影片).{类型>=“喜剧” D.{Reports>!{影片>!{类型>=“喜剧”二、填空题1. 根据某些条件对关系做水平分割,称为关系的______运算。
数据库考试试题及答案数据库考试试题及答案数据库是计算机科学中非常重要的一个概念,它是用来存储和管理数据的系统。
在计算机科学相关专业的学习中,数据库课程是必不可少的一门课程。
而在学习过程中,考试是检验学生对数据库知识掌握程度的重要方式之一。
本文将介绍一些常见的数据库考试试题及其答案。
一、选择题1. 数据库的主要特点是什么?a) 数据独立性b) 数据一致性c) 数据安全性d) 数据完整性答案:a) 数据独立性2. 数据库管理系统(DBMS)的作用是什么?a) 存储和管理数据b) 运行程序c) 进行网络通信d) 控制硬件设备答案:a) 存储和管理数据3. 关系数据库中,什么是主键?a) 用于标识关系中的一个元组的属性或属性组b) 用于标识关系中的一个属性或属性组c) 用于标识关系中的一个关系d) 用于标识关系中的一个元组答案:a) 用于标识关系中的一个元组的属性或属性组4. 数据库中的事务是什么?a) 一组操作的集合b) 一个操作c) 一个数据项d) 一个数据表答案:a) 一组操作的集合5. 数据库中的ACID是什么的缩写?a) 原子性、一致性、隔离性、持久性b) 原子性、一致性、隔离性、可靠性c) 原子性、完整性、隔离性、可靠性d) 原子性、完整性、隔离性、持久性答案:a) 原子性、一致性、隔离性、持久性二、填空题1. 数据库的三级模式分别是________、________和________。
答案:外模式、概念模式、内模式2. 关系数据库中,用于标识关系中的一个元组的属性或属性组称为________。
答案:主键3. 数据库中的事务具有ACID特性,其中A代表________。
答案:原子性4. 数据库中,用于保证数据的完整性的约束称为________。
答案:完整性约束5. 数据库中,用于保证数据的一致性的约束称为________。
答案:参照完整性约束三、简答题1. 请简要解释数据库的三级模式。
答:数据库的三级模式是外模式、概念模式和内模式。
上海应用技术学院2012—2013学年第2学期《信息系统与数据库技术》期末(B)试卷答案一、单项选则题(20分,每小题1分)BDACC DCBAA二、简答题(40分,每小题4分)1.关系模型的完整性约束条件有哪些?域完整性,实体完整性,参照完整性(1) 域完整性规定了属性的值必须是属性值域中的值。
域完整性又称为用户自定义完整性。
它是在关系数据模型定义时,由用户对属性列值的数据类型、长度、单位、精度、格式、值域范围、是否允许为“空值”等进行限定。
(2) 实体完整性是指关系中的元组在组成主关键字的属性上不能有空值且主关键字的值不能相同。
(3) 参照完整性要求一个外表的外关键字的取值必须是其主表主关键字的存在值或空值。
2.请简述等值联接和自然联接的区别和联系。
连接操作是二元运算,从两个关系的笛卡儿积中选取满足一定条件的元组。
当连接条件中的运算符为“=”时,称为等值连接。
如果等值连接中连接属性为相同属性(或属性组),而且在结果关系中去掉重复属性,则等值连接称为自然连接。
3.简述数据库设计的基本步骤,数据库设计的特点。
数据库设计的基本步骤:1)需求分析:了解和分析用户的应用需求(包括信息需求和处理需求),进行需求收集和分析,并以数据流图、数据字典等形式加以描述。
2)概念设计:把需求分析阶段得到的用户需求进行综合、归纳和抽象,形成一个独立于具体DBMS 的概念数据模型。
3)逻辑设计:按照一组转换规则,将概念设计阶段产生的概念模型转换为某个DBMS支持的逻辑数据模型。
4)物理设计:是为逻辑模型选取一个最适合应用环境的物理结构(包括存取结构和存取方法)。
5)数据库实施:设计人员运用DBMS提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6)数据库运行与维护:数据库试运行后,即可投入正式运行。
数据库在运行期间应不断地对其进行评价、调整与修改。
数据库设计的特点:1)反复性:数据库设计不可能一气呵成,需要反复推敲和修改才能完成。
数据库系统原理2012-2013(1)A卷-问卷诚信应考考出水平考出风格浙江大学城市学院2012 — 2013 学年第 1 学期期末考试试卷《数据库系统原理》开课单位:计算分院;考试形式:闭卷;考试时间:_2013_年_1__月_17__日;所需时间: 120 分钟题序一二三四五六七八总分得分评卷人一._单选题___(本大题共__14__题,每题___2__分,共___28___分。
) 1. 数据库系统与文件系统的主要区别是()。
A .数据库系统复杂,而文件系统简单B .文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决C .文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件D .文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量2. 数据库的基本特点是()。
A .(1)数据可以共享(或数据结构化) (2)数据独立性(3)数据冗余大,易移植 (4)统一管理和控制B .(1)数据可以共享(或数据结构化) (2)数据独立性(3)数据冗余小,易扩充(4)统一管理和控制C .(1)数据可以共享(或数据结构化) (2)数据互换性(3)数据冗余小,易扩充 (4)统一管理和控制 D .(1)数据非结构化(2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制3. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。
A .外模式 B .内模式 C .存储模式 D .模式得分年级:_____________ 专业:_____________________ 班级:_________________ 学号:_______________ 姓名:__________________ …………………………………………………………..装………………….订…………………..线………………………………………………………4.关系数据库管理系统应能实现的专门关系运算包括()。
浙江理工大学2013—2013学年第2学期《数据库原理与应用》期末试卷(A)卷本人郑重承诺:本人已阅读并且透彻地理解《浙江理工大学考场规则》,愿意在考试中自觉遵守这些规定,保证按规定的程序和要求参加考试,如有违反,自愿按《浙江理工大学学生违纪处分规定》有关条款接受处理。
承诺人签名:学号:班级:一、程序阅读题(本题共40分)已知数据表Test1和Test2的定义如下。
其数据分别如表1和表2所示(表中未列出的数据需要自己计算得出),写出下列各个小题中SELECT语句的输出结果。
CREATE TABLE test1 (ProductID char(2) Primary key,Productname varchar(20),Category char(1),Price money,RowID int identity(20,2) )GOCREATE TABLE test2 (OrderID char(4),OrderDate datetime,Qty int default(0),ProductID char(2),Primary Key(OrderID, ProductID DESC) )GOCREATE VIEW view1 ASSELECT a.ProductID,Productname,OrderID,OrderDate,Convert(varchar(10),OrderDate,120) as 'OrderDay',Qty*Price as 'Amt' FROM test2 aJOIN test1 b on a.ProductID=b.ProductIDGOCREATE PROCEDURE pro1 @str nvarchar(20) ASSELECT ProductID,ProductName,OrderID,OrderDay,Amt FROM view1 WHERE Productname like @str andDATEDIFF(month,OrderDate,GETDATE())<=6GOExecute Pro1 '%[^ns]o%'--第2小题(6分);WITH tmp AS(SELECT Category,COUNT(*) as Number FROM test1GROUP BY Category WITH Rollup)SELECT CASE CategoryWHEN 'R' THEN 'Land'WHEN 'T' THEN 'Fruit'WHEN 'M' THEN 'Wave'ELSE '*S*' END as 'Category',Number FROM tmpDECLARE @t TABLE (Pid char(2),Qty int)INSERT INTO @t (Pid,Qty) SELECT ProductID,SUM(qty) FROM test2GROUP BY ProductID HAVING SUM(qty)>15SELECT a.Pid,b.Productname as 'Pname',Qty FROM @t a,test1 bWHERE b.ProductID=a.PidGO--第4小题(6分)ALTER TABLE test1 Add newCol intGOUPDATE test1 set newCol=(SELECT SUM(qty) from test2 WHERE ProductID=test1.ProductID ) SELECT * FROM test1 WHERE newCol<(SELECT AVG(newCol) FROM test1)SELECT OrderID,OrderDay,Productname,Amt,0 as Flag1,0 as Flag2 INTO test3 FROM view1 UNION ALLSELECT '','*S*',Productname,SUM(Amt),0,1 FROM view1 GROUP BY Productname WITH ROLLUP GOUPDATE test3 SET Orderday='*T*',Productname='',Flag1=1 WHERE Productname IS NULL SELECT OrderID,Orderday,Productname,Amt FROM test3WHERE Productname>'ON' OR Productname='' ORDER BY Flag1,Productname,Flag2GO--第6小题(6分)CREATE FUNCTION fn1 (@v1 nvarchar(10))RETURNS varchar(20) ASBEGINDECLARE @s varchar(20),@n int,@s1 varchar(30)SELECT @n=count(*) from test2 where ProductID=@v1SELECT @s1=Productname FROM test1 where ProductID=@v1IF @n>0BEGINIF @n>1 set @s=@s1+Space(1)+LTRIM(STR(@n,6))+'ts'else set @s=@s1+Space(1)+'1t'ENDELSE IF @n=0 set @s=@s1+space(1)+'*'RETURN(@s)ENDGOSELECT ProductID,dbo.fn1(ProductID) as Frequency FROM test1 ORDER BY ProductID--第7小题(4分)ALTER TABLE test2 ADD newCol intGODECLARE c1 cursor FOR SELECT productid,qty FROM test2ORDER BY ProductID,OrderDateOPEN c1DECLARE @qty int,@qty1 int,@id nvarchar(2),@id1 nvarchar(2),@price moneyFetch Next FROM c1 into @id1,@qty1Set @id=''Set @qty=0WHILE @@fetch_status=0BEGINIF @id<>@id1beginSet @id=@id1Set @qty=@qty1endELSE Set @qty=@qty+@qty1UPDATE test2 Set newCol=@qty WHERE CURRENT of c1Fetch Next FROM c1 into @id1,@qty1ENDDEALLOCATE c1SELECT ProductID,OrderID,Convert(varchar(10),OrderDate,120) as 'Orderdate',Qty,newCol FROM test2 WHERE ProductID like 'C[36]' ORDER BY ProductID,OrderDateGO表2. Test1表数据表3. Test2表数据二、程序设计题(本题共60分)数据库mySales用来存放某企业产品销售数据,Products表存放产品信息,Categories 表存放产品类别,Customers表存放客户信息,Orders表存放订单信息,OrderItems表存放订单明细信息,其表结构见表3~表7。
大学《数据库》期末试卷及答案一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要 求的,错选、多选或未选均无分。
1. 数据库系统的特点是( )、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
A .数据共享B .数据存储C .数据应用D .数据保密2. 数据库系统中,物理数据独立性是指( )。
A .数据库与数据库管理系统的相互独立B .应用程序与DBMS 的相互独立C .应用程序与存储在磁盘上数据库的物理模式是相互独立的D .应用程序与数据库中数据的逻辑结构相互独立3. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。
A .外模式B .内模式C .存储模式D .模式4. E-R 模型用于数据库设计的哪个阶段( )?A .需求分析B .概念结构设计C .逻辑结构设计D .物理结构设计5. 现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主码是( )。
A .宿舍编号 B .学号C .宿舍地址,姓名D .宿舍编号,学号6. 自然连接是构成新关系的有效方法。
一般情况下,当对关系R 和S 使用自然连接时,要求R 和S 含有一个或多个共有的( )。
A .元组B .行C .记录D .属性7. 下列关系运算中,( )运算不属于专门的关系运算。
A .选择 B .连接C .广义笛卡尔积D .投影8. SQL 语言具有( )的功能。
(考 生 答 题 不 得 超 过 此 线)A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵9.如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的()A.候选码B.主码C. 外码D. 连接码10.下列关于关系数据模型的术语中,()术语所表达的概念与二维表中的“行”的概念最接近?A.属性B.关系C. 域D. 元组11.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
数据库期末考试试题及答案一、单项选择题(每题2分,共20分)1. 数据库管理系统(DBMS)是()。
A. 一组软件B. 一个数据库C. 一组硬件D. 一个操作系统答案:A2. 在关系数据库中,关系是指()。
A. 行的集合B. 列的集合C. 行和列的有序对集合D. 行和列的无序对集合答案:C3. SQL是()。
A. 数据定义语言B. 数据控制语言C. 数据操纵语言D. 结构化查询语言答案:D4. 数据库系统的核心是()。
A. 数据模型B. 数据库管理系统C. 数据库D. 应用程序答案:C5. 数据库设计中,视图设计属于()。
A. 概念性设计B. 逻辑设计C. 物理设计D. 实体-关系模型设计答案:B6. 在关系数据库中,一个关系至少有一个候选键,一个候选键可以有()个属性。
A. 一个B. 多个C. 零个D. 任意个答案:B7. 数据库管理系统能提供数据的()。
A. 物理独立性B. 逻辑独立性C. 数据独立性D. 以上都是答案:D8. 数据库中,存储数据的基本单位是()。
A. 记录B. 字段C. 表D. 文件答案:C9. 数据库系统与文件系统相比,数据库系统能够提供()。
A. 数据共享B. 数据独立性C. 数据完整性D. 以上都是答案:D10. 在数据库中,数据的完整性约束不包括()。
A. 实体完整性B. 参照完整性C. 用户定义的完整性D. 数据冗余答案:D二、填空题(每题2分,共20分)1. 数据库系统由数据库、数据库管理系统和_________组成。
答案:数据库应用程序2. 数据库系统的核心是_________。
答案:数据库3. 数据库管理系统的主要功能包括数据定义、数据操纵、数据控制和_________。
答案:事务管理4. 在关系数据库中,关系模式的每一个分量称为_________。
答案:属性5. 数据库设计分为概念性设计、_________设计和物理设计三个阶段。
答案:逻辑6. 在数据库中,_________是指关系中的列。
2013年1月数据库模拟试题数据库概念设计的具体步骤概念设计的主要步走可分为三步:(1)进行数据抽象,设计局部概念模式;(2)将局部概念模式综合成全局概念模式;(3)评审。
1.数据库恢复的基本原则,具体实现方法恢复的基本原则就是冗余,即数据的重复存储。
1(2(3)恢复。
用REDO或UNDO处理3.数据库并发操作会带来哪些问题,如何解决1P15823据”的读出。
解决的办法通常是采用“封锁”技术4.什么是数据库的完整性。
DBMS的完整性子系统的主要功能是什么DB中完整性是指数据的正确性、有效性和相容性,防止错误的数据进入DB。
DBMS完整性子系统的主要功能有两点:监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作。
5.与“文件”相比,“数据库”结构有什么不同答:与文件结构相比,数据库结构主要有下面三点不同:·数据的结构化。
文件由记录组成,但各文件之间缺乏联系。
数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。
数据库的逻辑结构用数据模型来描述,整体结构化。
数据模型不仅描述数据本身的特点,还要描述数据之间的联系。
·数据独立性。
文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。
·访问数据的单位。
访问文件中的数据,以记录为单位。
访问数据库中的数据,以数据项(字段)为单位,增加了系统的灵活性。
6.分布式数据库系统有哪些特点DDBS主要有三个特点:·数据物理上分布在各地,但逻辑上是一个整体;·每个场地既可以执行局部应用,也可以执行全局应用;·各地的计算机由数据通信网络相连接。
7.数据库之间的联系在各种结构数据模型中怎么实现的在层次、网状模型中,数据之间的联系通过指针实现的;在关系模型中。
数据之间联系通过外键和主键间联系实现的;在面向对象模型中,数据之间嵌套、递归联系通过对象标识符(OID)实现的。
2.设有三个关系:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TNAME)试用关系代数表达式表示下列查询语句:①检索LIU老师所授课程的课程号和课程名。
②检索年龄大于23岁的男学生的学号和姓名。
③检索学号为S3学生所学课程的课程名与任课教师名。
④检索至少选修LIU老师所授课程中一门课的女学生姓名。
⑤检索WANG同学不学的课程的课程号。
⑥检索至少选修两门课的学生学号。
⑦检索全部学生都选修的课程的课程号与课程名。
⑧检索选修课程包含LIU老师所授全部课程的学生学号。
解:⑴πC#,CNAME(σTNAME='LIU'(C))⑵πS#,SNAME(σAGE>'23' ∧SEX='M'(SC))⑶πCNAME,TNAME(σS#='S3'(SC⋈C))⑷πSNAME(σSEX='F' ∧TNAME='LIU'(S⋈SC⋈C))⑸πC#(C)-πC#(σSNAME='WANG'(S⋈SC))⑹π1(σ1=4 ∧2≠5(SC×SC))⑺πC#,CNAME(C⋈(πS#,C#(SC)÷πS#(S)))⑻πS#,C#(SC)÷πC#(σTNAME='LIU'(C))3.2 对于教学数据库的三个基本表S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用SQL的查询语句表达下列查询:①检索LIU老师所授课程的课程号和课程名。
②检索年龄大于23岁的男学生的学号和姓名。
③检索学号为S3学生所学课程的课程名与任课教师名。
④检索至少选修LIU老师所授课程中一门课程的女学生姓名。
⑤检索WANG同学不学的课程的课程号。
⑥检索至少选修两门课程的学生学号。
⑦检索全部学生都选修的课程的课程号与课程名。
⑧检索选修课程包含LIU老师所授课程的学生学号。
解:①SELECT C#, CNAMEFROM CWHERE TNAME=’LIU’;②SELECT S#, SNAMEFROM SWHERE AGE>23 AND SEX=’M’;③SELECT CNAME,TEACHERFROM SC, CWHERE SC.C#=C.C# AND S#=’S3’;④SELECT SNAME (联接查询方式)FROM S, SC, CWHERE S.S#=SC.S# AND SC.C#=C.C#AND SEX=’F’AND TNAME=’LIU’;或:SELECT SNAME (嵌套查询方式)FROM SWHERE SEX=’F’AND S# IN (SELECT S#FROM SCWHERE C# IN (SELECT C#FROM CWHERE TNAME=’LIU’));或:SELECT SNAME (存在量词方式)FROM SWHERE SEX=’F’AND EXISTS (SELECT *FROM SCWHERE SC.S#=S.S#AND EXISTS (SELECT *FROM CWHERE C.C#=SC.C#AND TNAME=’LIU’));⑤SELECT C#FROM CWHERE NOT EXISTS(SELECT *FROM S, SCWHERE S.S#=SC.S# AND SC.C#=C.C#AND SNAME=’W ANG’);⑥SELECT DISTINCT X.S#FROM SC AS X, SC AS YWHERE X.S#=Y.S# AND X.C#!=Y.C#;⑦SELECT C#, CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S#=S.S# AND C#=C.C#));在1974年的SYSTEM R系统中,曾使用过“集合包含”的语法,即(集合1)CONTAINS(集合2)用这种语法也能写出本题的SELECT语句,即:SELECT C#,CNAMEFROM CWHERE (SELECT S# FROM SC WHERE C#=C.C#)CONTAINS(SELECT S# FROM S);由于判断“(集合1)CONTAINS(集合2)”与“NOT EXISTS((集合2)EXCEPT(集合1))”是等价的,因此本题的SELECT语句也能这样写:SELECT C#,CNAMEFROM CWHERE NOT EXISTS((SELECT S# FROM S)EXCEPT(SELECT S# FROM SC WHERE C#=C.C#));⑧SELECT DISTINCT S#FROM SC AS XWHERE NOT EXISTS(SELECT *FROM CWHERE TNAME=’LIU’AND NOT EXISTS(SELECT *FROM SC AS YWHERE Y.S#=X.S# AND Y.C#=C.C#));与⑦类似,本题的SELECT语句也能这样写:SELECT DISTINCT S#FROM SC XWHERE NOT EXISTS((SELECT C# FROM C WHERE TEACHER=’LIU’)EXCEPT(SELECT C# FROM SC Y WHERE Y.S#=X.S#));3.7 试用SQL查询语句表达下列对3.2题中三个基本表S、SC、C的查询:①在表C中统计开设课程的教师人数。
②求选修C4课程的女学生的平均年龄。
③求LIU老师所授课程的每门课程的平均成绩。
④统计每个学生选修课程的门数(超过5门的学生才统计)。
要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。
⑤检索学号比WANG同学大,而年龄比他小的学生姓名。
⑥在表SC中检索成绩为空值的学生学号和课程号。
⑦检索姓名以L打头的所有学生的姓名和年龄。
⑧求年龄大于女同学平均年龄的男学生姓名和年龄。
⑨求年龄大于所有女同学年龄的男学生姓名和年龄。
解:①SELECT COUNT(DISTINCT TEACHER)FROM C;②SELECT AVG(AGE)FROM S, SCWHERE S.S#=SC.S# AND C#=’C4’ AND SEX=’F’;③SELECT C.C#,AVG(GRADE)FROM SC,CWHERE SC.C#=C.C# AND TEACHER=‘LIU’GROUP BY C.C#;④SELECT S#, COUNT(C#)FROM SCGROUP BY S#HAVING COUNT(*)>5ORDER BY 2 DESC, 1;⑤SELECT SNAMEFROM SWHERE S#>ALL(SELECT S#FROM SWHERE SNAME=’W ANG’)AND AGE<ALL(SELECT S#FROM SWHERE SNAME=’W ANG’);⑥SELECT S#, C#FROM SCWHERE GRADE IS NULL;⑦SELECT SNAME, AGEFROM SWHERE SNAME LIKE ’L%’;⑧SELECT SNAME, AGEFROM SWHERE SEX=’M’AND AGE>(SELECT AVG(AGE)FROM SWHERE SEX=’F’);⑨SELECT SNAME, AGEFROM SWHERE SEX=’M’AND AGE>ALL(SELECT AGEFROM SWHERE SEX=’F’);3.12 试用SQL更新语句表达对3.2题教学数据库中关系S、SC、C的更新操作:①往关系C中插一个课程元组('C8','VC++','BAO')。
②检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME)。
③在SC中删除尚无成绩的选课元组。
④把选修LIU老师课程的女同学选课元组全部删去。
⑤把MATHS课不及格的成绩全改为60分。
⑥把低于所有课程总平均成绩的女同学成绩提高5%。
⑦在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。
⑧在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。
解:① INSERT INTO CVALUES('C8','VC++','BAO');② INSERT INTO FACULTY(TNAME)SELECT DISTINCT TEACHERFROM (SELECT TEACHER, C.C#, AVG(GRADE)FROM S, SCWHERE SC.C#=C.C#GROUP BY TEACHER, C.C#)AS RESULT(TEACHER, C#, AVG_GRADE) AS XWHERE 80<=ALL(SELECT AVG_GRADEFROM RESULT AS YWHERE Y.TEACHER=X.TEACHER);③ DELETE FROM SCWHERE GRADE IS NULL;④ DELETE FROM SCWHERE S# IN(SELECT S# FROM S WHERE SEX='F')AND C# IN(SELECT C# FROM C WHERE TEACHER='LIU');⑤ UPDATE SCSET GRADE=60WHERE GRADE<60AND C# IN(SELECT C# FROM C WHERE CNAME='MATHS');⑥ UPDATE SCSET GRADE=GRADE*1.05WHERE S# IN(SELECT S# FROM S WHERE SEX='F')AND GRADE<(SELECT AVG(GRADE) FROM SC);⑦用两个UPDATE语句实现:UPDATE SCSET GRADE=GRADE*1.04WHERE C#='C4' AND GRADE>70;UPDATE SCSET GRADE=GRADE*1.05WHERE C#='C4' AND GRADE<=70;(这两个UPDATE语句的顺序不能颠倒。