大工19秋sql数据库系统及应用期末考试复习题.docx
《大工19秋sql数据库系统及应用期末考试复习题.docx》由会员分享,可在线阅读,更多相关《大工19秋sql数据库系统及应用期末考试复习题.docx(17页珍藏版)》请在冰豆网上搜索。
大工19秋sql数据库系统及应用期末考试复习题
机密★启用前
大连理工大学网络教育学院
2019年秋〈〈SQL数据库系统及应用》
期末考试复习题
☆注意事项:
本复习题满分共:
400分。
一、填空题
1.在关系数据库的规范中,在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单元代表第范式。
答案:
一
2.在索引命令中使用关键字CLUSTERED^NONCLUSTERED别表示将建立的是和
。
在一个表上,最多可以定义个聚集索引,最多可以有
个非聚集索引。
答案:
聚集索引、非聚集索引、1、多
3.常见的关系数据库有ACCESS和。
答案:
SQLServer、Oracle
4.从表中删除数据的命令是fromwhere。
答案:
Delete、表名
5.创建表的语句是:
表名……。
向表中插入数据的命令是
insert表名(constant1,constant2,)。
答案:
CREATE、TABLEinto、values
6.关系是笛卡尔积的有限子集,所以是一个维表,表的每行对应一个,每列对应_个。
答案:
二、元组、域
7.ABS函数的功能是返回数值表达式的。
答案:
绝对值
8.LIKE查询中符号代表由零个或更多字符组成的任意字符串,下划线"”符号代表
字符。
答案:
%任意单个
9.语句selectlower('Beautiful')的执行结果是。
答案:
beautiful
10.在MicrosoftSQLServer2008中,主数据文件和日志文件的后缀分别是
答案:
.mdf、.ldf
11.为student表的列创建聚集索引的语句为:
unique
indexIX_stu11onstudent(sno)。
答案:
sno、唯一、create、clustered
12.创建索引的语句是:
INDEX……。
答案:
CREATE
13.语句selectround(12.3421,2),round(23.4567,3)的执行结果是:
和
答案:
12.34,23.457
二、简答题
1.T-SQL和SQL的关系是什么?
对SQLServer实例访问,SQLServer2008支持哪几种身份验证模式?
答案:
SQL全称是"结构化查询语言(StructuredQueryLanguage)"。
SQL是一种数据库查询和程序设计语言,
用于存取数据以及查询、更新和管理关系数据库系统。
T-SQL是标准SQL设计语言的增强版,它是用来让
应用程式与SQLServer沟通的主要语言。
T-SQL是在SQL的基础上发展起来的一种结构化查询语言,在使用时,要用到SSMS(SQLServerManagementStudio)中的查询编辑器。
SQLServer2008支持两种身份验证模式:
Windows身份验证模式和混合身份验证模式。
Windows身份验证模式使用Windows操作系统中的信息验证账户名和密码,默认的身份验证模式。
混合身份验证模式允许用户使用Windows身份验证或SQLServer身份验证进行连接。
2.简述SELECW句中的FROM、WHERE以及ORDERB仔句的作用。
SQLServer2008系统中主要数据库对象都有哪些?
答案:
在SELECTS句中:
FROM子句:
用来指定数据来源的表;
WHERE子句:
用来限定返回行的搜索条件;
ORDERB仔句:
用来指定结果的排序方式。
主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规
则和默认值等。
3.如何使用IF…ELSE流程控制语句?
答案:
一个逻辑表达式的结果要么为真,要么为假。
根据不同的结果,对应于不同的操作。
这时就需要使
用IF…ELSEg句在程序中对于给定条件进行判断。
语法格式如下:
IF条件表达式{语句体1}[ELSE{语句体2}]
说明:
•条件表达式的运算结果应该为TRUE限)或FALSER),如果条件表达式中含有SELECT^句,则必须用
圆括号将SELECTS句括起来;
•当条件表达式的值为TRUE时执行语句体1,然后执行IF语句之后的语句;如果条件表达式的值为
FALSE则执行ELSE^键字后面的语句体2,然后执行IF语句之后的语句;
可以在IF区域或者ELSEM域嵌套另一个IF语句,对于嵌套的层数没有限制。
4.T-SQL的注释符是什么?
答案:
注释也称注解,是程序代码中不执行的文本字符串。
注释主要描述程序名称、作者名称、变量说明、
代码更改日期、算法描述等。
使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程
序的管理与维护。
在T-SQL中,可以使用两种类型的注释符:
注释符“--”用于单行注释
注释符“/**/”,用于注释多行文字
5.SQL语句中SUM函数、COUNT函数、AVG函数的功能是什么?
答案:
SUM函数:
计算值的总和并返回总数。
COUNT函数:
计算记录数。
AVG函数:
返回指定列中的平均值。
6.对表进行数据操作包括哪几种?
答:
包括数据的插入,修改,删除三种操作
7.在关系数据库中是按照“二维表”的形式来组织数据的,每张表由哪两部分组成?
简述Master数据库、
第3页共12页
Tempdb数据库、Model数据库、Msdb数据库的功能。
答:
一部分是关于表的结构定义信息,包括表的名称,列的名称,列的长度和列的数据类型等;另一部分是
存储在表中的用户数据
Master数据库:
SQLServer最重要的数据库,记录SQLServer实例的所有系统级别信息,包括所有
的登录账号和系统配置等。
Tempdb数据库:
临时数据库,保存临时对象或中间结果集。
Model数据库:
创建数据库的模版。
Msdb数据库:
SQLServer代理程序调度警报和作业以及记录操作。
8.SQLServer中,约束条件有哪几种类型,都是什么?
答:
有五种类型:
空值约束,唯一约束,主键约束,外键约束,检查约束.
9.说明HAVING子句与WHERF句之间的区另U,简述WHILE流程控制语句的使用方式。
答:
WHERE子句是用来指定数据库表中数据行应该满足的条件,HAVING子句是在分组(GROUPBYT句)前提
下选择每一个分组应该满足的条件
WHILE语句是一种将同一段代码循环运行多次的方法,它可以根据一个条件表达式的结果,将代码从
0次开始运行到指定次数,或者是持续运行直到遇见BREAK关键字退出循环。
WHILE语句的语法格式如下:
WHILE条件表达式
Begin循环体end
可以在循环体内设置BREAKS日CONTINUE关键字,以便控制循环语句的执行。
10.SQL语言的命令一般分为哪四类语句?
简述修改操作过程中和插入操作过程中的常见异常情况。
答:
SQL语言的命令分为查询,数据操纵,数据定义和数据控制四类语句。
修改过程中异常情况:
1)没有要修改的数据
2)设置新值时,数据类型不兼容
3)修改数据时违背了约束
插入过程中异常情况:
1)插入数据值的个数多于列的个数
2)提供数据的类型与列类型不兼容
3)插入数据时违背了约束
11.
(1)什么是连接?
自身连接、内连接和外连接分别代表什么含义?
(2)什么是触发器?
请说出INSTEADOF触发器和AFTER虫发器的特点。
答案:
(1)
JOIN)。
连接:
“在笛卡尔积的基础上只保留满足一定条件的新生成数据行”这样的操作被称为连接(自身连接:
一个表与其自己进行连接,称为表的自身连接。
内连接:
普通连接(内连接)操作只输出满足连接条件的元组。
外连接:
外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。
(2)触发器:
是一种特殊类型的存储过程,在插入、删除或修改特定表中的数据时触发执行。
INSTEADOF触发器:
使用触发器的操作替换导致触发器执行的语句所本应进行的操作。
AFTER虫发器:
在语句执行之后执行触发器。
12.根据以下情况,写出创建course表的语句。
属性列
数据类型
长度
空值
列约束
cs_id
nVarChar
4
NotNull
PK
cs_nm
nVarChar
20
NotNull
cs_tm
int
Null
cs_sc
int
Null
答案:
酌情给分
CREATETABLEcourse
(
cs_
_id
nVarChar(4)
primarykeyNOTNULL
cs_
nm
nVarChar(20)
NOTNULL,
cs_
_tm
int
NULL,
cs
sc
int
NULL
13.
(1)请写出在某数据库中执行以下语句后的输出结果。
CREATETABLEtabl(CNOCHAR(3),NAMEVARCHAR(20),CLASSVARCHAR(20))
INSERTINTOtablvalues('001',方健','三年二班')
INSERTINTOtablvalues('002',李勇','三年一班')
select*fromtabl
(2)请写出在某数据库中执行以下语句后的输出结果。
CREATETABLEtable1(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint)
INSERTINTOtable1values('001',方明',85)
INSERTINTOtable1values('002',李元',90)
INSERTINTOtablelvalues('003',徐汇',75)
INSERTINTOtablelvalues('004',王希',59)
INSERTINTOtablelvalues('005',刘玉',70)
selectCNO,NAMEfromtablelwheregradebetween60and80orderbygrade
答案:
(1)
001
方健
三年二班
002
李勇
三年一班
(2)
005
刘玉
003
徐汇
14.已知有如下student表:
StudID
Name
DeptID
Minzu
1
张三
12
汉族
2
李赛
12
汉族
3
王明
13
家古族
4
李密
12
汉族
5
刘凤
15
满族
请写出执行以下语句后的输出结果。
(1)SELECTName,MinzuFROMstudentWHEREDeptIDBETWEEN'13'AND'15'
(2)SELECT*FROMstudentWHEREDeptIDIN('12','15')
答案:
(1)5分
王明
家古族
刘凤
满族
(2)5分
1
张三
12
汉族
2
李赛
12
汉族
4
李密
12
汉族
5
刘凤
15
满族
15.已知有如下student表:
StudID
Name
DeptID
Minzu
1
张三
12
汉族
2
李赛
12
汉族
3
王明
13
家古族
4
李密
12
汉族
5
刘凤
15
满族
请写出执行以下语句后的输出结果。
(1)SELECTName,MinzuFROMstudentWHEREDeptIDBETWEEN'13'AND'15'
(2)SELECT*FROMstudentWHEREDeptIDIN('12','15')
答案:
(1)5分
王明
家古族
刘凤
满族
(2)5分
1
张三
12
汉族
2
李赛
12
汉族
4
李密
12
汉族
5
刘凤
15
满族
三、SQL综合编程题
1.有家企业要用表t1来存储客户的信息。
客户的信息包括:
代号(int,主键),名称(char(20)),电话(char(20)),
传真(char(20)),备注(nvarchar(1000))。
(1)请写出创建该表的SQL语句。
(2)后来因手机流行,需要在表t1中再添加列“手机”,该列的类型是char(11)。
请写出添加该列的SQL
语句。
答案:
(1)
Createtablet1
(代号intprimarykey,名称
备注nvarchar(1000))
char(20),电话char(20),传真char(20),
(2)altertablet1add手机char(11)
2.
(1)创建学生信息表student:
StudID(代表学号char(8),非空主键),Name(学生姓名varchar(20),非
空),Birthday(生日,非空),DeptID(院系号char
(2),非空)。
请写出创建这个表的T-SQL语句。
(2)查询所有在12院系下的学生的学号以及姓名。
答案:
代码酌情给分
(1)CREATETABLEstudent
(
StudIDchar(8)notnullPRIMARYKE,Y
Namevarchar(20)notnull,
Birthdaydatenotnull,
DeptIDchar
(2)notnull
)
(2)selectStudID,NamefromstudentwhereDeptID='12'
3.
(1)给某公司创建表tblEmployees:
ID(代表雇员的代号,4个字符,唯一)、IDCARD(代表身份证,18个字符)、Name(代表雇员姓名,20个字符)和Gongzi(代表工资信息)。
请写出创建这个表的T-SQL语句,要保证:
工资的值大于0,身份证号码唯一。
(2)查询雇员为“张三”的工资信息。
(3)查询工资大于5000的所有信息。
答案:
代码酌情给分
(2)createtabletblEmployees
(IDchar(4)unique,
IDCARDchar(18)unique,
Namechar(20),
Gongziintcheck(Gongzi>0))
(2)selectGongzifromtblEmployeeswhereName=张三'
(3)select*fromtblEmployeeswhereGongzi>5000
4.用SQL语言实现下列功能的sql语句代码:
(1)创建数据表[宿舍表]:
宿舍表(宿舍号char(6),宿舍电话),要求使用:
主键(宿舍号)、宿舍电话:
以
第8页共12页
847开头的7位电话号码
(2)将下列两条宿舍信息[宿舍号,宿舍电话]添加到宿舍表:
[101,8471157][102,8471777]。
答案:
酌情给分
(1)createtable宿舍表
([宿舍号]char(6)primarykey,
[宿舍电话]char(7)check([宿舍电话]like'847[0-9][0-9][0-9][0-9]'))
(2)insert宿舍表values('101','8471157')
insert宿舍表values('102','8471777')
5.创建数据表[同学表]:
同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号),要求使用:
主键(学号)、默认(民族为汉族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别为男或女)。
创建该表后,完成下列操作:
(1)写出表中不是202宿舍的学生信息的语句。
(2)写出查询表中姓名包含“徐”的所有信息的语句。
答案:
酌情给分
(1)createtable同学表
(学号char(6)primarykey,
姓名nchar(4)notnull,
性别nchar
(1)check(性别in('男','女')),
年龄int,
民族nchar(8)default'汉族'notnull,
身份证号char(18)unique,
宿舍号char(6)
)
(1)SELECT*FRO皿学表WHERENOT宿舍号='202')
(2)SELECT*FRO皿学表WHERE姓名LIKE响%'
6.已知数据库中存在:
同学表(学号,姓名,性别,身份证号,宿舍号)和宿舍表(宿舍号,宿舍电话)。
(1)从同学表中查询男同学的姓名、身份证号、宿舍号。
(2)将下列宿舍信息添加到宿舍表:
佰舍号
宿舍电话
104
8471057
109
8470333
答案:
酌情给分
(1)select姓名,身份证号,宿舍号from同学表where性别='男'
(2)insert宿舍表values('104','8471057')
insert宿舍表values('109','8470333')
7.现有数据表如下:
学生信息表(学号char(6),姓名,性别,民族,身份证号),课程信息表(课号char(6),名称),成绩信息表(ID,学号,课号,分数)
(1)从学生信息表中查询姓刘的女同学的情况:
姓名、性别、民族。
(2)查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。
(3)使用SQL语句把学生信息表中“姓名”由8个字符改为20个字符。
(4)把课程信息表中“课程号”为C001的“名称”由大学英语1改为大学英语2。
答案:
(1)select姓名,性别,民族from学生信息表where姓名like'刘%'and性别='女'
(2)select学号,姓名from学生信息表where学号in(selectdistinct学号from成绩信息
表where分数<60)
(3)altertable学生信息表
altercolumn姓名char(20)notnull
(4)update课程信息表
set名称='大学英语2'
where课号='C001'
四、单选题
1.D2.D3.C4.C5.A
6.D7.D8.C9.C10.A
1..以下聚合函数中用于返回最小值的是()。
A.VARP
B.COUNT
C.MAX
D.MIN
2、下面SQ帝句中,求每个交易所的平均单价的语句是SELECT交易所,avg(单价)FROMstock()。
A.GROUPSBW<
B.ORDERSBW■价
C.ORDERBY^易所
D.GROUPBY^易所
3、当指定筛选条件时,SELEC寤句中与HAVING子句通常同时使用的是()语句。
A.ORDERSBY
B.HEREBY
C.GROUPBY
D.THEREBY
4、使用selecttop5*fromemployee语句得到的结果集中有()条记录。
A.8
B.2
C.5
D.6
5、每个数据库有且只有一个()。
A.主要数据文件
B.次要数据文件
C.日志文件
D.数据表
6、要删除视图myviewview,可以使用()语句。
A.DROPdatabasemyviewview
B.DROPTABLEmyviewview
C.DROPINDEXmyviewview
D.DROPVIEWmyviewview
7、下面符号中,SQ冲可使用的符号是()。
A.*
B.%
C.=
D.以上都可以
8、当SQLServer创建一个新的数据库时,可用于作为模板的系统数据库是()。
A.Msdb数据库
B.Master数据库
C.Model数据库
D.Tempdb数据库
9、在SQL查询语句中,HAVING子句的作用是指出()。
A.排序的范围
B.查询结果的最大值
C.分组查询的条件
D.创建数据表的字段
10、使用语句CREATEDATABASESHUJUKM的数据文件放在()。
A.SQLServer的默认路径下
B.D盘
C.E盘
D.F盘
五、判断题
1.X2、3、4.X5.X
6.x7、8、9.x10.x
1、SQL语句中,DROPDATABASE句用于修改数据表中数据。
2、SSMS弋表SQLServerManagementStudio,提供了用于数据库管理的图形工具和功能丰富的开发环境。
3、createdatabase语句可以在创建数据库时指定数据库名称等。
4、SQL中,FROhM句用于向已经存在的表中插入新的数据。
5、表创建之后,只能包含一组数据。
6、SQLServer中常用的数据类型中datetime和char是数字数据类型,非日期信息。
7、变量为int型,语句beginset@t=@xset@x=@yset@y=@tend完成两个变量的数值交换。
8、语句SELECT*FROMstudent,departWHEREstudent.dNo=depart.dNo与SELECT*FROMstudentJOINdepartONstudent.dNo=depart.dNo查询结果一致。
9、Select姓名,性别fromstudentgroupby性别,这个语句是正确的。
10、SQLServer提供了多个固定数据库角色,其中db_securityadmin是可以设置访问权限,不能修改角色管理权限。