文档库 最新最全的文档下载
当前位置:文档库 › (大连理工大学)SQL数据库系统及应用

(大连理工大学)SQL数据库系统及应用

(大连理工大学)SQL数据库系统及应用
(大连理工大学)SQL数据库系统及应用

机密★启用前

大连理工大学网络教育学院

2020春《SQL数据库系统及应用》

期末考试复习题

☆注意事项:本复习题满分共:400分。

一、填空题

1.在关系数据库的规范中,在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单元代表第______________范式。

答案:一

2.在索引命令中使用关键字CLUSTERED和NONCLUSTERED分别表示将建立的是______________和______________。在一个表上,最多可以定义______________个聚集索引,最多可以有______________个非聚集索引。

答案:聚集索引、非聚集索引、1、多

3.常见的关系数据库有ACCESS、______________和______________。

答案:SQL Server、Oracle

4.从表中删除数据的命令是______________from______________where……。

答案:Delete、表名

5.创建表的语句是:______________ ______________表名……。向表中插入数据的命令是insert______________表名______________(constant1,constant2,……)。

答案:CREATE 、TABLE、into、values

6.关系是笛卡尔积的有限子集,所以是一个______________维表,表的每行对应一个______________,每列对应一个______________。

答案:二、元组、域

7.ABS函数的功能是返回数值表达式的______________。

答案:绝对值

8.LIKE查询中______________符号代表由零个或更多字符组成的任意字符串,下划线“_”符号代表

______________字符。

答案:%、任意单个

9.语句 select lower('Beautiful')的执行结果是______________。

答案:beautiful

10.在Microsoft SQL Server 2008中,主数据文件和日志文件的后缀分别是______________、______________。

答案:.mdf 、.ldf

11.为student表的______________列创建______________聚集索引的语句为:______________unique ______________index IX_stu11 on student(sno)。

答案: sno、唯一、create、clustered

12.创建索引的语句是:______________ INDEX……。

答案:CREATE

13.语句 select round(12.3421,2),round(23.4567,3)的执行结果是:______________和______________。答案:12.34,23.457

二、简答题

1.T-SQL和SQL的关系是什么?对SQL Server实例访问,SQL Server 2008支持哪几种身份验证模式?

答案:SQL全称是“结构化查询语言(Structured Query Language)”。SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。T-SQL是标准SQL设计语言的增强版,它是用来让应用程式与SQL Server沟通的主要语言。T-SQL是在SQL的基础上发展起来的一种结构化查询语言,在使用时,要用到SSMS(SQL Server Management Studio)中的查询编辑器。

SQL Server 2008支持两种身份验证模式:Windows身份验证模式和混合身份验证模式。

Windows身份验证模式使用Windows操作系统中的信息验证账户名和密码,默认的身份验证模式。

混合身份验证模式允许用户使用Windows身份验证或SQL Server身份验证进行连接。

2.简述SELECT语句中的FROM、WHERE以及ORDER BY子句的作用。SQL Server 2008系统中主要数据库对象都有哪些?

答案:在SELECT语句中:

FROM子句:用来指定数据来源的表;

WHERE子句:用来限定返回行的搜索条件;

ORDER BY子句:用来指定结果的排序方式。

主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规

则和默认值等。

3.如何使用IF…ELSE流程控制语句?

答案:一个逻辑表达式的结果要么为真,要么为假。根据不同的结果,对应于不同的操作。这时就需要使用IF…ELSE语句在程序中对于给定条件进行判断。

语法格式如下:

IF 条件表达式{语句体1} [ELSE {语句体2}]

说明:

●条件表达式的运算结果应该为TRUE(真)或FALSE(假),如果条件表达式中含有SELECT语句,则必须用圆括号将SELECT语句括起来;

●当条件表达式的值为TRUE时执行语句体1,然后执行IF语句之后的语句;如果条件表达式的值为FALSE,则执行ELSE关键字后面的语句体2,然后执行IF语句之后的语句;

可以在IF区域或者ELSE区域嵌套另一个IF语句,对于嵌套的层数没有限制。

4. T-SQL的注释符是什么?

答案:注释也称注解,是程序代码中不执行的文本字符串。注释主要描述程序名称、作者名称、变量说明、代码更改日期、算法描述等。使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程序的管理与维护。

在T-SQL中,可以使用两种类型的注释符:

注释符“--”用于单行注释

注释符“/* */”,用于注释多行文字

5. SQL语句中SUM函数、COUNT函数、A VG函数的功能是什么?

答案:SUM函数:计算值的总和并返回总数。

COUNT函数:计算记录数。

A VG函数:返回指定列中的平均值。

6.对表进行数据操作包括哪几种?

答: 包括数据的插入,修改,删除三种操作

7. 在关系数据库中是按照“二维表”的形式来组织数据的,每张表由哪两部分组成? 简述Master数据库、

Tempdb数据库、Model数据库、Msdb数据库的功能。

答: 一部分是关于表的结构定义信息,包括表的名称,列的名称,列的长度和列的数据类型等;另一部分是存储在表中的用户数据

Master数据库:SQL Server最重要的数据库,记录SQL Server实例的所有系统级别信息,包括所有的登录账号和系统配置等。

Tempdb数据库:临时数据库,保存临时对象或中间结果集。

Model数据库:创建数据库的模版。

Msdb数据库:SQL Server代理程序调度警报和作业以及记录操作。

8. SQL Server 中,约束条件有哪几种类型,都是什么?

答: 有五种类型:空值约束,唯一约束,主键约束,外键约束,检查约束.

9. 说明HAVING 子句与WHERE子句之间的区别,简述WHILE流程控制语句的使用方式。

答: WHERE子句是用来指定数据库表中数据行应该满足的条件,HAVING子句是在分组(GROUP BY子句)前提下选择每一个分组应该满足的条件

WHILE语句是一种将同一段代码循环运行多次的方法,它可以根据一个条件表达式的结果,将代码从0次开始运行到指定次数,或者是持续运行直到遇见BREAK关键字退出循环。

WHILE语句的语法格式如下:

WHILE 条件表达式

Begin 循环体end

可以在循环体内设置BREAK和CONTINUE关键字,以便控制循环语句的执行。

10. SQL语言的命令一般分为哪四类语句?简述修改操作过程中和插入操作过程中的常见异常情况。

答:SQL语言的命令分为查询,数据操纵,数据定义和数据控制四类语句。

修改过程中异常情况:

1)没有要修改的数据

2)设置新值时,数据类型不兼容

3)修改数据时违背了约束

插入过程中异常情况:

1)插入数据值的个数多于列的个数

2)提供数据的类型与列类型不兼容

3)插入数据时违背了约束

11.(1)什么是连接?自身连接、内连接和外连接分别代表什么含义?

(2)什么是触发器?请说出INSTEAD OF触发器和AFTER触发器的特点。

答案:

(1)连接:“在笛卡尔积的基础上只保留满足一定条件的新生成数据行”这样的操作被称为连接(JOIN)。自身连接:一个表与其自己进行连接,称为表的自身连接。

内连接:普通连接(内连接)操作只输出满足连接条件的元组。

外连接:外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。

(2)触发器:是一种特殊类型的存储过程,在插入、删除或修改特定表中的数据时触发执行。INSTEAD OF触发器:使用触发器的操作替换导致触发器执行的语句所本应进行的操作。

AFTER触发器:在语句执行之后执行触发器。

12. 根据以下情况,写出创建course表的语句。

答案:酌情给分

CREATE TABLE course

(

cs_id nVarChar(4) primary key NOT NULL ,

cs_nm nVarChar(20) N OT NULL ,

cs_tm int NULL ,

cs_sc int NULL

)

13.(1)请写出在某数据库中执行以下语句后的输出结果。

CREATE TABLE tabl(CNO CHAR(3),NAME VARCHAR(20),CLASS VARCHAR(20))

INSERT INTO tabl values('001','方健','三年二班')

INSERT INTO tabl values ('002','李勇','三年一班')

select * from tabl

(2)请写出在某数据库中执行以下语句后的输出结果。

CREATE TABLE table1(CNO CHAR(3) primary key,NAME VARCHAR(20),grade int)

INSERT INTO table1 values('001','方明',85)

INSERT INTO table1 values('002','李元',90)

INSERT INTO table1 values('003','徐汇',75)

INSERT INTO table1 values('004','王希',59)

INSERT INTO table1 values('005','刘玉',70)

select CNO,NAME from table1 where grade between 60 and 80 order by grade

答案:

(1)

(2)

14.已知有如下student表:

请写出执行以下语句后的输出结果。

(1)SELECT Name, Minzu FROM student WHERE DeptID BETWEEN '13' AND '15' (2)SELECT * FROM student WHERE DeptID IN ('12','15')

答案:(1)5分

(2)5分

15.已知有如下student表:

请写出执行以下语句后的输出结果。

(1)SELECT Name, Minzu FROM student WHERE DeptID BETWEEN '13' AND '15'

(2)SELECT * FROM student WHERE DeptID IN ('12','15')

答案:(1)5分

(2)5分

16.什么是事务?简述事务ACID原则所包含的内容。

答案:事务(TRANSACTION)是由对数据库的若干操作组成的一个逻辑工作单元,这些操作要么都执行,要么都不执行,是一个不可分割的整体。事务用这种方式保证数据满足并发性和完整性的要求。使用事务可以避免发生有的语句被执行,而另外一些语句没有被执行,从而造成数据不一致的情况。

事务的处理必须满足四原则,即原子性(A)、一致性(C)、隔离性(I)和持久性(D),简称ACID原则。

17.已知有如下学生信息表student表和院系表dept表,其中student表包含字段:StudID(学生编号)、Name(姓名)、DeptID(院系编号)、Minzu(民族)。dept表包含字段:dp_id(院系编号)、dp_nm(院系名称)、dp_drt(系主任)、dp_tel(系主任电话)。请查询系主任为“徐鸣”的系的所有学生信息。

(1)请在子查询中使用in运算符实现查询。

(2)请在子查询中使用=运算符实现查询。

答案:(1)酌情给分

SELECT * FROM student

WHERE DeptID in

( SELECT dp_id FROM dept

WHERE dp_drt='徐鸣')

(2)酌情给分

SELECT * FROM student

WHERE DeptID =

( SELECT dp_id FROM dept WHERE dp_drt='徐鸣' )

三、SQL综合编程题

1.有家企业要用表t1来存储客户的信息。客户的信息包括:代号(int,主键),名称(char(20)),电话(char(20)),传真(char(20)),备注(nvarchar(1000))。

(1)请写出创建该表的SQL语句。

(2)后来因手机流行,需要在表t1中再添加列“手机”,该列的类型是char(11)。请写出添加该列的SQL 语句。

答案:

(1)

Create table t1

(代号int primary key ,名称char(20),电话char(20),传真char(20),

备注nvarchar(1000))

(2)

alter table t1 add 手机char(11)

2.(1)创建学生信息表student:StudID(代表学号char(8),非空主键),Name(学生姓名varchar(20),非空),Birthday(生日,非空),DeptID(院系号char(2),非空)。请写出创建这个表的T-SQL语句。

(2)查询所有在12院系下的学生的学号以及姓名。

答案:代码酌情给分

(1)CREATE TABLE student

(

StudID char(8) not null PRIMARY KEY,

Name varchar(20) not null,

Birthday date not null,

DeptID char(2) not null

)

(2)select StudID, Name from student where DeptID=’12’

3.用SQL语言实现下列功能的sql语句代码:

(1)创建数据表[宿舍表]:宿舍表(宿舍号char(6),宿舍电话),要求使用:主键(宿舍号)、宿舍电话:以847开头的7位电话号码

(2)将下列两条宿舍信息[宿舍号,宿舍电话]添加到宿舍表:[101, 8471157][102,8471777]。

答案:酌情给分

(1)create table 宿舍表

([宿舍号] char(6) primary key,

[宿舍电话] char(7) check([宿舍电话] like '847[0-9][0-9][0-9][0-9]'))

(2)insert 宿舍表values('101', '8471157')

insert 宿舍表values('102', '8471777')

4. 已知数据库中存在:同学表(学号,姓名,性别,身份证号,宿舍号)和宿舍表(宿舍号,宿舍电话)。(1)从同学表中查询男同学的姓名、身份证号、宿舍号。

(2)将下列宿舍信息添加到宿舍表:

答案:酌情给分

(1)select 姓名,身份证号,宿舍号from 同学表where 性别='男'

(2)insert 宿舍表values('104', '8471057')

insert 宿舍表values('109', '8470333')

四、单选题

1.数据操纵语言的英文缩写是()。

B DBMS

C DCL

D T-SQ A

2.在SQL语言中PRIMARY KEY 的作用是()。

A 定义主键

B 定义外键

C 定义视图

D 定义索引 A

3.如果在修改数据库语句alter database中包括filegrowth=20%,则表示()。

A 初始值为20M

B 最小值为20M

C 增长方式为20%

D 最大值为20% C

4.以下()不是SQL常用数据库文件的后缀。

A .mdf

B .ldf

C .gif

D .ndf C

5.如果想查询订单表中订购金额大于等于800的所有信息,下面()语句能够完成此任务。

A.select * FROM 订单表 WHERE 订购金额<800

B.select * FROM 订单表 WHERE 订购金额>800

C.select * FROM 订单表 WHERE 订购金额<=800

D.select * FROM 订单表 WHERE 订购金额>=800 D

6.如果想查询订单表中前5条信息,下面()语句能够完成此任务。

A.select top 5 * FROM 订单表

B.select up 5 * FROM 订单表

C.select up_down 5 * FROM 订单表

D.select top_down 5 * FROM 订单表 A

7.Select emp_id,emp_name,sex,title,wage from Yuangong order by emp_name句子得到的结果集是按()排序。

B.emp_name

C.sex

D.wage B

8.如果要查询学校员工的总收入,可以使用以下()聚合函数。

A.sum()

B.ABS()

C.count()

D.MAX() A

9.下列用于定义字段的T-SQL语句中,错误的是()。

A.备注 varchar(10)

B.成绩 intf 4

C.产量 float

D.价格 decimal(8,4) B

10.“Create Unique Index ABC On student(sno)”将在student表上创建名为ABC的()。

A.唯一索引

B.聚集索引

C.复合聚集索引

D.非聚集索引 A

11.假设数据库中存放两个关系:教师(教师编号,姓名)和课程(课程号,课程名,教师编号),已知某教师的编号,为快速查出该教师所讲授的课程,应该()。

A.在教师表上按教师编号建索引

B.在课程表上按课程号建索引

C.在课程表上按教师编号建索引

D.在教师表上按姓名建索引 C

12.以下触发器是当对表11进行()操作时触发。Create Trigger abc on 表11 For insert As ……。

A.只是创建表

B.只是插入

C.只是删除

D.修改、插入、删除 B

13.假设表xsx的列x的类型是char,根据业务的发展需要改为整型(integer),应该使用下面的()语

A.ALTER COLUMN x integer FROM xsx

B.ALTER TABLE xsx( x integer )

C.ALTER TABLE xsx ALTER COLUMN x integer

D.ALTER COLUMN xsx.x integer

" C

14.在登记学生成绩时要保证列Score的值在0到120之间,下面()方法最简单。

A.编写一个触发器来检查Score的值,如果在0和120之间,则撤消插入

B.生成用户自定义类型type_Score和规则,将规则与数据类型type_Score相关联,然后设置列Score的数据类型类型为type_Score

C.编写一个触发器来检查Score的值,如果不在0和120之间,则撤消插入

D.在Score列增加检查限制 D

15.设关系数据库中一个表CJ的结构为CJ(sname,cname,grade),其中sname为学生姓名,cname为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正张三的化学成绩为85分,则可用()。

A.update CJ set grade=85 where sname='张三' and cname='化学'

B.update set grade='85' where sname='张三' and cname='化学'

C.update grade=85 where sname='张三' and cname='化学'

D.create CJ grade=85 where sname='张三' and cname='化学' A

五、判断题

1.×2.√3.√4.×5.×

6.×7.√8.√9.×10.×

1、SQL语句中,DROP DATABASE语句用于修改数据表中数据。

2、SSMS代表SQL Server Management Studio,提供了用于数据库管理的图形工具和功能丰富的开发环境。

3、create database语句可以在创建数据库时指定数据库名称等。

4、SQL中,FROM语句用于向已经存在的表中插入新的数据。

5、表创建之后,只能包含一组数据。

6、SQL Server中常用的数据类型中datetime和char是数字数据类型,非日期信息。

7、变量为int型,语句begin set @t=@x set @x=@y set @y=@t end完成两个变量的数值交换。

8、语句SELECT * FROM student,depart WHERE student.dNo=depart.dNo与SELECT * FROM student JOIN

depart ON student.dNo=depart.dNo查询结果一致。

9、Select 姓名,性别from student group by 性别,这个语句是正确的。

10、SQL Server提供了多个固定数据库角色,其中db_securityadmin是可以设置访问权限,不能修改角色管理权限。

六、名词解释

1. 操作系统级的安全性:是指在用户使用客户计算机通过网络实现对SQL Server服务器的访问时,用户首先要获得计算机操作系统的使用权。

2.SQL Server级的安全性:建立在控制SQL Server服务器登录账号和口令的基础上。

3. 简单恢复模式:在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。

4. 完整备份:备份整个数据库的所有内容,包括事务日志。

5. 差异备份:是完整备份的补充,只备份上次完整备份后更改的数据。

6. 事务日志备份:只备份事务日志里的内容。

相关文档