SQL数据库系统及应用.docx

上传人:b****8 文档编号:30489020 上传时间:2023-08-15 格式:DOCX 页数:24 大小:40.07KB
下载 相关 举报
SQL数据库系统及应用.docx_第1页
第1页 / 共24页
SQL数据库系统及应用.docx_第2页
第2页 / 共24页
SQL数据库系统及应用.docx_第3页
第3页 / 共24页
SQL数据库系统及应用.docx_第4页
第4页 / 共24页
SQL数据库系统及应用.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

SQL数据库系统及应用.docx

《SQL数据库系统及应用.docx》由会员分享,可在线阅读,更多相关《SQL数据库系统及应用.docx(24页珍藏版)》请在冰豆网上搜索。

SQL数据库系统及应用.docx

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1