大工16春《SQL数据库系统及应用》期末考试复习题.docx
《大工16春《SQL数据库系统及应用》期末考试复习题.docx》由会员分享,可在线阅读,更多相关《大工16春《SQL数据库系统及应用》期末考试复习题.docx(17页珍藏版)》请在冰豆网上搜索。
![大工16春《SQL数据库系统及应用》期末考试复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/4/e1f2b1d6-225a-4d24-a2ca-ad974d6f5e1f/e1f2b1d6-225a-4d24-a2ca-ad974d6f5e1f1.gif)
大工16春《SQL数据库系统及应用》期末考试复习题
机密★启用前
大连理工大学网络教育学院
2016年春《SQL数据库系统及应用》
期末考试复习题
☆注意事项:
本复习题满分共:
400分。
一、名词解释
1.数据:
Data,描述事物的符号记录。
2.数据库:
Database,存放数据的仓库,长期存储在计算机内,有组织的,可共享的大量数据的集合。
3.数据库管理系统:
DBMS,用于科学地组织和存储数据,高效地获取和维护数据的系统软件。
4.数据库系统:
是指在计算机系统中引入数据库后的系统。
5.模型是对客观现实的事物的某些特征与内在联系所作的一种模拟或抽象。
6.数据模型(DataModel)也是一种模型,是数据库系统的基础。
数据库系统的数据库是根据数据模型建立的,数据库管理系统基于数据模型对数据库中的数据进行管理。
7.数据模型中数据结构:
描述数据库的组成对象(类型、内容、性质)以及对象之间的联系,是刻画数据模型性质最重要的方面,是对系统静态特性的表述。
8.数据模型中数据操作:
指该数据结构上的各种实例允许操作的集合,包括相关的操作规则,是对系统动态特性的描述。
9.数据模型中数据的完整性约束:
一组完整性约束的集合,是给定的数据模型中数据及其联系所具有的约束和依存规则,用以限定符合数据模型的数据,保证数据的正确、有效、相容。
10.域:
具有相同数据类型的值的集合。
11.元组:
关系是笛卡尔积的有限子集,所以是一个二维表,表的每行对应一个元组,每列对应一个域。
12.关系表中的属性:
为了区分域,必须对每列起一个名字,称为属性(Attribute)。
13.候选码:
若关系中的某一(最小)属性组的值能唯一地标识一个元组,则该(最小)属性组称为候选码。
14.主属性(Primeattribute):
候选码的诸属性称为主属性。
15.非主属性(Nonprimaryattribute):
不被任何候选码包含的属性。
16.全码(All-key):
关系模式的所有属性都是这个关系模式的候选码。
17.域完整性约束:
是指数据库表中的列必须满足某种特定的数据类型或约束。
其中约束又包括取值范围、精度等规定。
18.外码(ForeignKey):
设F是基本关系R的一个或一组属性,但不是关系的码。
若F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。
19.数据库对象:
数据库中具体存储数据或对数据进行操作的实体都被称为数据库对象。
20.表:
是包含数据库中所有数据的数据库对象,由行和列组成。
21.字段:
表中的列。
字段具有自己的属性,包括字段类型,字段大小等。
22.索引:
单独的、物理的数据库结构,用于快速存取数据表中的数据。
23.视图:
从一个或多个表中导出的表,其结构和数据建立在对表的查询基础上。
24.存储过程:
经编译后存储在数据库中,可通过名称调用完成特定功能的SQL(T-SQL)语句集合。
25.Master数据库:
SQLServer最重要的数据库,记录SQLServer实例的所有系统级别信息,包括所有的登录账号和系统配置等。
26.Tempdb数据库:
临时数据库,保存临时对象或中间结果集。
27.Model数据库:
创建数据库的模版。
28.Msdb数据库:
SQLServer代理程序调度警报和作业以及记录操作。
29.数据定义语言:
即DDL(datadefinition),指创建、修改或删除数据库中各种对象,包括表、视图、索引等。
30.数据操纵语言:
即DML,指对已经存在的数据库进行记录的插入、删除、修改等操作。
31.SUM函数:
计算值的总和并返回总数。
32.COUNT函数:
计算记录数。
33.AVG函数:
返回指定列中的平均值。
34.MIN函数:
返回自变量中指定列的最小值。
35.MAX函数:
返回自变量中指定列的最大值。
36.参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中的每个元组在F上的值必须是:
或者取空值,或者等于S中某个元组的主码值。
37.连接:
“在笛卡尔积的基础上只保留满足一定条件的新生成数据行”这样的操作被称为连接(JOIN)。
38.自身连接:
一个表与其自己进行连接,称为表的自身连接。
39.内连接:
普通连接(内连接)操作只输出满足连接条件的元组。
40.外连接:
外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。
41.查询块:
一个SELECT语句称为一个查询块。
42.子查询:
将一个查询块嵌套在另一个查询块中的查询称为子查询。
43.视图:
是从一个或几个基本表(或视图)导出的“表”。
44.数据库索引:
是对数据表中一个列或多个列的值进行排序的结构,提供了在表中快速查询特定行的能力。
45.查找键:
被用来建立索引的属性也被称为查找键(SearchKey)。
46.查找键值:
查找键对应的属性值被称为查找键值。
47.Transact-SQL:
T-SQL是MSSQLServer对于标准SQL语言的扩展,是在MSSQLServer上运行的数据库编程语言。
48.存储过程:
StoredProcedure,是在数据库服务器端执行的T-SQL语句集合,经编译后存储在数据库服务器中。
49.触发器:
是一种特殊类型的存储过程,在插入、删除或修改特定表中的数据时触发执行。
50.AFTER触发器:
在语句执行之后执行触发器。
51.INSTEADOF触发器:
使用触发器的操作替换导致触发器执行的语句所本应进行的操作。
52.事务(Transaction):
是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
53.事务的原子性(Atomicity):
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
54.事务的一致性(Consistency):
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
55.事务的隔离性(Isolation):
对并发执行而言,一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
56.事务的持续性:
也称永久性(Permanence),一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
接下来的其他操作或故障不应该对其执行结果有任何影响。
57.SQLServer的安全管理:
利用权限管理手段,通过只允许经过授权的操作行为来保证数据库中的数据安全有效的管理机制。
58.操作系统级的安全性:
是指在用户使用客户计算机通过网络实现对SQLServer服务器的访问时,用户首先要获得计算机操作系统的使用权。
59.SQLServer级的安全性:
建立在控制SQLServer服务器登录账号和口令的基础上。
60.数据库级的安全性:
在用户通过SQLServer服务器的安全性检验以后,将直接面对不同的数据库入口。
这是用户将接受的第三次安全性检验。
61.完整恢复模式:
将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。
62.大容量日志恢复模式:
对大容量操作进行最小日志记录,节省日志文件的空间。
63.简单恢复模式:
在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。
64.完整备份:
备份整个数据库的所有内容,包括事务日志。
65.差异备份:
是完整备份的补充,只备份上次完整备份后更改的数据。
66.事务日志备份:
只备份事务日志里的内容。
67.文件和文件组备份:
每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。
68.Windows验证:
使用Windows操作系统的安全机制来验证用户身份。
69.混合验证:
使用Windows及SQLServer验证方式。
70.SQLServer中的权限:
用于控制用户对于数据库及数据库对象的访问,规定了用户可移植性的操作。
71.服务器权限:
又称系统权限,不是控制对指定数据库对象的访问,而是用来许可对各种特性的访问,或许可SQLServer数据库中的特定任务。
72.数据库对象权限:
又称对象权限,控制用户是否能在特定数据库对象(如表、视图或存储过程)上执行特定类型的操作。
73.SQLServer中的角色:
类似于Windows中的用户组,若一个用户被加入到某个角色中,则用户就具有了该角色的权限。
SQLServer提供了预定义的服务器角色和数据库角色。
二、填空题
1.在关系数据库的规范中,在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单元代表第______________范式。
答案:
一参考教材p4
2.在索引命令中使用关键字CLUSTERED和NONCLUSTERED分别表示将建立的是______________和______________。
答案:
聚集索引、非聚集索引参考教材p110
3.常见的关系数据库有ACCESS、______________和______________。
答案:
SQLServer、Oracle参考教材p5
4.从表中删除数据的命令是______________from______________where……。
答案:
Delete、表名
5.向表中______________数据的命令是insertinto表名______________(constant1,constant2,……)。
答案:
插入、values
6.在一个表上,最多可以定义______________个聚集索引,最多可以有______________个非聚集索引。
答案:
1、多参考教材p111
7.ABS函数的功能是返回数值表达式的______________。
答案:
绝对值
8.LIKE查询中______________符号代表由零个或更多字符组成的任意字符串,下划线“_”符号代表______________字符。
答案:
%、任意单个p85
9.创建表的语句是:
______________。
答案:
CREATETABLE表名
10.在MicrosoftSQLServer2008中,主数据文件的后缀是______________。
答案:
.mdf参考教材p32
11.在MicrosoftSQLServer2008中,日志文件的后缀是______________。
答案:
.ldf参考教材p32
12.创建索引的语句是:
______________INDEX……。
答案:
CREATE
三、问答题
1.对SQLServer实例访问,SQLServer2008支持哪几种身份验证模式?
答案:
SQLServer2008支持两种身份验证模式:
Windows身份验证模式(2分)和混合身份验证模式(2分)。
Windows身份验证模式使用Windows操作系统中的信息验证账户名和密码,默认的身份验证模式。
(3分)
混合身份验证模式允许用户使用Windows身份验证或SQLServer身份验证进行连接(3分)。
2.什么是事务?
简述事务ACID原则所包含的内容。
答案:
事务(TRANSACTION)是由对数据库的若干操作组成的一个逻辑工作单元,这些操作要么都执行,要么都不执行,是一个不可分割的整体。
事务用这种方式保证数据满足并发性和完整性的要求。
使用事务可以避免发生有的语句被执行,而另外一些语句没有被执行,从而造成数据不一致的情况。
(5分)
事务的处理必须满足四原则,即原子性(A)、一致性(C)、隔离性(I)和持久性(D),简称ACID原则。
(5分)
3.T-SQL和SQL的关系是什么?
答案:
SQL全称是“结构化查询语言(StructuredQueryLanguage)”。
SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
(5分)T-SQL是标准SQL设计语言的增强版,它是用来让应用程式与SQLServer沟通的主要语言。
T-SQL是在SQL的基础上发展起来的一种结构化查询语言,在使用时,要用到SSMS(SQLServerManagementStudio)中的查询编辑器。
(5分)
4.简述SELECT语句中的FROM、WHERE以及ORDERBY子句的作用。
SQLServer2008系统中主要数据库对象都有哪些?
答案:
在SELECT语句中:
FROM子句:
用来指定数据来源的表;(2分)
WHERE子句:
用来限定返回行的搜索条件;(2分)
ORDERBY子句:
用来指定结果的排序方式。
(2分)
主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。
(酌情给分,共4分)
5.如何使用IF…ELSE流程控制语句?
答案:
一个逻辑表达式的结果要么为真,要么为假。
根据不同的结果,对应于不同的操作。
这时就需要使用IF…ELSE语句在程序中对于给定条件进行判断。
语法格式如下:
IF条件表达式{语句体1}[ELSE{语句体2}](5分)
说明:
●条件表达式的运算结果应该为TRUE(真)或FALSE(假),如果条件表达式中含有SELECT语句,则必须用圆括号将SELECT语句括起来;(2分)
●当条件表达式的值为TRUE时执行语句体1,然后执行IF语句之后的语句;如果条件表达式的值为FALSE,则执行ELSE关键字后面的语句体2,然后执行IF语句之后的语句;(2分)
可以在IF区域或者ELSE区域嵌套另一个IF语句,对于嵌套的层数没有限制。
(1分)
6.如何使用WHILE流程控制语句?
答案:
WHILE语句是一种将同一段代码循环运行多次的方法,它可以根据一个条件表达式的结果,将代码从0次开始运行到指定次数,或者是持续运行直到遇见BREAK关键字退出循环。
(5分)
WHILE语句的语法格式如下:
WHILE条件表达式
Begin循环体end
可以在循环体内设置BREAK和CONTINUE关键字,以便控制循环语句的执行。
(5分)
7.T-SQL的注释符是什么?
参见p67
答案:
注释也称注解,是程序代码中不执行的文本字符串。
注释主要描述程序名称、作者名称、变量说明、代码更改日期、算法描述等。
使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程序的管理与维护。
(5分)
在T-SQL中,可以使用两种类型的注释符:
●注释符“--”用于单行注释(2分)
●注释符“/**/”,用于注释多行文字(3分)
四、程序题
1.有家企业要用表t1来存储客户的信息。
客户的信息包括:
代号(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分)
altertablet1add手机char(11)
2.
(1)在学生管理系统中需要创建学生信息表,学生表的信息包括:
StudID(代表学号char(8),非空主键),Name(学生姓名varchar(20),非空),Birthday(生日,非空),DeptID(院系号char
(2),非空)。
请创建该表。
(2)某公司使用数据库进行内部管理:
表tblEmployees存储雇员的代号(4个字符,唯一)、身份证号码(18个字符)、名字(20个字符)和工资信息。
请写出创建这个表的T-SQL语句,要保证:
工资的值大于0,身份证号码唯一。
答案:
代码酌情给分,每个5分
(1)CREATETABLEstudent
(
StudIDchar(8)notnullPRIMARYKEY,
Namevarchar(20)notnull,
Birthdaydatenotnull,
DeptIDchar
(2)notnull
)
(2)createtabletblEmployees
(IDchar(4)unique,
IDCARDchar(18)unique,
Namechar(20),
Gongziintcheck(Gongzi>0))
3.用SQL语言实现下列功能的sql语句代码:
(1)创建数据表[宿舍表]:
宿舍表(宿舍号char(6),宿舍电话),要求使用:
主键(宿舍号)、宿舍电话:
以847开头的7位电话号码
(2)创建数据表[同学表]:
同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号),要求使用:
主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)
(3)将下列宿舍信息添加到宿舍表:
宿舍号宿舍电话
1018471157
1028471777
答案:
酌情给分,共10分
(1)createtable宿舍表
([宿舍号]char(6)primarykey,
[宿舍电话]char(7)check([宿舍电话]like'847[0-9][0-9][0-9][0-9]'))
(2)createtable同学表
(学号char(6)primarykey,
姓名nchar(4)notnull,
性别nchar
(1)check(性别in('男','女')),
年龄int,
民族nchar(8)default'汉族'notnull,
身份证号char(18)unique,
宿舍号char(6)references宿舍表(宿舍号)
)
(3)insert宿舍表values('101','8471157')
insert宿舍表values('102','8471777')
4.根据以下情况,写出创建course表的语句。
属性列
数据类型
长度
空值
列约束
cs_id
nVarChar
4
NotNull
PK
cs_nm
nVarChar
20
NotNull
cs_tm
int
Null
cs_sc
int
Null
答案:
酌情给分,共10分
CREATETABLEcourse
(
cs_idnVarChar(4)primarykeyNOTNULL,
cs_nmnVarChar(20)NOTNULL,
cs_tmintNULL,
cs_scintNULL
)
5.
(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)
INSERTINTOtable1values('003','徐汇',75)
INSERTINTOtable1values('004','王希',59)
INSERTINTOtable1values('005','刘玉',70)
selectCNO,NAMEfromtable1wheregradebetween60and80orderbygrade
答案:
酌情给分,每个5分
(1)
001
方健
三年二班
002
李勇
三年一班
(2)
005
刘玉
003
徐汇
6.已知有如下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
满族
7.请写出在某数据库中执行以下语句后的输出结果。
CREATETABLEtable8(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint)
INSERTINTOtable8values('001','方明',85)INSERTINTOtable8values('002','李元',90)
INSERTINTOtable8values('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分
最高分
总分
最低分
90
309
59
(2)3分
平均分
77或77.25(任答一个均正确)
(2)4分
CNO
NAME
grade
004
王希
59
003
徐汇
75
8.已知有如下student表:
StudID
Name
DeptID
Minzu
1
张三
12
汉族
2
李赛
12
汉族
3
王明
13
蒙古族
(1)写出查询student表中非12系(DeptID)的学生信息的语句