数据库练习题.docx

上传人:b****5 文档编号:11810380 上传时间:2023-04-02 格式:DOCX 页数:16 大小:21.75KB
下载 相关 举报
数据库练习题.docx_第1页
第1页 / 共16页
数据库练习题.docx_第2页
第2页 / 共16页
数据库练习题.docx_第3页
第3页 / 共16页
数据库练习题.docx_第4页
第4页 / 共16页
数据库练习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库练习题.docx

《数据库练习题.docx》由会员分享,可在线阅读,更多相关《数据库练习题.docx(16页珍藏版)》请在冰豆网上搜索。

数据库练习题.docx

数据库练习题

填空选择类练习题

一、填空题

1、系统自动创建的索引有____unique和primary___。

2、SQL语言支持关系数据库的三级模式结构分别是____外模式___、内模式____、 ____模式__。

3、主数据文件的扩展名为.mdf。

4、主键约束是___非空____和____唯一____的组合。

5、数据库文件有____主数据文件(.mdf)___、____辅助数据文件(.ndf)____、 ____日志文件(.ldf)____。

///6、SQL语言支持关系数据库的三级模式结构分别是_______、________、 ________。

//7、视图的查询不可以包含___compute/computeby____、____orderby____和___into_____关键字。

8、数据库领域常用的数据模型有____层次模式___、____网状模式____、 ____关系模式____、____面向对象____。

9、在一个表中只能设置___1_____个主键约束,可以定义_____多___个唯一性约束。

二、选择题

1、次数据文件用于存储不能存在主数据文件中的数据,默认扩展名为()。

A..ndfB..mdfC..logD..dat

2、关系模型中数据的逻辑结构是一张二维表,它由()组成。

A.行和列B.行C.关系D.列

3、一个查询的结果成为另一个查询的条件,这种查询被称为()。

A.连接查询B.内查询C.自查询D.子查询

4、SELECT语句中,下列(B)子句用于对数据按照某个字段分组?

(A)子句用于对分组统计进一步设置条件。

A.HAVING子句B.GROUPBY子句C.ORDERBY子句D.WHERE子句

5、在SELECT语句中,下列子句用于对搜索的结果进行排序(C)。

A.HAVING子句B.GROUPBY子句C.ORDERBY子句D.WHERE子句

6、修改视图时,使用(A)选项,可以对CREATEVIEW的文本进行加密。

A.WITHENCRYPTIONB.WITHCHECKOPTIONC.VIEW_METADATAD.ASSQL语句

7、与WHEREAGEBETWEEN18AND23完全等价的是()。

A.WHEREAGE>18ANDAGE<23B.WHEREAGE>=18ANDAGE<23C.WHEREAGE>18ANDAGE<=23D.WHEREAGE>=18ANDAGE<=23

一、填空题

1、在查询编辑器窗口输入的SQL语句,可以被保存或重新打开,SQL文件的扩展名为_____.sql____。

2、数据库领域常用的数据模型有____层次模式___、___网状模式_____、 ____关系模式____、_____面向对象___。

3、数据库文件有____.mdf___、___.ndf_____、 ____.ldf____。

4、主数据文件的扩展名为 ____.mdf____。

5、主键约束是____非空___和____唯一____的组合。

6、在一个表中只能设置____1____个主键约束,可以定义_____多___个唯一性约束。

7、视图的查询不可以包含___compute/computeby____、____orderby____和____into____关键字。

8、系统自动创建的索引有___unique____和____primary____。

//9、游标包含___结果集___和_____位置__两部分。

二、选择题

1、创建视图命令是(A)。

游标declare

A.CREATEVIEWB.DROPVIEWC.CREATETABLED.CREATERULE

2、在SELECT语句中,如果想要返回的结果集中不包含相同的行,应该使用关键字(C)。

A.TOPB.ASC.DISTINCTD.JOIN

3、在SELECT语句中,下列子句用于将查询结果存储在一个新表中(B)。

A.SELECT子句B.INTO子句C.FROM子句D.WHERE子句

4、为了对表中的各行进行快速访问,应对此表建立(C)。

A.约束B.规则C.索引D.视图

5、通过CREATETABLE语句或者其他方法创建了一个表后,可以使用(B)语句在表中添加记录。

A.DELETEB.INSERTC.UPDATED.INSEATER

6、(B)在定义列时,它可以为表中的指定列提供默认值。

A.FOREIGN约束外码约束B.DEFAULT约束C.UNIQUE约束D.CHECK

7、单击【查询编辑器】窗口中的任意位置。

按(A)命令,可以在全屏显示模式和常规显示模式之间进行切换。

A.Shift+Alt+EnterB.Shift+EnterC.Shift+AltD.Shift

 

1、单击【查询编辑器】窗口中的任意位置。

按()命令,可以在全屏显示模式和常规显示模式之间进行切换。

A.Shift+Alt+EnterB.Shift+EnterC.Shift+AltD.Shift

2、在查询编辑器窗口输入的SQL语句,可以被保存或重新打开,SQL文件的扩展名为_________。

3、关系模型中数据的逻辑结构是一张二维表,它由()组成。

A.行和列B.行C.关系D.列.

4、关系模型的完整性规则是对数据的约束。

关系模型提供了三类完整性规则_____实体______、_____参照______和_____自定义______。

5、次数据文件用于存储不能存在主数据文件中的数据,默认扩展名为()。

A..ndfB..mdfC..logD..dat

6、通常情况,SQLServer2005主要支持PRIMARY约束、UNIQUE约束、CHECK约束、DEFAULT约束、FOREIGN约束。

()在定义列时,它可以为表中的指定列提供默认值。

A.FOREIGN约束B.DEFAULT约束C.UNIQUE约束D.CHECK

7、创建S时,要求约束sex属性只能取值为男或者女,正确的命令是(B)。

A.CREATETABLESB.CREATETABLES

((

sexchar

(2),sexchar

(2),

CHECK(sexin('男','女'))CHECK('男','女')

))

C.CREATETABLESD.CREATETABLES

((

sexchar

(2),sexin('男','女')char

(2),

sexin('男','女'))

8、通过CREATETABLE语句或者其他方法创建了一个表后,可以使用()语句在表中添加记录。

A.DELETEB.INSERTC.UPDATED.INSEATER

9、一个查询的结果成为另一个查询的条件,这种查询被称为()。

A.连接查询B.内查询C.自查询D.子查询

10、为了对表中的各行进行快速访问,应对此表建立()。

A.约束B.规则C.索引D.视图

11、SELECT语句中,下列()子句用于对数据按照某个字段分组?

()子句用于对分组统计进一步设置条件。

A.HAVING子句B.GROUPBY子句C.ORDERBY子句D.WHERE子句

12、在SELECT语句中,下列子句用于将查询结果存储在一个新表中()。

A.SELECT子句B.INTO子句C.FROM子句D.WHERE子句

13、在SELECT语句中,下列子句用于对搜索的结果进行排序()。

A.HAVING子句B.GROUPBY子句C.ORDERBY子句D.WHERE子句

14、在SELECT语句中,如果想要返回的结果集中不包含相同的行,应该使用关键字()。

A.TOPB.ASC.DISTINCTD.JOIN

15、与WHEREAGEBETWEEN18AND23完全等价的是()。

A.WHEREAGE>18ANDAGE<23B.WHEREAGE>=18ANDAGE<23C.WHEREAGE>18ANDAGE<=23D.WHEREAGE>=18ANDAGE<=23

16、创建视图命令是()。

A.CREATEVIEWB.DROPVIEWC.CREATETABLED.CREATERULE

17、修改视图时,使用()选项,可以对CREATEVIEW的文本进行加密。

A.WITHENCRYPTIONB.WITHCHECKOPTIONC.VIEW_METADATAD.ASSQL语句

简答类练习题

1.数据库管理系统的构成有哪些?

2.数据模型有哪些?

层次模型、网状模型、关系模型、面向对象

3.实体间的关系有哪几种?

一对一、一对多、多对多

4.数据库管理经历了哪3个阶段?

1:

程序管理阶段2:

文件管理阶段3:

数据库系统管理阶段

////人工管理、文件系统和数据库管理系统

5.数据完整性有哪些?

正确性、有效性、相容性///实体完整性约束参照完整性约束用户自定义完整性

6.数据库对象有哪些?

至少5个

表、视图、索引、约束、触发器、默认值、用户和角色、规则、类型、函数

7.数据库文件有哪3类?

主数据文件、辅助数据文件、日志文件

8.关系运算符有哪些?

选择、投影、连接

9.备份的方法有哪些?

完全数据库备份、数据库和事务日志备份、差异备份、数据库文件和文件组备份

10.身份验证模式有哪2种?

Windows验证模式、SQLServer验证模式

表的操作:

1、创建T表(教师基本情况表)

(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,姓名,性别,年龄,职称,工资,系别。

TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号

USEexample

GO

CREATETABLEt

TNOchar(10)NOTNULLPRIMARYKEY,/*教师编号字段*/

TNchar(10)NULL,/*教师姓名字段*/

SEXchar

(2)NULL,/*教师性别字段*/

AGEintNULL,/*教师年龄字段*/

PROFchar(20)NULL,/*教师职称字段*/

SALintNULL,/*教师工资字段*/

DEPTchar(10)NULL,/*教师所在系别字段*/

GO

INSERTINTOtVALUES('0001','张老师','男',41,'副教授',2200,'电力系')

GO

INSERTINTOtVALUES('0002','张益琳','女',32,'讲师',1500,'动力系')

GO

CREATETABLETC

TNOchar(10)NOTNULL,/*教师编号字段*/

CNOchar(10)NULL,/*教师执教课程字段*/

GO

INSERTINTOtcVALUES('0001','C5')

GO

2、把所有教师的工资提高到平均工资的1.2倍。

updatetsetsal=sal*1.2

3、删除张益琳教师的记录。

deletet

whereTn='张益琳'

4.增加一个telchar(20)列。

ALTERTABLEt

ADDtelchar(20)

5.将工资字段属性改为float型。

ALTERTABLEt

ALTERCOLUMNsalchar(20)

6.删除tel字段。

ALTERTABLEt

DROPCOLUMNtel

7.将张老师的年龄改为50岁。

updatetsetage=50

whereTn='张老师'

8.将张老师的执教课程字段改为C10.

UPDATEtcSETcno='c10'

WHEREtnoIN

(SELECTtnoFROMtWHEREtn='张老师')

9.将TC表改为TC_01表。

execsp_rename'tc','tc_01'

10.将系别字段命名为sdept.

execsp_rename't.dept','sdept'

11.删除TC_01表.

droptabletc_01

查询操作:

查询操作查询操作查询操作查询操作

1.查询xs表中所有内容

2.查询xs表中学号,姓名

3.查询xs表中专业

4.查询xs表中专业,过滤掉重复元组。

5.查询xs表中学号,姓名,并设置学号为学生学号

6.查询xs表中学号,姓名,出生时间,年龄

7.查询xs表前3条记录

8.查询xs表中学号,姓名,性别并把查询内容生成新表xs_new

9.生成新表xs_new1,使此表的框架和xs表相同,但表中无记录。

10.查询xs表中年龄在23岁以下的学生学号,姓名,出生日期。

11.查询cj表中选修了a001的j001学生学号

12.查询xs表中姓王的学生

13.查询xs表中姓王的女学生

14.查询xs表中的所有学生记录,并按总学分降序排列

15.查询xs表不属于信息管理专业学生记录

16.查询选修了课程的学号,姓名,课程号,成绩

xs表

学号

姓名

性别

出生时间

专业

总学分

101

王林

1988-2-3

信息管理

20

102

程明

1988-5-15

信息管理

20

103

王燕

1987-8-23

信息管理

20

104

李丽

1988-12-22

网络工程

24

105

李强

1987-4-5

网络工程

26

cj表

学号

课程号

成绩

101

a001

89

101

a002

98

102

j001

60

102

j002

70

答案:

1.select*fromxs

2.select学号,姓名fromxs

3.select专业fromxs

4.selectdistinct专业fromxs

5.select学号as学生学号,姓名fromxs

6.select学号,姓名,出生时间,datediff(year,出生时间,getdate())as年龄fromxs

7.selecttop3*fromxs

8.select学号,姓名,性别intoxs_newfromxs

9.select*intoxs_new1fromxswhere1>2

10.select学号,姓名,出生时间fromxswheredatediff(year,出生时间,getdate())<23

11.select学号fromcjwhere课程号in(‘a001’,’j001’)

12.select*fromxswhere姓名like‘王%’

13.select*fromxswhere姓名like‘王%’and性别=’女’

14.select*fromxsorderby总学分desc

15.select*fromxswhere专业<>’信息管理’

16.selectxs.学号,姓名,课程号,成绩fromxs,cjwherexs.学号=cj.学号

假设有basetest数据库的如下关系

Student(sno,sname,ssex,sage,sdept)

Sc(sno,cno,grade)

Course(cno,cname,cpni,ccredit)

Usebasetest

5.用in和exists分别实现下面内容

1)查询选修了高等数学的学号,成绩和课程号

2)查询选修了高等数学的学号,姓名和系别

6.用比较子查询实现查询大于平均年龄的学生信息

答案:

5.1)selectsno,grade,cno

fromsc

wherecnoin

(selectcno

Fromcourse

wherecname=’高等数学’)

selectsno,grade,cno

fromsc

whereexists

(select*

fromcourse

wherecno=oandcname=’高等数学’)

2)selectsno,sname,sdept

fromstudent

wheresnoin

(selectsno

fromsc

wherecnoin

(selectcno

fromcourse

wherecname=’高等数学’))

selectsno,sname,sdept

fromstudent

whereexists

(select*

fromsc

wheresno=student.snoandexists

(select*

Fromcourse

Wherecno=oandcname=’高等数学’))

6.select*fromstudent

Wheresage>(selectavg(sage)fromstudent)

select*fromstudent

wheresdept!

=’IS’andsage>all

(selectsage

Fromstudent

Wheresdept=’IS’)

视图的操作:

视图的操作:

视图的操作:

视图的操作:

usebasetest

1、创建stud_view视图,显示学生的姓名、选修课程和成绩。

createviewstud_view

as

selectsname,cno,grade

fromsc,student

wheresc.sno=student.sno

2、创建stud_view1视图,可以查看平均成绩在80分以上的学生姓名。

createviewstud_view1

as

selectsname

fromstudent

wheresnoin

(selectsno

fromsc

groupbysno

havingavg(grade)>80)

3、创建student_view2视图,可以显示课程名和选修该课程的学生人数。

createviewstudent_view2

as

selecto,cname,count(sno)人数

fromsc,course

whereo=o

groupbyo,cname

5、创建depart_view视图查看每个系的学生人数。

createviewdepart_view

as

selectsdept,count(sno)as人数

fromstudent

groupbysdept

6、创建stud_view2视图可以查看每个学生的选修课程的门数和平均成绩。

createviewstud_view2

as

selectsno,count(sno)as门数,avg(grade)as平均成绩

fromsc

groupbysno

7、在stud_view2视图上查询平均成绩在80分以下的学生学号。

selectsno

fromstud_view2

where平均成绩<80

触发器、程序控制、自定义函数、存储过程:

例5创建一个自定义函数,返回特定学号学生选修课程的平均成绩。

(自定义函数)

USEbasetest

GO

CREATEFUNCTIONinfo_student(@snonchar(8))

RETURNSFLOAT

AS

BEGIN

DECLARE@GradeFLOAT

SET@Grade=(SELECTAVG(grade)

FROMsc

WHEREsno=@sno

GROUPBYsno)

RETURN@Grade

END

例10求5的阶乘(程序控制)

DECLARE@rint,@timesint

SET@r=1

SET@times=1

label1:

SET@r=@r*@times

SET@times=@times+1

IF@times<=5

GOTOlabel1

PRINT'5的阶乘为:

'+str(@r)

例11求1到100的和(程序控制)

DECLARE@iint,@sumint

SET@i=0

SET@sum=0

WHILE@i>=0

BEGIN

SET@i=@i+1

IF@i>100

BEGIN

SELECT'1到100的和'=@sum

BREAK

END

ELSE

SET@sum=@sum+@i

END

例15返回女生信息(存储过程)

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='stu_pro'andtype='p')

DROPPROCEDUREstu_pro

GO

CREATEPROCEDUREstu_proAS

SELECT*

FROMstudent

WHEREssex='女'

GO

--调用

EXECUTEstu_pro

GO

例5检查插入的学生是否是is系的学生(触发器)

USEbasetest

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='sc_tr'ANDtype='TR')

DROPTRIGGERsc_tr

GO

CREATETRIGGERsc_tr

ONsc

FORINSERT

AS

IFEXISTS(

SELECTsnoFROMinserted

WHEREsnoNOTIN

SELECTsnoFROMstudent

WHEREsdept='IS'

BEGIN

PRINT'该学生不是IS系的学生'

ROLLBACKtran

END

GO

例6学生选修过的课程不能删除(触发器)

USEbasetest

GO

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='course_tr'ANDtype='TR')

DROPTRIGGERcourse_tr

GO

CREA

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

当前位置:首页 > 经管营销 > 企业管理

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

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