SQL期末复习学第二学期.docx

上传人:b****6 文档编号:8114269 上传时间:2023-01-28 格式:DOCX 页数:12 大小:24.70KB
下载 相关 举报
SQL期末复习学第二学期.docx_第1页
第1页 / 共12页
SQL期末复习学第二学期.docx_第2页
第2页 / 共12页
SQL期末复习学第二学期.docx_第3页
第3页 / 共12页
SQL期末复习学第二学期.docx_第4页
第4页 / 共12页
SQL期末复习学第二学期.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

SQL期末复习学第二学期.docx

《SQL期末复习学第二学期.docx》由会员分享,可在线阅读,更多相关《SQL期末复习学第二学期.docx(12页珍藏版)》请在冰豆网上搜索。

SQL期末复习学第二学期.docx

SQL期末复习学第二学期

SQL期末复习

考核知识点:

第一章:

数据库的基础知识

1)数据库概述:

定义

2)数据库系统:

构成、核心

3)关系模型:

记录、属性、字段等概念

第三章:

SQL的基础知识

1)SQL的数据类型:

基本类型的种类与使用方法

2)标示符:

自定义标示符的规则

3)使用SQL语句管理与维护数据库:

创建、修改、删除数据库的SQL语句

4)使用SQL语句管理与维护表:

创建、修改、更新、删除的操作

5)利用简单的SQL语句进行表格数据的查询:

简单select语句

第四章:

SQL高级查询

1)关联表查询

2)UNION子句的使用

3)子查询(IN)与连接查询(LEFT/RIGHT/FULLJION)

第五章:

视图

1)视图的概述

2)创建视图、使用与维护视图

第六章:

索引

1)索引的概述

2)索引的分类

第七章:

T-SQL程序设计

1)T-SQL的变量类型与表示方法

2)程序流程控制语句:

(BEGINEND、IFELSE、WHILE)

第八章:

函数

1)系统内置函数

2)自定义函数的使用

第九章:

存储过程、触发器和游标

1)系统存储过程与自定义存储过程的使用

2)触发器的概述与使用

第十一章:

SQL数据库的安全性管理

1)SQL的安全性机制

2)登陆账号、用户账号、角色等概念的理解

第十二章:

数据的备份与恢复

数据的备份方法与恢复

 

期末复习综合测试题

1.数据库系统的核心是()。

A.编译系统B.数据库C.操作系统D.数据库管理系统

2.关系模型中的数据逻辑结构是()。

A.矩阵B.树C.二维表D.矢量

3.关系数据库中的关键字是指()。

A.能惟一决定关系的字段B.不可改动的专用保留字

C.关键的很重要的字段D能惟一标识元组的属性或属性集合

4.对所有视图都可以进行。

A.selectB.insertC.updateD.delete

5.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是(        )。

A.多对多  B.一对一    C.多对一      D.一对多

6.若要删除数据库中已经存在的表S,可用()。

A.DeletetableSB.DELETESC.DROPTableSD.DROP S

7.学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。

要在S中删除一个属性“年龄”,可选用的SQL语句是()。

A.DELETEAgefromSB.ALTERTABLESDROPAge

C.UPDATESAgeD.ALTERTABLES‘Age’

8.从产品”表里查询出价格高于产品名称为“一次性纸杯”的产品的记录,此SQL语句为()。

A.SELECT*FROM产品WHERE价格>‘一次性纸杯’

B.SELECT*FROM产品WHERE价格>(SELECT*FROM产品WHERE产品名称>’一次性纸杯’ 

C.SELECT*FROM产品WHEREEXISTS产品名称=’一次性纸杯’ 

D.SELECT*FROM产品WHERE价格>(SELECT价格FROM产品WHERE产品名称=’一次性纸杯’

9.查找student表中所有电话号码(列名:

telephone)的第一位为8或6,第三位为0的电话号码()。

A.SELECTtelephoneFROMstudentWHEREtelephoneLIKE'[8,6]%0*'

B.SELECTtelephoneFROMstudentWHEREtelephoneLIKE'(8,6)*0%'

C.SELECTtelephoneFROMstudentWHEREtelephoneLIKE'[8,6]_0%'  

D.SELECTtelephoneFROMstudentWHEREtelephoneLIKE'[8,6]_0*'

10.现有书目表book,包含字段:

价格price(float),类别type(char);现在查询各个类别的平均价格、类别名称,以下语句正确的是()。

A.selectavg(price),typefrombookgroupbytype

B.selectcount(price),typefrombookgroupbyprice 

C.selectavg(price),typefrombookgroupbyprice

D.selectcount(price),typefrombookgroupbytype

11.查询student表中的所有非空email信息,以下语句正确的是()。

A.Selectemailfromstudentwhereemail!

=null

B.Selectemailfromstudentwhereemailnotisnull 

C.Selectemailfromstudentwhereemail<>null

D.Selectemailfromstudentwhereemailisnotnull

12.现有订单表orders,包含用户信息userid,产品信息productid,以下()语句能够返回至少被订购过两回的productid?

A.selectproductidfromorderswherecount(productid)>1

B.selectproductidfromorderswheremax(productid)>1  

C.selectproductidfromorderswherehavingcount(productid)>1groupbyproductid

D.selectproductidfromordersgroupbyproductidhavingcount(productid)>1

13.关于聚合函数,以下说法错误的是()。

 A.Sum返回表达式中所有数的总合,因此只能用于数字类型的列。

 B.Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。

 C.Max和Min可以用于字符型的列。

 

 D.Count可以用于字符型的列

14.使用以下()可以进行模糊查询。

 A.OR  B.Notbetween   C.NotIN   D.Like

15.SQL语句:

select*fromstudentswhereSNOlike‘010[^0]%[A,B,C]%’,可能会查询出的SNO是()。

  A.01053090A#Hm3?

  B.01003090A01  C.01053090D09   D.0101E01

16.假设订单表orders用来存储订单信息,cid代表客户编号,money代表单次订购额,现要查询每个客户的订购次数和每个客户的订购总金额,下面()sql语句可以返回正确结果。

  A.selectcid,count(distinct(cid)),sum(money)fromordersgroupbycid

  B.selectcid,count(distinct(cid)),sum(money)fromordersorderbycid 

 C.selectcid,count(cid),sum(money)fromordersorderbycid  

  D.selectcid,count(cid),sum(money)fromordersgroupbycid

17.现有客户表customers(主键:

客户编号cid),包含10行数据,订单表orders(外键:

客户编号cid),包含6条数据。

执行sql语句:

select*fromcustomersrightouterjoinordersoncustomers.cid=orders.cid。

最多返回()条记录。

  A.10  B.6  C.4    D.0

18.预测以下语句的输出:

selectstor_id,count(stor_id)fromsalesgroupbystor_idhavingavg(qty)>=20andcountstor_id)>3,以下()选项是正确的?

A.查询将显示那些商店的材料,它们的订单在3次以上,订单的平均数量大于等于20。

B.查询将显示那些商店的材料,它们订单的平均数量大于等于20。

C.查询将显示那些商店的材料,它们的订单在3次以上。

D、查询将显示那些商店的材料,它们的订单在3次以上,订单的数量大于等于20。

19SQL语言允许使用通配符进行字符串匹配的*作,其中‘%’可以表示()

A零个字符B1个字符串C多个字符串D以上都是

20如何在已经创建好的表上添加一个外键()

AAltertable表名addforeignkey(键名)reference关联表(关联键名)

BAltertable表名addPrimarykey(键名)reference关联表(关联键名)

CAlter表名addforeignkey(键名)reference关联键名)

DAlter表名addPrimarykey(键名)reference关联表(关联键名)

21要修改表名为Table1的字段Field1长度,原为Char(10)要求用SQL增加长度为char(20),以下语句那个正确()

AAltertableTable1AlterField1char(20)

BAlterTable1AltercolumnField1char(20)

CAltertableTable1AltercolumnField1char(20)

DAltercolumnField1char(20)

22下面聚集函数中哪个只能用于计算数值类型的数据()

ACOUNT()BMIN()CMAX()DSUM()

23以下哪个关键字用来定义记录在某属性上的约束条件()

ADEFAULTBDISTINCTCUNIQUEDCHECK

24欲往表中增加一条记录,应该用哪一条SQL语句()

AALTERTABLEBINSERTINTOTABLE

CCREATETABLEDDROPTABLE

25以下哪一个不是逻辑运算符()ANOTBANDCORDIN

26在创建表的过程中,哪个关键字用来定义默认值()

ADISTINCTBUNIQUECCHECKDDEFAULT

二、判断题

1默认值绑定到列上后,该列上的值将固定不能改变(χ)

2一张表允许有多个主键,但只能有一个外键(χ)

3可以通过SQL语句修改数据库名称及表的名称(χ)

4聚集函数SUM()与AVG()可以用来操作任何类型的数据(χ)

5要删除一条记录使用DROP指令(χ)

6在空串处理语句中,ISNULL用来判断属性值是否为空,在此IS是关键字,不是标准的逻辑运算符()

7在模糊查询中可以使用LIKE结合通配符一块儿实现,其中%代表单个字符(χ)

8在查询语句中,若要把记录进行降序排列应使用ORDERBY字段名DESC()

9在创建表的过程中,如果一属性是DATETIME类型需要指定长度(χ)

10在关系数据库的设计过程中,允许在设计后对表结构进行修改()

 

三、填空题

1数据库技术经历了人工管理阶段,_文件管理________和__数据库管理_____三个发展阶段。

2数据库系统中最常用的三种数据模型有层次模型,___网状模型______和_关系模型______。

3.E-R图的主要元素是实体型,_联系_____,__属性____。

4.SQLServer中,数据库主数据文件扩展名为mdf,次数据文件扩展名为       ndf     ,事务日志文件扩展名为       ldf     。

5.E-R图的三要素是实体、属性和联系。

6.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系:

“学生”关系的主键是:

学号,“学生”关系的外键是:

系编号。

7.关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Access,大型数据库系统如SQL等都是关系数据库管理系统

8.SQL语言中所使用的通配符中,表示任意多个字符的符号为:

%,表示单一字符的符号为*。

9.视图是从基本表中导出的表,它与基本表不同,是一个虚拟表。

数据库中只存放视图的定义,而不存放视图对应的数据。

10.使用索引可以减少检索时间,根据索引的存储结构不同将其分为两类:

聚集索引,非聚集索引。

11.能够返回当前系统日期和时间的系统函数是getdate()。

12、把学号约束为主键后,学号具有唯一性的特点。

13.删除表命令是:

DROPTABALE__。

14.SQLserver中的变量分为两种,全局变量和局部变量。

其中全局变量的名称以__@@______字符开始,由系统定义和维护。

局部变量以___@____字符开始,由用户自己定义和赋值。

15.SQLServer的安全机管理分为三个等级:

操作系统级、SQLServer级、数据库级。

16.在日常管理中,数据库中的数据丢失或被破坏是难以避免的,为了减少损失,平时要对系统数据进行备份,以便在需要时以最小的代价恢复数据。

17.设有关系R、S、T如下图所示,计算S-R、S∩R的结果:

abidapdafcbd

关系R

A

B

C

a

b

c

d

a

f

c

b

d

a

b

p

关系S

A

B

C

a

b

i

d

a

f

d

a

p

c

b

d

S-R

A

B

C

a

b

i

d

a

p

S∩R

A

B

C

d

a

f

c

b

d

四、综合题目

(一)数据库的创建于维护

1.用T-SQL语句创建mydb数据库,此数据库包含一个主数据文件,逻辑名为mydb,物理文件名是mydb.mdf,存放在D:

\sql下,初始空间是2MB,最大空间是10MB,文件增长是20%;一个日志文件,逻辑文件名是mydb_log,物理文件名是mydb_log.ldf,存放在D:

\sql下,初始空间是2MB,最大空间是10MB,文件增长是1MB。

写出程序。

 

2.在数据库mydb中创建“学生”表,表结构如下:

字段名

字段数据类型

长度

是否为空

约束

学号

char

9

主键名xh

姓名

char

8

性别

char

2

出生日期

datetime

8

入学日期

datetime

8

备注

varchar

50

 

3.在创建的“学生”表中添加如下两条记录。

学号

姓名

性别

出生日期

入学日期

备注

041020101

王婵

1985.6.6

2004.9.1

041020102

李明

1985.8.6

2004.9.1

(二)考虑下面的表结构。

NewProduct(产品表)

Category(产品种类表)

属性名

数据类型

属性名

数据类型

ProductId(产品号)

char(6)

CategoryId(产品种类号)

char(3)

ProductName(产品名)

varchar(20)

CategoryName(种类名)

char(20)

ProductDescription(产品描述)

varchar(250)

Description(种类描述)

varchar(100)

CategoryId(产品种类号)

char(3)

Photo(产品照片)

image

oh(现有数量)

smallint

ProductImgPath(照片路径)

varchar(50)

对于下面的问题参考以上表的结构:

Createbase学生表

(学号varchar(9)primarykey,

姓名char(8)null,

性别char

(2)null,

出生日期datetimenull,

入学日期datetimenull,

备注varchar(50)null)

`1、创建带有下面数据完整性规则的NewProduct表:

a.productid应该是主键。

b.Photo和ProductImgPath属性可以允许存储NULL值。

c.ProductName和ProductDescription属性不应该允许NULL值。

d.CategoryId属性的值的取值范围为:

“00001~10000”。

CreatebaseNewProduct

(产品号char(6)primarykey

产品名)

 

2、在Category表中插入以下数据:

CategoryId

Category

00005

bike

Insertintoactegory

(categrory,category)

Values

(‘00005’,’bike’)

 

3、将Category为‘bike’的产品的现有数量(QoH)减少5个。

4、完成以下查询:

.显示总现有数量大于200的产品的每类产品的CategoryId、CategoryName、总现有数量

Selectcategoryid,categotynamefromcrategory

Whereoh>200

b.显示现有数量(Qoh)大于所有产品的平均现有数量的产品的ProductId,ProductName,Qoh。

5、建一个视图,视图名为vwProduct:

要求检索出Category以‘b’开头的产品的ProductId、ProductName、CategoryId、CategoryName、Qoh。

6、对题5中的视图做以下的update操作,会出错,原因是什么?

可以用什么语句来实现该目的?

UpdatevwProductsetQoh=Qoh+2,Category=‘car’whereCateoryId=’c01’

(三)设计题

(1)要开发商业集团数据库管理系统,在该系统中有三个实体:

商店:

商店编号,商店名,地址;

商品:

商品号,商品名,规格,单价;

职工:

职工编号,姓名,性别,业绩

商店和商品间存在“销售”联系,每个商店可以销售多种商品,每种商品也可放在多个商店销售,每个商店销售的每种商品有月销售量;商店和职工间存在“聘用”关系,每个商店有多名职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。

1)、请画出该商业集团数据库管理系统的ER图,并在图上标出实体标识符,属性和联系的类型。

2)、将E-R图模型转换成关系模型,并标出主键。

(2)某简单的教学管理系统,在该系统中有三个实体:

学生:

属性有:

学号、姓名、专业、班级等;

教师:

属性有:

教师编号、教师姓名,授课班级,所属院系等;

课程:

属性有:

课程编号,课程名称等

学生和课程间存在“选修”联系,一个学生可选多门课程,而一门课程又有多个学生选修;选修课程有学分,成绩。

教师和课程之间存在“讲授”联系,一个教师至多可讲3门课程,一门课程至多只有一个教师讲授,讲授有周课时的要求。

1)请画出该教学管理系统的E-R图,并在图上标出实体标识符,属性和联系的类型。

 

2)将E-R图转换成关系模式,并注明主键。

 

(四)现有成绩管理系统数据库如下:

学生表(学号,姓名,性别,出生年月,班级编号)

成绩表(学号,课程编号,成绩)

班级表(班级编号,班级名称)

1.在学生表中,写出查询学生信息前10%条记录的语句:

Selecttop10percent*from学生信息表

2、在成绩表、班级表、学生表中,查询学号为‘20130102‘的学生信息,包括学号、姓名、班级名称、成绩等字段。

Select学号,姓名,班级名称,成绩

From成绩表,班级表,学生表

Where学号=‘20130102’

在成绩表中,为每位同学的成绩加上5分。

Update成绩表

SET成绩=成绩+5

update成绩=成绩+成绩*5%

 

4、查询出不及格学生的学生信息,包括学号、姓名、班级、成绩等字段。

SELECT学号,姓名,班级,成绩

From学生信息表,成绩表

Where成绩<60

5、查询出补考科目在2门以上的学生信息,包括学号、姓名、班级、成绩等字段。

Select学号,姓名,班级,成绩

From学生信息表,班级信息表

Where成绩<60

Groupby学号

Havingcount(*)>2

selectnumfromstudentwherescore<60groupbynumhavingcount(num)>=2

6、写出在成绩表中统计学生平均分大于70的成绩记录。

包括学号、总分、平均分、课程门数、课程最高分、课程最低分字段。

Select学号,sum(studscore)总分,cast(avg(studscore)asnumeric(4,1))平均分,count(*)课程门数,max(studscore)课程最高分,min(studscore)课程最低分

From成绩表

Groupby学号

Havingavg>70

7、创建学生平均成绩视图V_StudAvgScore其中包括学号、姓名、平均分、总分、最高分、最低分、课程门数字段。

CreateviewV_StudAvgScore

As

Select学号,姓名,平均分,最高分,最低分,课程门数

From学生信息表,成绩表

Where成绩表.学号=学生表.学号

8、自定义函数,通过学生的学号,显示该学生的成绩统计信息,包括:

学号,姓

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

当前位置:首页 > 高等教育 > 工学

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

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