SQL数据库系统和应用_第1页
SQL数据库系统和应用_第2页
SQL数据库系统和应用_第3页
SQL数据库系统和应用_第4页
SQL数据库系统和应用_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机密启用前大连理工大学网络教育学院2021年秋?SQL>据库系统及应用?期末测试复习题考前须知:本复习题总分值共:400分.一、填空题1 .在关系数据库的标准中,在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单元代表第范式.答案:一2 .在索引命令中使用关键字CLUSTEREDNONCLUSTER由别表示将建立的是和答案:聚集索引、非聚集索引3 .常见的关系数据库有ACCESS和.答案:SQLServer>Oracle4 .从表中删除数据的命令是fromwhere.答案:Delete、表名5 .向表中数据的命令是insertinto表名(constant1,constant

2、2,答案:插入、values6 .在一个表上,最多可以定义个聚集索引,最多可以有个非聚集索引.答案:1、多7 .ABS函数的功能是返回数值表达式的.答案:绝对值8 .LIKE查询中符号代表由零个或更多字符组成的任意字符串,下划线""符号代表字符.答案:%任意单个9 .创立表的语句是:.答案:CREATETABLED名资料整理10 .在MicrosoftSQLServer2021中,主数据文件的后缀是.答案:.mdf11 .在MicrosoftSQLServer2021中,日志文件的后缀是.答案:.ldf12 .创立索引的语句是:INDEX.答案:CREATE13 .语句se

3、lectround12.3421,2,round23.4567,3的执行结果是:和.答案:12.34,23.45714 .关系是笛卡尔积的有限子集,所以是一个维表,表的每行对应一个,每列对应一个.答案:二、元组、域二、问做题1 .对SQLServer实例访问,SQLServer2021支持哪几种身份验证模式?答案:SQLServer2021支持两种身份验证模式:Windows身份验证模式2分和混合身份验证模式2分.Windows身份验证模式使用Windows操作系统中的信息验证账户名和密码,默认的身份验证模式.3分混合身份验证模式允许用户使用Windows身份验证或SQLServer身份验证进

4、行连接3分.2 .简述SELEC9句中的FROMWHER以及ORDERB仔句的彳用.SQLServer2021系统中主要数据库对象都有哪些?答案:在SELECTS句中:FROM?句:用来指定数据来源的表;2分WHERETO:用来限定返回行的搜索条件;2分ORDERB件句:用来指定结果的排序方式.2分主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规那么和默认值等.酌情给分,共4分3 .如何使用IFELSE流程限制语句?答案:一个逻辑表达式的结果要么为真,要么为假.根据不同的结果,对应于不同的操作.这时就需要使用IFELSE语句在程序中对于给定条件进行判

5、断.语法格式如下:资料整理IF条件表达式语句体1ELSE语句体25分说明:条件表达式的运算结果应该为TRUE真或FALSE假,如果条件表达式中含有SELEC9句,那么必须用圆括号将SELECTS句括起来;2分当条件表达式的值为TRUE时执行语句体1,然后执行IF语句之后的语句;如果条件表达式的值为FALSE,那么执行ELSE关键字后面的语句体2,然后执行IF语句之后的语句;2分可以在IF区域或者ELSE区域嵌套另一个IF语句,对于嵌套的层数没有限制.1分4 .如何使用WHILE流程限制语句?答案:WHILE语句是一种将同一段代码循环运行屡次的方法,它可以根据一个条件表达式的结果,将代码从0次开

6、始运行到指定次数,或者是持续运行直到遇见BREAa键字退出循环.5分WHILE语句的语法格式如下:WHILE条件表达式Begin循环体end可以在循环体内设置BREAKSCONTINU或键字,以便限制循环语句的执行.5分5 .T-SQL的注释符是什么?参见p67答案:注释也称注解,是程序代码中不执行的文本字符串.注释主要描述程序名称、作者名称、变量说明、代码更改日期、算法描述等.使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程序的治理与维护.5分在T-SQL中,可以使用两种类型的注释符: 注释符“-用于单行注释2分 注释符"/*/",用于注释多行文字3分6

7、 .SQL语句中SUM®数、COUNT!数、AVG函数的功能是什么?答案:SUM®数:计算值的总和并返回总数.COUNT1数:计算记录数.AVG函数:返回指定列中的平均值.资料整理7 .简述插入操作过程中的常见异常情况.答:1)插入数据值的个数多于列的个数2)提供数据的类型与列类型不兼容3)插入数据时违背了约束8 .对表进行数据操作包括哪几种?答:包括数据的插入,修改,删除三种操作9 .在关系数据库中是根据“二维表的形式来组织数据的,每张表由哪两局部组成?答:一局部是关于表的结构定义信息,包括表的名称,列的名称,列的长度和列的数据类型等;另一局部是存储在表中的用户数据.10

8、 .SQLServer中,约束条件有哪几种类型,都是什么?答:有五种类型:空值约束,唯一约束,主键2束,外键约束,检查约束.11 .说明HAVING子句与WHER子句之间的区别.答:WHERE子句是用来指定数据库表中数据行应该满足的条件,HAVING子句是在分组(GROUPBYT句)前提下选择每一个分组应该满足的条件12 .简述修改操作过程中的常见异常情况.答:1)没有要修改的数据2)设置新值时,数据类型不兼容.3)修改数据时违背了约束13 .SQL语言的命令一般分为哪四类语句?答:分为查询,数据操纵,数据定义和数据限制四类语句.四、程序题1 .有家企业要用表t1来存储客户的信息.客户的信息包

9、括:代号(int,主键),名称(char(20),(char(20),(char(20),备注(nvarchar(1000).(1)请写出创立该表的SQL语句.资料整理(2)后来因流行,需要在表t1中再添加列“,该列的类型是char(11).请写出添加该列的SQL语句.答案:(1)酌情给分(5分)Createtablet1(代号intprimarykey,名称char(20),char(20),char(20),备注nvarchar(1000)(2)酌情给分(5分)altertablet1addchar(11)2 .(1)创立学生信息表,学生表的信息包括:StudID(代表学号char(8),

10、非空主键),Name(学生姓名varchar(20),非空),Birthday(生日,非空),DeptID(院系号char(2),非空).请创立该表.(2)给某公司创立表tblEmployees:存储雇员的代号(4个字符,唯一)、身份证号(18个字符)、名字(20个字符)和工资信息.请写出创立这个表的T-SQL语句,要保证:工资的值大于0,身份证号唯"o答案:代码酌情给分,每个5分(1)CREATETABLEstudent(StudIDchar(8)notnullPRIMARYKEY,Namevarchar(20)notnull,Birthdaydatenotnull,DeptIDc

11、har(2)notnull)createtabletblEmployees(IDchar(4)unique,IDCARDchar(18)unique,Namechar(20),资料整理Gongziintcheck(Gongzi>0)3 .用SQL语言实现以下功能的sql语句代码:(1)创立数据表宿舍表:宿舍表(宿舍号char(6),宿舍),要求使用:主键(宿舍号)、宿舍:以847开头的7位号(2)创立数据表同学表:同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号),要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(

12、性别)(3)将以下宿舍信息添加到宿舍表:宿舍号宿舍10184711571028471777答案:酌情给分,共10分(1) createtable宿舍表(宿舍号char(6)primarykey,宿舍char(7)check(宿舍like'8470-90-90-90-9')(2) createtable同学表(学号char(6)primarykey,姓名nchar(4)notnull,性别ncharcheck(性另【Jin('男,'女'),年龄int,民族nchar(8)default'汉族'notnull,身份证号char(18)uniq

13、ue,宿舍号char(6)references宿舍表(宿舍号)(3) insert宿舍表values('101','8471157')insert宿舍表values('102','8471777')4 .根据以下情况,写出创立course表的语句.属性列数据类型长度空值列约束cs_idnVarChar4NotNullPKcs_nmnVarChar20NotNullcs_tmintNullcs_scintNull答案:酌情给分,共10分CREATETABLEcoursecs_idnVarChar(4)cs_nmnVarChar(20

14、)cs_tmintcsscintprimarykeyNOTNULL,NOTNULL,NULL,NULL5 .(1)请写出在某数据库中执行以下语句后的输出结果.CREATETABLEtabl(CNOCHAR(3),NAMEVARCHAR(20),CLASSVARCHAR(20)INSERTINTOtablvalues('001','方健','三年二班')INSERTINTOtablvalues('002','李勇','三年一班)select*fromtabl(2)请写出在某数据库中执行以下语句后的输出结果.C

15、REATETABLEtable1(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint)INSERTINTOtable1values('001','方明',85)INSERTINTOtable1values('002','李元',90)INSERTINTOtable1values('003','徐汇',75)INSERTINTOtable1values('004','王希',59)INSERTINTOtable1values(&#

16、39;005','刘玉',70)selectCNO,NAMEfromtable1wheregradebetween60and80orderbygrade答案:酌情给分,每个5分(1)001方健三年二班002李勇三年一班(2)005刘玉003徐汇6.有如下student表:StudIDNameDeptIDMinzu1张三12汉族2李赛12汉族3王明13家占族4李密12汉族5刘凤15满族请写出执行以下语句后的输出结果.(1) SELECTName,MinzuFROMstudentWHEREDeptIDBETWEEN'13'AND'15'(2)

17、 SELECT*FROMstudentWHEREDeptIDIN('12','15')答案:15分王明家占族刘凤满族5分1张三12汉族2李赛12汉族4李密12汉族5刘凤15满族7.请写出在某数据库中执行以下语句后的输出结果.CREATETABLEtable8(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint)INSERTINTOtable8values('001','方明',85)INSERTINTOtable8values('002','李元',90)IN

18、SERTINTOtable8values('003','徐汇',75)INSERTINTOtable8values('004','王希',59)(1) selectmax(grade)as最高分,sum(grade)'总分,min(grade)最低分fromtable8(2) selectavg(grade)as平均分fromtable8(3) select*fromtable8wheregrade<80orderbycnodesc答案:(1) 3分最高分总分最低分90309593分平均分77或77.25任答一个均正

19、确4分CNONAMEgrade004王希59003徐汇758.有如下student表:StudIDNameDeptIDMinzu1张三12汉族2李赛12汉族3王明13家占族(1)写出查询student表中非12系(DeptID)的学生信息的语句.(2)写出查询表中Nam的含“李的所有信息的语句.答案:(1)SELECT*FROMstudentWHERENOT(DeptID='12')(5分)(2) SELECT*FROMstudentWHERENameLIKE'%李'(5分)9.数据库中存在以下两个表,同学表学号char6,姓名,性别,年龄,民族,身份证号,宿舍

20、号,宿舍表宿舍号char6,宿舍.(1)从同学表中查询女同学的最大年龄、最小年龄、平均年龄.(2)创立带参数的存储过程某宿舍同学:姓名,性别,宿舍,执行此过程,查询'101'宿舍情况(3)将以下宿舍信息添加到宿舍表:宿舍号宿舍10484710571098470333答案:酌情给分,共10分(1) select最大年龄=max(年龄),最小年龄=min(年龄),平均年龄=avg(年龄)from同学表where性别='女'(2) createprocedure某宿舍同学宿舍号varchar(6)asselect姓名,性别,宿舍from同学表视图where宿舍号=宿舍

21、号goexecute某宿舍同学'101'(3) insert宿舍表values('104','8471057')insert宿舍表values('109','8470333')10.请写出在某数据库中执行以下语句后的输出结果.CREATETABLEtable2(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint);IIIINSERTINTOtable2values('001','方明',89)INSERTINTOtable2values(

22、9;002','李元',90):INSERTINTOtable2values('003','徐汇',60)INSERTINTOtable2values('004','王希',75):CREATETABLEtable3(CNOCHAR(3)primarykey,sdeptchar(20),INSERTINTOtable3values('001','计算机系')INSERTINTOtable3values('002','电子系')INSERTINT

23、Otable3values('003','电子系')INSERTINTOtable3values('004','计算机系')11)selectsdept,SUM(grade)fromtable3jointable2ontable2o=table3ogroupbysdeptselectmax(grade)as最高分,min(grade)最低分fromtable2(3)selectnamefromtable3jointable2ontable2o=table3owheretable3.sdept='计算机系答案:(1)电子系1

24、50计算机系164(2)最高分最低分9060(3)方明王希11.现有数据表如下:学生信息表(学号char(6),姓名,性别,民族,身份证号),课程信息表(课号char(6),名称),成绩信息表(ID,学号,课号,分数)(1)从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族.(2)查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名.答案:(1)select姓名,性别,民族from学生信息表where姓名like'刘'and性别='女'(5分)(2)select学号,姓名from学生信息表where学号in(selectdistinct学号

25、from成绩信息表where分数60)(5分)12. (1)使用SQL语句把学生根本信息表中姓名由8个字符改为20个字符.(2)把课程表中课程号为C001的上课教师由胡小雨改为胡大雨.答:(1)altertable学生根本信息表altercolumn姓名char(20)notnull(2) update课程表set上课教师='胡大雨where课程号='C00T13. (1)在学生信息表(学号,姓名,性别)中查询所有学生的姓名,学号和性别信息.(2)根据性别降序,显示学号、姓名和性别.答:(1)select姓名,学号,性别from学生信息表(2) select学号,姓名,性别fr

26、om学生信息表orderby性别desc14. 1在学生信息表中学号,姓名,奖学金,出生日期查询学生中年龄最大的前三名的学号和姓名.2查询奖学金在300元包才300元与1500元包才1500元之间的学号、姓名和奖学金值.答.1selecttop3学号,姓名from学生信息表orderby出生日期2select学号,姓名,奖学金from学生信息表where奖学金between300and150015 .在学生根本信息表字段为学号、姓名、性别中建立一个DELETE类型的触发器“学生信息删除触发器,触发动作是显示删除数据的提示信息.答:createtrigger学生信息删除触发器on学生根本信息表f

27、ordeleteasprint'学生根本信息表删除了以下数据行select学号,姓名,性别fromdeleted16 .在学生根本信息表中字段为学号、姓名、性别、出生年月日查询年龄最小的学生的出生年月日.答:selectmax出生日期as'出生年月曰'from学生根本信息表17 .现有视图如下:成绩表视图学号,姓名,课号,课程名称,分数.要求创立查询某门课程的最高分、最低分、平均分的存储过程某门课程上下均分,同时执行该过程,查询所有修“专业英语这门课程的学生的最高分、最低分、平均分.createprocedure某门课程上下均分课程名nchar16asselect课程名

28、称,最高分=max分数,最低分=min分数,平均分=avg分数from成绩表视图where课程名称=课程名groupby课程名称资料整理goexecute某门课程上下均分'专业英语(10分)18 .student数据库中学生信息表内容如下:学生信息表(sxs)学号(char,7)姓名(char,8)性别(char,2)出生日期datetime政治面貌(char,10)2041031林一帆男1982-4-5团员2041012李华女1984-11-6群众(1)修改李华的政治面貌改为“党员UPDATEsxsSET政治面貌='党员WHERE生名='李华(2)删除李华的这条记录.

29、DELETEFROMsxsWHERE生名='李华(3)查询所有学生的根本信息,并按学号排序.SELECT*FROMsxsORDERB"号五、单项选择题1.MicrosoftSQLServer是().A.基于网状型数据库模型的数据库治理系统B.基于层次型数据库模型的数据库治理系统C.基于关系型数据库模型的数据库治理系统D.以上都不正确C2 .假设要在根本表dep中增加一列CN可用()语句.A. addtabledep(CNchar(8)B. addtabledepalter(CNchar(8)C. altertabledepaddCNchar(8)D. altertablead

30、ddepCNchar(8)C3 .在登记学生成绩时要保证列Score的值在0到120之间,下面()方法最简单.A.编写一个触发器来检查Score的值,如果在0和120之间,那么撤消插入B.生成用户自定义类型type_Score和规那么,将规那么与数据类型type_Score相关联,然后设置列Score的数据类型类型为type_ScoreC.编写一个触发器来检查Score的值,如果不在0和120之间,那么撤消插入D.在Score列增加检查限制D4 .设关系数据库中一个表CJ的结构为CJ(sname,cname,grade),其中sname为学生姓名,cname为课程名,二者均为字符型;grade

31、为成绩,数值型,取值范围0-100.假设要更正张三的化学成绩为85分,那么可用().A. updateCJsetgrade=85wheresname='张三'andcname='化学'B. updatesetgrade='85'wheresname='张三'andcname='化学'C. updategrade=85wheresname='张三'andcname='化学'D. createCJgrade=85wheresname='张三'andcname='化

32、学'A5 .您需要显示年龄从18到25的学生的姓名和年龄.学生表xsxx包含列“姓名和列“年龄,下面()资料整理语句能完成该功能.A. SELECT姓名,年龄FROMxsxxB. SELECT姓名,年龄FROMxsxxWHERE龄=18OR年龄=25C. SELECT姓名,年龄FROMxsxxWHERE年龄BETWEEN18AND25D.SELECT姓名,年龄FROMxsxxWHEREW=18AND年龄!=256.有如下SQ断句:SELECT*FROMstudentwhereDeptIDbetween12and18,与该语句等价的是().A. SELECT*FROMstudentwhe

33、reDeptID<=18andDeptID>=12B. SELECT*FROMstudentwhereDeptID<=18andDeptID>12C. SELECT*FROMstudentwhereDeptID<18andDeptID<=12D. SELECT*FROMstudentwhereDeptID<18andDeptID<12答案.A7.由于业务量很大,订单表存放了大量的数据.你想查询3年以前的购置信息,下面语句能够完成该任务.A.select*FROM订单表WHERE购置日期<DATEADD(YY,-3,GETDATE()B.se

34、lect*FROM订单表WHERE购置日期<DATEADD(YY,3,GETDATE()C.select*FROM订单表WHERE购置日期<GETDATE()-3D.select*FROM订单表WHERE购置日期<GETDATE()+38.设关系数据库中一个表ST的结构为STsname,cname,grade,其中sname为学生姓名,cname为课程名,二者均为字符型,grade为成绩,数值型,取值范围0-100.假设要把张三的化学成绩80分插入到ST中,那么可用.A. addintoSTvalues'张三','化学','80'

35、;B. insertsintoSTvalues'张三','化学','80'C. insertSTvalues'化学',张三','80D. insertintoSTvalues'张三','化学',80D9 .以下关于HAVIN中句描述错误的选项是.A.HAVING句允许与GROUPBY?句同时使用B,使用HAVIN中句的同时不能使用WHERE句C.使用HAVINGF句的同时可以使用WHERE句D.使用HAVINGF句的作用是限定分组的条件答案.B语句.10 .要查询book表中所有书名

36、中以“计算机网络开头的书籍情况,可用A. SELECT*FROMbookWHEREbook_nameLIKE'计算机网络*'B. SELECT*FROMbookWHEREbook_nameLIKE'计算机网络%'C. SELECT*FROMbookWHEREbook_name!='计算机网络*'D. SELECT*FROMbookWHEREbook_name!='计算机网络%'B11 .在SQL的查询语句中如要指定列的别名,以下错误的选项是.A. select原列名列别名from数据源B. select原列名as列别名from数据源C. select原列名列别名from数据源D. select原列名to列别名from数据源12 .在SQLserver2021系统中,如果创立视图的基表被删除,那么视图A.还能使用,但字段数量会增加B.不能被使用C.还能使用,且字段数量没有改变D.还能使用,但字段数量会减少B13 .以下对视图的描述错误的选项是A.是一张虚拟的表B.在存储视图时存储的是视图的定义C.在存储视图时存储的是在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论