SQL数据库系统及应用.docx
- 文档编号:30489020
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:24
- 大小:40.07KB
SQL数据库系统及应用.docx
《SQL数据库系统及应用.docx》由会员分享,可在线阅读,更多相关《SQL数据库系统及应用.docx(24页珍藏版)》请在冰豆网上搜索。
SQL数据库系统及应用
机密★启用前
大连理工大学网络教育学院
2017年秋《SQL数据库系统及应用》
期末考试复习题
☆注意事项:
本复习题满分共:
400分。
一、填空题
1.在关系数据库的规范中,在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单元代表第
范式。
答案:
一
2.在索引命令中使用关键字CLUSTERED和NONCLUSTER%别表示将建立的是和
答案:
聚集索引、非聚集索引
3.常见的关系数据库有ACCESS和。
答案:
SQLServer、Oracle
4.从表中删除数据的命令是fromwhere。
答案:
Delete、表名
5.向表中数据的命令是insertinto表名(constant1,constant2,)。
答案:
插入、values
6.在一个表上,最多可以定义个聚集索引,最多可以有个非聚集索引。
答案:
1、多
7.ABS函数的功能是返回数值表达式的。
答案:
绝对值
8.LIKE查询中符号代表由零个或更多字符组成的任意字符串,下划线“符号代表
字符。
答案:
%任意单个
9.创建表的语句是:
中,主数据文件的后缀是
中,日志文件的后缀是。
INDEX……。
答案:
CREATE
13.语句selectround(12.3421,2),round(23.4567,3)的执行结果是:
和
答案:
12.34,23.457
14.关系是笛卡尔积的有限子集,所以是一个维表,表的每行对应一个,
每列对应一个。
答案:
二、元组、域
、问答题
1.对SQLServer实例访问,SQLServer2008支持哪几种身份验证模式?
答案:
SQLServer2008支持两种身份验证模式:
Windows身份验证模式(2分)和混合身份验证模式(2分)。
Windows身份验证模式使用Windows操作系统中的信息验证账户名和密码,默认的身份验证模式。
(3分)
混合身份验证模式允许用户使用Windows身份验证或SQLServer身份验证进行连接(3分)。
2.简述SELECT语句中的FROM、WHERE以及ORDERBY子句的作用。
SQLServer2008系统中主要数据库对
象都有哪些?
答案:
在SELECT语句中:
FROM子句:
用来指定数据来源的表;(2分)
WHERE子句:
用来限定返回行的搜索条件;(2分)
ORDERBY子句:
用来指定结果的排序方式。
(2分)
主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规
则和默认值等。
(酌情给分,共4分)
3.如何使用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分)
4.如何使用WHILE流程控制语句?
答案:
WHILE语句是一种将同一段代码循环运行多次的方法,它可以根据一个条件表达式的结果,将代码
从0次开始运行到指定次数,或者是持续运行直到遇见BREAK关键字退出循环。
(5分)
WHILE语句的语法格式如下:
WHILE条件表达式
Begin循环体end
可以在循环体内设置BREAK和CONTINUE关键字,以便控制循环语句的执行。
(5分)
5.T-SQL的注释符是什么?
参见p67
答案:
注释也称注解,是程序代码中不执行的文本字符串。
注释主要描述程序名称、作者名称、变量说明、
代码更改日期、算法描述等。
使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程
序的管理与维护。
(5分)
在T-SQL中,可以使用两种类型的注释符:
•注释符“--”用于单行注释(2分)
•注释符“/**/”,用于注释多行文字(3分)
6.SQL语句中SUM函数、COUNT函数、AVG函数的功能是什么?
答案:
SUM函数:
计算值的总和并返回总数。
COUNT函数:
计算记录数。
AVG函数:
返回指定列中的平均值。
7.简述插入操作过程中的常见异常情况。
答:
1)插入数据值的个数多于列的个数
2)提供数据的类型与列类型不兼容
3)插入数据时违背了约束
8•对表进行数据操作包括哪几种?
答:
包括数据的插入,修改,删除三种操作
9.在关系数据库中是按照“二维表”的形式来组织数据的,,每张表由哪两部分组成?
答:
一部分是关于表的结构定义信息,包括表的名称,列的名称,列的长度和列的数据类型等;另一部分是
存储在表中的用户数据。
10.SQLServer中,约束条件有哪几种类型,都是什么?
答:
有五种类型:
空值约束,唯一约束,主键约束,外键约束,检查约束•
11.说明HAVING子句与WHER子句之间的区别。
答:
WHERE子句是用来指定数据库表中数据行应该满足的条件,HAVING子句是在分组(GROUPBY子句)前提
下选择每一个分组应该满足的条件
12.简述修改操作过程中的常见异常情况。
答:
1)没有要修改的数据
2)设置新值时,数据类型不兼容.3)修改数据时违背了约束
13.SQL语言的命令一般分为哪四类语句?
答:
分为查询,数据操纵,数据定义和数据控制四类语句。
四、程序题
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)给某公司创建表tbIEmployees:
存储雇员的代号(4个字符,唯一)、身份证号码(18个字符)、名字
(20个字符)和工资信息。
请写出创建这个表的T-SQL语句,要保证:
工资的值大于0,身份证号码唯一。
答案:
代码酌情给分,每个5分
(1)CREATETABLEstudent
(
StudID
char(8)
notnullPRIMARYKEY
Name
varchar(20)
notnull,
Birthday
datenotnull,
DeptID
char
(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)将下列宿舍信息添加到宿舍表:
佰舍号
宿舍电话
101
8471157
102
8471777
答案:
酌情给分,
共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('1O1','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_
_id
nVarChar(4)
primarykeyNOTNULL
cs_
nm
nVarChar(20)
NOTNULL,
cs_
_tm
int
NULL,
cs
sc
int
NULL
)
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
李勇
三年一班
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<80orderbyenodesc
答案:
(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)的学生信息的语句。
(2)写出查询表中Name包含“李”的所有信息的语句。
答案:
(1)SELECT*FROMstudentWHERENOT(DeptID='12')(5分)
(2)SELECT*FROMstudentWHERENameLIKE%%'(5分)
9.已知数据库中存在以下两个表,同学表(学号char(6),姓名,性别,年龄,民族,身份证号,宿舍号),
宿舍表(宿舍号char(6),宿舍电话)。
(1)从同学表中查询女同学的最大年龄、最小年龄、平均年龄。
(2)创建带参数的存储过程[某宿舍同学]:
姓名,性别,宿舍电话,执行此过程,查询'101'宿舍情况
(3)将下列宿舍信息添加到宿舍表:
佰舍号
宿舍电话
104
8471057
109
8470333
答案:
酌情给分,共10分
(1)select最大年龄=max(年龄),最小年龄=min(年龄),平均年龄=avg(年龄)from同学表where性别='女'
(2)createprocedure[某宿舍同学]@宿舍号varchar(6)as
select姓名,性别,宿舍电话from同学表视图where宿舍号=@宿舍号
goexecute[某宿舍同学]'101'
(3)insert宿舍表values('1O4','8471057')
insert宿舍表values('1O9','8470333')
10.请写出在某数据库中执行以下语句后的输出结果。
I
:
CREATETABLEtable2(CNOCHAR(3)primarykey,NAMEVARCHAR(20),gradeint)
I
:
INSERTINTOtable2values('001',方明',89)INSERTINTOtable2values('002',李元',90)
I
[INSERTINTOtable2values('003',徐汇',60)INSERTINTOtable2values('004',王希',75)
I
:
CREATETABLEtable3(CNOCHAR(3)primarykey,sdeptchar(20))
i
INSERTINTOtable3values('001',计算机系')INSERTINTOtable3values('002',电子系')
INSERTINTOtable3values('003',电子系')INSERTINTOtable3values('004',计算机系')
(1)selectsdept,SUM(grade)fromtable3jointable2ono=ogroupbysdept
(2)selectmax(grade)as最高分,min(grade)最低分fromtable2
(3)selectnamefromtable3jointable2ono=owheretable3.sdept='计算机系
答案:
(1)
电子系
150
计算机系
164
最高分
最低分
90
60
(3)
方明
王希
11.现有数据表如下:
学生信息表(学号char(6),姓名,性别,民族,身份证号),课程信息表(课号
char(6),名称),成绩信息表(ID,学号,课号,分数)
(1)从学生信息表中查询姓刘的女同学的情况:
姓名、性别、民族。
(2)查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。
答案:
(1)select姓名,性别,民族from学生信息表where姓名like'刘%'and性别='女'(5
分)
(2)select学号,姓名from学生信息表where学号in(selectdistinct学号from成绩信息
表where分数<60)(5分)
12.
(1)使用SQL语句把学生基本信息表中姓名由8个字符改为20个字符。
(2)把课程表中课程号为C001的上课教师由胡小雨改为胡大雨。
答:
(1)altertable学生基本信息表
altercolumn姓名char(20)notnull
(2)update课程表
set上课教师='胡大雨’
where课程号='C001'
13.
(1)在学生信息表(学号,姓名,性别)中查询所有学生的姓名,学号和性别信息。
(2)按照性别降序,显示学号、姓名和性别。
答:
(1)select姓名,学号,性别from学生信息表
(2)select学号,姓名,性别from学生信息表orderby性别desc
14.
(1)在学生信息表中(学号,姓名,奖学金,出生日期)查询学生中年龄最大的前三名的学号和姓名。
(2)查询奖学金在300元(包括300元)与1500元(包括1500元)之间的学号、姓名和奖学金值。
答.
(1)selecttop3学号姓名
from学生信息表
orderby出生日期
(2)select学号,姓名,奖学金from学生信息表where奖学金between300and1500
15.在学生基本信息表(字段为学号、姓名、性别)中建立一个DELETE类型的触发器“学生信息删除触
发器”,触发动作是显示删除数据的提示信息。
答:
createtrigger学生信息删除触发器on学生基本信息表
fordelete
as
print学生基本信息表删除了下列数据行’
select学号,姓名,性别fromdeleted
16.在学生基本信息表中(字段为学号、姓名、性别、出生年月日)查询年龄最小的学生的出生年月日。
答:
selectmax(出生日期)as'出生年月日’from学生基本信息表
17.现有视图如下:
成绩表视图(学号,姓名,课号,课程名称,分数)。
要求创建查询某门课程的最高分、
最低分、平均分的存储过程[某门课程高低均分],同时执行该过程,查询所有修“专业英语”这门课程的学生的最高分、最低分、平均分。
createprocedure[某门课程高低均分]@课程名nchar(16)as
select课程名称,最高分=max(分数),最低分=min(分数),平均分=avg(分数)
from成绩表视图
where课程名称=@课程名
groupby课程名称
go
18.已知student数据库中学生信息表内容如下:
学生信息表(SXS)
学号
姓名
性别
出生日期
政治面貌
(char,7)
(char,8)
(char,2)
datetime
(char,10)
2041031
林一帆
男
1982-4-5
团员
2041012
李华
女
1984-11-6
群众
(1)修改李华的政治面貌改为“党员”
UPDATEsxs
SET政治面貌='党员’
WHERE姓名='李华'
(2)删除李华的这条记录。
DELETEFROMsxs
WHERE姓名='李华'
(3)查询所有学生的基本信息,并按学号排序。
SELECT*FROMsxs
ORDERBY学号
五、单选题
1.MicrosoftSQLServer是()。
A.基于网状型数据库模型的数据库管理系统
B.基于层次型数据库模型的数据库管理系统
C.基于关系型数据库模型的数据库管理系统
D.以上都不正确
2.若要在基本表dep中增加一列CN可用()语句。
A.addtabledep(CNchar(8))
B.addtabledepalter(CNchar(8))
C.altertabledepaddCNchar(8)
D.altertableadddepCNchar(8)
C
3.在登记学生成绩时要保证列Score的值在0到120之间,下面()方法最简单。
A.编写一个触发器来检查Score的值,如果在0和120之间,则撤消插入
B.生成用户自定义类型type_Score和规则,将规则与数据类型type_Score相关联,然后设置列Score的数据类型类型为type_Score
C.编写一个触发器来检查Score的值,如果不在0和120之间,则撤消插入
D.在Score列增加检查限制
D
4.设关系数据库中一个表CJ的结构为CJ(sname,cname,grade)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 系统 应用
![提示](https://static.bdocx.com/images/bang_tan.gif)