SQL SERVER课程复习.docx

上传人:b****4 文档编号:11535322 上传时间:2023-03-19 格式:DOCX 页数:14 大小:23.50KB
下载 相关 举报
SQL SERVER课程复习.docx_第1页
第1页 / 共14页
SQL SERVER课程复习.docx_第2页
第2页 / 共14页
SQL SERVER课程复习.docx_第3页
第3页 / 共14页
SQL SERVER课程复习.docx_第4页
第4页 / 共14页
SQL SERVER课程复习.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

SQL SERVER课程复习.docx

《SQL SERVER课程复习.docx》由会员分享,可在线阅读,更多相关《SQL SERVER课程复习.docx(14页珍藏版)》请在冰豆网上搜索。

SQL SERVER课程复习.docx

SQLSERVER课程复习

SQLSERVER课程复习

一.知识点

1.数据库系统的核心是数据库管理系统,简称DBMS,DBS=DBMS+DB。

2.常见的数据库管理系统包括网状、层次、关系三种模型,本课程的SQLSERVER属于关系型DBMS。

常见的Oracle、Access也属于关系型数据库。

3.在SQLServer2008中,系统数据库包括master、model、msdb、resource、tempdb等5个,其中resource是隐藏数据库,在SSMS中看不到。

这几个系统数据库中分别保存了什么数据?

答:

model数据库是SQLserver实例上创建的所有数据库的通用模板。

Master数据库记录SQLserverde系统级信息。

是数据的核心。

Msdb数据库代理用于计划警报和作业,也可以有其他功能作用。

Tempdb用于存放连接到SQL实例的所有用户临时表和临时存储过程以及其他临时性对象。

Resource数据库是一个只读和隐藏的数据库。

4.在SQLServer2008中,数据库文件包括主数据文件.mdf,辅助数据文件.ndf和日志文件.ldf。

一个数据库可以有几个主文件?

几个辅助文件?

几个日志文件?

文件和文件组之间的关系是什么?

各类文件可以分属几个文件组?

答:

一个数据库中,可以有且仅有一个主文件,辅助文件可有可无,日志文件至少有一个,文件组是文件的逻辑集合。

各类文件可以分属一个的文件组,一个数据库文件只能存在于一个文件组中。

5.熟悉2008常见的数据类型,包括整型、小数、字符串(普通、Unicode)、二进制、时间日期等各种详细类型。

数据库类型:

整型—整数:

intbigintsmallinttinyintbit

小数:

floatrealdecimalnumbericmoneysmallmoney

字符串数据类型:

普通字符串:

charvarchar(n)text

Unicode:

nchar(n)nvchar(n)

二进制字符串:

binary(n)varbinary(n)image

时间和日期:

datatimesmalldatatime

其他数据类型:

sql_varianttimestampunipueidentifierxmltablecursor

6.数据库的特点是什么?

数据库是存放数据的仓库,仓库中的数据不是简单堆积在一起的,而是按照一定的格式存放的,特点是:

永久保存、可共享、较小的冗余度、较高的数据独立性、易扩展性。

8.SQLServer中,系统存储过程的名字以什么开头?

用于查看数据库信息的系统存储过程是什么?

答:

系统存储过程的名字以sp开头,用于查看数据库信息的系统存储过程是sp_helpdb

9.T-SQL语言中,删除表中数据的命令是delete,删除数据表和数据库的命令是drop。

10.触发器是特殊的存储过程,没有参数、返回值,切由系统自动调用,不可由用户调用。

11.修改表结构的语句altertable语句的addconstraint子句可以实现添加列约束。

12.数据库设计包括哪几个阶段?

分别使用什么方法进行设计?

在E-R模型中,实体、实体间的联系等分别用什么图形表示?

数据库设计包括四个阶段,1.需求分析:

调查收集与分析客户在数据库管理中的信息需求,处理需求,安全性需求和完整性需求、2.概念结构设计:

E-R模型,逻辑数据模型,、3.逻辑结构设计:

关系模型.4、数据库实现。

在E-R模型中,实体用矩形表示,实体间的联系用菱形表示。

13.T-SQL中合法标示符的定义规则是什么?

要能有效利用规则辨别哪些是合法标示符。

定义规则是:

1.标识符长度可以为1-128个字符2.标识符首字符必须为字符或下划线(_)at符号(@)数字符号(#)3.标识符第一个字符的后续字符可以为Unicode3.2标准所定义的字母、数字、或@,#、_符号。

4.标识符不能嵌入空格或其他特殊字符。

5.标识符不能与sql中保留的关键字同名。

14.什么是外键约束?

有什么特点?

如果表A中的主关键字是表B中的字段,则称该字段为表B的外键,表A为主表,表B为从表。

外键约束的特点可以在多个数据表间建立关联,保证数据的参照完整性和域完整性。

15.在SQL查询语句select中各个分组的子句的功能是什么?

如:

ORDERBY、HAVINGBY、COMPUTEBY、GROUPBY。

ORDERBY排序ASC是升序,DESC是降序。

GROUPBY在结果集中分组汇总。

HAVINGBY在聚合前先筛选记录,COMPUTEBY字句在结果集内生成控制中断和分类汇总。

16.建立索引的目的是什么?

索引的分类?

建立索引可以快速访问数据库表中的特定信息。

索引分类:

聚集索引,非聚集索引、简单索引,复合索引、唯一索引,非唯一索引。

17.存储过程的定义是什么?

存储过程在数据库服务器执行的一组T_SQL语句的集合,经编译后存放在数据库服务器端。

18.对应模糊查找like‘%a_’匹配的是什么格式的字符串。

以a结尾的字符串

19.关系模式由2NF转化为3NF是消除了非主属性对码的什么依赖?

关键字的依赖

20.SQLServer2008中的对象有哪些?

关系图、表、视图、存储过程、用户、角色、规则、默认、用户定义的数据类型、用户定义的函数、全文目录

21.waitfor语句用于通知SQLServer等待一定的时间后执行,等待15秒对应什么waitfor语句。

WAITFORDELAY’00:

00:

15’

22.下列三个个代码段运行结果是?

createtablett(nlint,n2numeric(5,0),n3numeric(4,2))

go

insertintottvalues(1.7,1.6,1.4)

select*fromtt

1,2,1.40

createtablett(nlint,n2numeric(5,0),n3numeric(4,2))

go

insertintottvalues(1.6,1.8,1.4)

select*fromtt

1,2,1.40

createtablexx(xlint,x2numeric(5,0),x3numeric(4,2))

Go

Insertintoxxvalues(1.8,1.6,1.4)

Select*fromxx

1,2,1.40

 

23.在SQLServer2008中允许嵌套视图不能超过多少层?

视图最多引用多少列?

32层1024列

24.SQLSERVER2008的三种备份方式是?

完整备份、差异备份或增量备份、事务日志备份、文件和文件组备份

25.游标的使用分哪五步,分别使用什么语句?

声明游标:

declare打开游标:

open读取游标:

fetch关闭游标:

close

释放游标:

deallocate

26.关系数据库的基本数据结构是二维表。

27.数据库规范化理论包括哪些内容?

数据库的第一、第二、第三、第三、第五范式

28.在SQLServer2008中,触发器的特性:

强化约束、级联修改、跟踪变化。

29.数据库系统的主要特征是什么?

永久保存、可共享、较小的冗余度、较高的数据独立性、易扩展性

30.外连接、内连接、全连接的关键字是什么?

(提示:

***JOIN)。

外链接outerjoin内连接innerjoin全连接:

fulljoin

31.查询所有姓王且家庭住址为空的学生信息;检索学生表中’网络’或’软件’专业的学生,则where条件为什么?

Where专业‘网络’OR‘软件’and家庭住址‘null’

32.用于得到系统当前日期和时间的函数是GETDATE()。

33.下列代码的运行结果是?

34.在SQLServer2008中一个表最多允许有多少个非聚集索引,多少个聚集索引?

一个聚集索引249个非聚集索引

35.哪个角色属于固定服务器角色?

Sysadmin

36.可以与子查询一起检查行或列是否存在的字句是什么?

EXISTS

37.在SQLServer2008中,触发器根据触发条件分类包括三种类型:

INSERT触发器、UPDATE触发器、DELETE触发器。

38.SSMS的主要功能包括哪些?

对于数据表的建立、修改、查看、删除

39.SQLSERVER2008的安全模型包括哪些内容?

客户机安全机制、网络传输安全机制、实例级安全机制、数据库级别安全机制、对象级别安全机制

40.局部变量声明、赋值和输出的语句是什么?

声明:

Declare@变量名赋值:

set@局部变量=表达式输出:

print表达式

41.存储过程特点的是什么?

1、存储过程在服务器端执行,执行速度快。

2、存储过程执行一次后,就驻留在高速缓存存储器中,以后的操作可以直接调用,提高系统性能。

3使用存储过程可以完成所有操作,确保数据库的安全。

4、自动完成需要预先执行的任务。

42.概念模型是对现实世界的抽象,使用什么表示?

E_R

43.查看SQLServer服务器的版本信息,使用什么语句。

PRINT@@VERSION

44.数据的完整性指数据的正确性和一致性,包括哪三个方面?

实体完整性、参照完整性、域完整性。

45.定义数据库语句中,设置数据库选项时,什么关键字表示单用户?

什么表示自动收缩。

Single单用户自动收缩:

autoshrink

46.子查询分为哪两类?

选择查询参数查询

47.打开游标后,用于判断该游标是否打开成功的全局变量是什么?

@@ERROR

48.批处理以go语句作为结束标志。

49.在SQLServer中,用于修改数据库选项的系统存储过程是什么?

ALTERPROCEDURE存储过程名

50.数据表中数据的增删改查对应的SQL语句是INSERT\DELETE\UPDATE\SELECT。

51.对查询结果集过滤重复行使用什么子语?

DISTINCT

52.撤销授予权限使用和拒绝授予权限分别使用什么语句?

拒绝:

deny权限on对象to用户

撤销:

revoke权限on对象to用户

53.SQLServer是一种什么类型的体系结构的关系数据库管理系统?

54.SQLServer的编程语言是T-SQL。

55.层次模型、网状模型和关系模型分别使用什么表示数据之间的关系?

层次模型使用记录和链接来表示、网状模型使用记录的集合表示,关系

模型使用二维表来表示。

56.创建视图时使用什么子句对视图的进行加密?

WITHENCRYPTION

57.数据表行、列分别称为什么?

行称为记录,列称为字段。

58.SQLServer2008中的实例分为哪两类?

默认实例命名实例

59.在SQLServer中,使用什么子句对查询结果过滤重复行。

DISTINCT

60.按style格式将表达式的值转换为指定的数据类型,可以使用什么函数?

CONVERT

61.触发器按照被激活的时机分为之后after和之前instead两种触发方式。

62.在查询分析器的查询窗口中输入SQL语句后,按下F5键可以执行查询。

63.SQLServer2008的全局变量名字必须以@@开头。

64.SQLServer注释包括两种形式,分别是单行注释和多行注释,格式分别为什么?

单行注释–注释内容

多行注释/**/

二.技能点

1.向数据库中添加一个名为user的文件组,然后在D盘data文件夹中添加一个数据文件teadd.ndf并将其添加到文件组中

alterdatabase数据库名

addfilegroupuser

go

alterdatabaseteachers/*添加数据文件*/

addfile(name=teadd,filename=’d:

\data\teadd.ndf’)tofilegroupuser

go

execsp_helpdbteachers/*查看数据库信息*/

go

sp_dboption‘teachers’,’single’,’true’/*设置数据库为单用户*/

2.用于计算1!

+2!

+3!

+4!

+5!

的程序。

declare@iint,@tint,@sumint

select@i=1,@t=1

set@sum=0

while@i<=5

begin

set@t=@t*@i

set@sum=@sum+@t

set@i=@i+1

end

print@sum

3.使用T-SQL语句建立员工表,要求如下:

1)工号为主键,建立check约束,使得工号字段只能取5位数字

2)为姓名字段设置为唯一约束

3)为性别字段建立check约束,性别取值为“男”或“女”

4)为部门字段建立默认值约束,默认值为“销售部”

createtable员工表

工号char(6)notnullprimarykey

check(工号like’[0-9][0-9][0-9][0-9][0-9]’),

姓名char(8)notnullunique,

性别char

(2)check(性别=’男’or性别=’女’),

出生日期datetime,

部门varchar(8)default‘销售部’,

备注Text

4.用于创建一个学生信息视图stu,查看学生的学号、姓名、专业和年龄,并对成绩进行判断,划分相应的等级优、良、中、差的程序。

createviewstu

as

select学号,姓名,专业,

等级=case

when成绩>=90and成绩<100then‘优’

when成绩>=80then‘良’

when成绩>=70then‘中’

when成绩>=60then‘差’

end,

年龄=year(getdate())-year(出生日期)

from学生表,成绩表

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

5.用于将数据库Book中原有的主数据文件的初始大小改为2MB,按2MB自动增长,最大容量没有限制的程序。

alterdatabasebook/*修改数据文件*/

modifyfile

(name=‘book’,size=2,maxsize=unlimited,filegrowth=2)

go

execsp_helpdbBook/*查看数据库信息*/

sp_dboption‘Books’,’autoshrink’,’true’/*设置数据库为自动收缩*/

6.程序用于输出1~3000之间所有能被125整除的整数。

declare@iint

set@i=1

while@i<=3000

begin

if@i%125=0

print@i

set@i=@i+1

end

7.使用T-SQL语句建立学生表,要求如下

1)学号为主键,建立check约束,使得学号字段只能取5位数字

2)姓名字段设置为唯一约束

3)性别字段建立check约束,只允许输入1和0分别表示’男’、’女’

4)为家庭住址字段建立默认值约束,默认值为’开封大学’

createtable学生表

学号char(6)notnullprimarykey

check(学号like’[0-9][0-9][0-9][0-9][0-9]’),

姓名char(8)notnullunique,

性别bitcheck(性别=‘男’or性别=‘女’),

出生日期datetime,

家庭住址varchar(8)default‘开封大学’,

备注Text

8.以下程序用于创建学生信息视图stu,查看选修多门课程的学生的学号、姓名、年龄和成绩,按正常习惯显示性别为’男’或’女’。

createviewstu

as

select学号,姓名,成绩

性别=case性别

when0then'男'

when1then'女'

end,

年龄=year(getdate())-year(出生日期)

from学生表,成绩表

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

groupby学生表.学号

havingcount(课程号)>1

9.以下程序用于向student数据库中添加一个名为user1的文件组,然后在D盘data文件夹中添加数据文件stuadd.ndf并将其添加到文件组中。

ALTERDATABASEstudent

addfilegroupuser1

Go

ALTERDATABASEstudent

addfile(name=stuadd,filename=’D:

\data\stuadd.ndf’)

/*添加文件*/

10.以下的程序用于计算1+2+3+…+100的行。

declare@iint,@sumint

set@i=1

set@sum=0

while@i<=100

Begin

set@sum=@sum+@i

set@i=@i+1

end

print@sum

 

11.使用T-SQL语句建立商品表,要求如下:

1)货号为主键,建立CHECK约束,使得货号字段只能取6位数字

2)为货名字段设置为唯一约束

3)为进价字段建立CHECK约束,要求进价必须>0

4)为类别字段建立默认值约束,默认值为“办公用品”

CREATETABLE商品表

货号Char(6)notnullPrimarykey

primarykey,

/*检查约束:

货号字段只能取6位数字*/

货名char(8)notnullunique,

进价decimal(8,2)check(进价>0),

/*检查约束:

进价必须>0*/

类别Varchar(8)default’办公用品’,

/*默认值约束:

“办公用品”*/

12.以下程序用于声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集,请将程序补充完整

DECLARE@COUNOVARCHAR(3),@COUNAMEVARCHAR(20)

CRSCOURSEcursor

FORSELECTCOUNO,COUNAMEFROMCOURSEORDERBYCOUNO

OpenCRSCOURSE

FETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAME

WHILE@@fetch_status=0

BEGIN

PRINT’课程号:

’+@COUNO+’课程名称:

’+@CouName

FETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAME

END

CloseCRSCOURSE

13.以下程序用于将数据库sample中原有主数据文件的初始大小改为4MB,按10%自动增长,最大容量没有限制。

Alterdatabasesample

modifyfile/*修改数据文件*/

(name=‘sample’,size=4,filegrowth=4,Maxsize=unlimited)

Go

EXECsp_helpdbsample/*查看数据库信息*/

 

14.下面的程序用于输出所有的水仙花数。

declare@iint,@aint,@bint,@cint

set@i=100

while@i<1000/*设定循环次数*/

begin

set@a=@i/100

set@b=(@i–@a*100)

set@c=@i–@a*100-@b*10

if(@a*@a*@a+@b*@b*@b+@c*@c*@c=@i)

print@i

set@i=@i+1

End

15.使用T-SQL语句建立员工表,要求如下

1)工号为主键,建立CHECK约束,使得工号字段只能取6位数字

2)为姓名字段设置为唯一约束

3)为性别字段建立CHECK约束,性别取值为“男”或“女”

4)为部门字段建立默认值约束,默认值为“销售部”

CREATETABLE员工表

工号Char(6)notnullprimarykey,/*设定为主键*/

check(工号like’[0-9][0-9][0-9][0-9][0-9]’)

姓名char(8)notnullunique,/*设定唯一约束*/

性别char

(2)check(性别=’男’or性别=’女’),

出生日期datetime,

部门Varchar(8)default’销售部’,

备注Text

16.学生管理数据库中有以下数据表:

学生表(学号,姓名,性别,专业,出生日期)

课程表(课程号,课程名,学时,学分)

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

用SQL语句实现下列功能,请写出相关代码:

1.在学生表中查询软件专业所有姓‘张’的学生的学号、姓名和年龄。

2.查询成绩是前3名的学生的姓名、专业、成绩。

3.定义一个函数func,根据出生日期和当前日期计算年龄。

4.建立一个名为学生_pro1的存储过程,输入姓名,查询该学生的学号、选修的课程名和分数。

5.创建一个名为修改学生的替代触发器,当对学生表中的数据进行修改时,可以自动统计并显示修改的行数。

6.在学生表中查询应用专业的女生的姓名和年龄。

7.查询选修课程名为“网页制作”的学生的学号、姓名、平均分,并按平均分降序排列。

8.创建一个名为学生_pro1的存储过程,输入学号,查询该学生的姓名、选修的课程名和分数。

9.创建一个名为删除学生的后触发器,当删除学生表中某个学生时,成绩表中该学生的相关记录同时全部删除,实现学生表和成绩表的级联删除

10.在学生表中查询1997年出生的应用专业学生的学号和姓名。

11.查询选修课程名为”网络基础”的学生的学号、姓名、平均分,并按平均分降序排列。

12.定义一个函数prim,判断一个数是否是素数。

13.建立一个名为学生_pro1的存储过程,输入学号,查询该学生的姓名、课程名、分数。

14.创建一个名为删改学生的替代触发器,当更新学生表中某个学生时,显示提示信息,学生表

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

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

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

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