SQL Server考试重点.docx

上传人:b****6 文档编号:5867671 上传时间:2023-01-01 格式:DOCX 页数:13 大小:22.69KB
下载 相关 举报
SQL Server考试重点.docx_第1页
第1页 / 共13页
SQL Server考试重点.docx_第2页
第2页 / 共13页
SQL Server考试重点.docx_第3页
第3页 / 共13页
SQL Server考试重点.docx_第4页
第4页 / 共13页
SQL Server考试重点.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SQL Server考试重点.docx

《SQL Server考试重点.docx》由会员分享,可在线阅读,更多相关《SQL Server考试重点.docx(13页珍藏版)》请在冰豆网上搜索。

SQL Server考试重点.docx

SQLServer考试重点

SQLServer考试重点

1.在MicrosoftSQLServer2008中,主数据文件的后缀是_.mdf______,日志数据文件的后缀是__.ldf______。

2.在创建数据库时,系统自动将model系统数据库的所有用户定义的对象复制到新建的数据库。

3.每个文件组可以有0个日志文件。

4.使用T-SQL语句创建数据库的语句是:

createdatabaseww;创建表的语句是:

createtableuuu(snochar(12),snamechar(20))

1.在一个表上可以定义__多_个CHECK约束。

2.创建表的语句是:

_CREATETABLE表名___________。

3.表和表之间的关系是通过__连接实现的。

4.删除表“employ”中的“employdate”列所使用的语句是什么?

答:

altertableemploy

dropcolumnemploydate

5.为表“employ”删除主键约束的语句是怎样的?

添加主键:

altertablecourse

addconstraintzhujianprimarykey(cno)

删除主键:

altertablecourse

dropconstraintzhujian

1、在索引命令中使用关键字CLUSTERED和NONCLUSTERED分别表示将建立的是_聚集索引和非聚集索引。

2、访问数据库中的数据有两种方法,分别是:

表扫描________和__索引查找_______。

3、索引一旦创建,将由_数据库管理系统自动管理和维护。

4、在一个表上,最多可以定义_1___个聚集索引,最多可以有249个非聚集索引。

5、设有一个职员表为Customers,其上有客户姓名(Name),客户ID(ID)等列,表执行如下语句:

CREATECLUSTEREDINDEXidxONCustomers(Name)

得到以下错误:

Cannotcreatemorethanoneclusteredindex

原因是什么,为什么会出错?

答:

因为在一个表中只能创建一个聚集索引。

前三条记录:

selecttop3*fromstudent

1.安装SQLServer2008之前应该做什么准备工作?

答:

(1)增强物理安全性

(2)使用防火墙

(3)隔离服务

(4)禁用NetBIOS和服务器消息块

2.SQLServer2008支持哪两种身份验证?

答:

Windows身份验证或混合模式身份验证。

3、在SQLServer2008中有几类角色?

答:

三类:

服务器角色、数据库角色、应用程序角色

4、试述常用函数的分类及各函数的特点。

答:

在SQL中常用函数分为:

数学函数、字符串函数和日期时间函数,它们的特点如下:

数学函数可以执行对数、指数、三角函数、平方根等数学运算,并返回运算结果。

对输入的字符串进行各种操作的函数称为字符串函数。

与数学函数一样,字符串函数也是经常使用的函数。

SQLServer2008提供的日期时间函数不多,但非常实用。

这些函数可以执行正确的DATETIME计算,并考虑闰年及其他历法的细节。

在T-SQL中,可以将日期时间函数用在SELECT查询语句的选择列表或用于WHERE子句中。

5、试说明存储过程的特点及分类

存储过程是事先编好的、存储在数据库中一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。

SQLServer2008支持不同类型的存储过程:

系统存储过程、扩展存储过程、用户存储过程,以满足不同的需要。

6、在SQLServer2005中备份和还原的方法都有哪些?

答:

MicrosoftSQLServer2005提供了4种不同的备份方式:

完整备份和完整差异备份、部分备份和部分差异备份、事务日志备份、数据库文件和文件组备份。

7、数据库导入导出的概念和作用是什么?

答:

通过导入和导出操作可以在SQLServer2005和其他异类数据源(例如Excel或Oracle数据库)之间轻松地移动数据。

例如,可以将数据从Excel应用程序导出到数据文件,然后将该数据文件导入到SQLServer表中。

导出是指将数据从SQLServer表复制到数据文件中。

导入是指将数据从数据文件加载到SQLServer表中。

8、分离和附加数据库时,要注意哪些事项?

答:

在进行分离和附加数据库操作时,首先要注意以下几点:

(1)不能进行更新,不能运行任务,用户也不能连接在数据库上。

(2)在移动数据库之前,为数据库做一个完整的备份。

(3)确保数据库要移动的目标位置及将来数据增长能有足够的空间。

(4)分离数据库并没有将其从磁盘上真正的删除。

如果需要,可以对数据库的组成文件进行移动、复制或删除。

9、自动化管理任务的概念。

答:

作为SQLServer2005数据库的管理员,有许多日常工作是相同或相似的,而且需要每天(或每隔一段时间)重复操作。

这就使这份工作变得有些枯燥乏味。

为了使管理更加方便,SQLServer2005提供了自动化管理任务的机制,很多具有重复性的工作可以交给SQLServer2005来自动完成。

10、数据库导入导出的概念和作用是什么?

答:

通过导入和导出操作可以在SQLServer2005和其他异类数据源(例如Excel或Oracle数据库)之间轻松地移动数据。

例如,可以将数据从Excel应用程序导出到数据文件,然后将该数据文件导入到SQLServer表中。

导出是指将数据从SQLServer表复制到数据文件中。

导入是指将数据从数据文件加载到SQLServer表中。

11、简述WHERE子句可以使用的搜索条件及其意义。

在WHERE子句中,可以使用的查询条件有以下几种情况:

1)使用比较运算符:

比较运算符来比较表达式值的大小,运算结果为TRUE或者FALSE。

2)使用逻辑运算符:

使用逻辑运算符,连接WHERE子句中的多个查询条件。

3)使用LIKE模式匹配:

使用LIKE模式匹配运算符,用于指出一个字符串是否与指定的字符串相匹配。

4)使用BETWEEN和IN运算符来确定范围。

5)使用NULL运算符判断一个表达式的值是否为空值。

12、为什么要使用锁?

SQLServer2008提供了哪几种锁的模式。

答:

在单用户数据库中,由于只有一个用户修改信息,不会产生数据不一致的情况,因此并不需要锁。

当允许多个用户同时访问和修改数据时,就需要使用锁来防止对同一个数据的并发修改,避免产生丢失更新、脏读、不可重复读和幻读等问题。

锁(lock)的基本原则是允许一个事务更新数据,当必须回滚所有修改时,能够确信在第一个事务修改完数据之后,没有其他事务在数据上进行过修改。

即锁提供了事务的隔离性。

事务一旦获取了锁,则在事务终止之前,将一直持有该锁。

如果其他事务尝试访问数据资源的方式与该事务所持有的锁不兼容,则其他事务必须停止执行,直到拥有锁的事务终止、不兼容的锁被释放,才可以使用解锁的数据资源。

在SQLServer2008中,系统能够自动处理锁的行为。

共有6种锁,分别是:

共享锁、更新锁、排他锁、意向锁、架构锁和大容量更新锁。

13、什么是死锁?

如何预防死锁?

怎么解决死锁?

答:

死锁就是两个事务各对一个资源加锁,都想使用对方的资源,但同时又不愿放弃自己的资源,于是一直等待对方放弃资源。

如果不进行外部干涉,死锁将一直持续。

死锁会造成资源的大量浪费,甚至会使系统崩溃。

解决死锁最好的方法就是防止死锁的发生,即不让满足死锁条件的情况发生。

为此,用户需要遵循以下原则:

(1)尽量避免并发地执行涉及到修改数据的语句;

(2)要求每个事务一次就将所有要使用的数据全部加锁,否则就不予执行;

(3)预先规定一个加锁顺序。

所有的事务,都必须按这个顺序对数据进行加锁。

例如,不同的过程在事务内部对对象的更新执行顺序应尽量保持一致;

(4)每个事务的执行时间不可太长,尽量缩短事务的逻辑处理过程,及早提交或回滚事务。

对程序段长的事务可考虑将其分割为几个事务;

(5)一般不要修改SQLServer事务的默认级别。

不推荐强行加锁。

14、T-SQL和SQL的关系是什么?

答:

SQL全称是“结构化查询语言(StructuredQueryLanguage)”SQL(StructuredQueryLanguage)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

T-SQL是标准SQL程式设计语言的增强版,它是用来让应用程式与SQLServer沟通的主要语言。

T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(例如IF和WHILE)让程式设计更有弹性。

可以理解成T-sql是SqlServer支持的sql语法,而不是软件。

15、试述T-SQL语言的特点。

答:

特点包括:

●一体化。

T-SQL语言包含4个组成元素:

数据查询语言(SELECT语句)、数据操纵语言DML(如INSERT,UPDATE,DELETE语句)、数据定义语言DDL(如CREATE,DROP语句)和数据控制语言(如COMMIT,ROLLBACK等语句)。

这些元素集数据定义、数据查询、数据操纵、数据控制、事务管理和附加语言元素为一体,方便用户使用。

其中数据查询语言SELECT是它的核心。

●两种使用方式:

T-SQL支持交互方式和嵌入式方式。

用户既可以使用T-SQL直接查询存储在数据库中的数据,又可以把T-SQL语句嵌入到某种高级程序设计语言(如VisualC#.NET、Java等)中使用。

●非过程化语言。

在T-SQL语句中,用户只需指出“做什么”,而不需要指出系统“如何做”,语句具体的操作过程由系统自动完成。

因此不同的数据库系统均可以使用相同的T-SQL语句作为数据输入与管理的接口。

●以记录集合作为操作对象。

所有T-SQL语句以集合作为输入,并返回集合作为输出。

这种集合特性允许一条T-SQL语句的输出作为另一条T-SQL语句的输入,所以T-SQL可以嵌套,这使其具有极大的灵活性和强大的功能,在很多情况下,一条T-SQL语句就可以实现其他语言中需要大段程序才能实现的功能。

类似于人的思维习惯,容易理解和掌握。

T-SQL与其他编程语言相比,要简单得多。

16、为社么要引入CHECK约束?

答:

对表中的某些列创建CHECK(检查)约束是为了实施数据的域完整性约束。

检查约束对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性和有效性。

使用检查约束时,应该考虑和注意以下几点:

一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关;一个表中可以定义多个检查约束;每个CREATETABLE语句中的每个字段只能定义一个检查约束;在多个字段上定义检查约束,则必须将检查约束定义为表级约束;当执行INSERT语句或者UPDATE语句时,检查约束将验证数据。

17、举例说明触发器的使用

创建触发器stu_delete,实现如下功能:

当按照学号删除student表中的某学生记录后,对应的该学生在sc表中的记录也被自动删除。

T-SQL语句为:

USEstuinfo

GO

CREATETRIGGERstu_DeleteONstudent

FORDELETE

AS

DELETEFROMscWHEREsno=(SELECTsnoFROMdeleted)

执行后,我们查询student表和sc表,如图7-6所示,可以看到两个表中均存在学号为20070102的学生记录。

在student表中执行数据删除语句:

DELETEFROMstudentWHEREsno='20070102'

执行结果如图7-7所示,student表中有一行受影响而sc表中有三行数据受影响。

说明设定的触发器被触发,sc表中的相应数据被自动删除。

18、说明变量的分类及各类变量的特点。

答:

在SQL中,我们常常使用临时表来存储临时结果,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,我们可以考虑使用变量,另外,当一个SQL语句中的某些元素经常变化时,比如选择条件,也可以使用变量。

变量分为局部变量和全局变量。

在SQLServer2008系统中,变量的命名规则如下:

●第一个字符必须是字母、数字、下画线或@符号。

需要注意的是,符号“@”开头的变量表示局部变量、符号“@@”开头的变量表示全局变量。

●变量名不能是T-SQL语言的系统保留字(如IF、ELSE、CONTINUE等),包括大写和小写形式。

变量名中不允许出现空格或其他特殊字符

19、约束的作用和类型是什么?

答:

答:

在SQLServer2008中,共有6种约束:

主键约束(primarykeyconstraint)、唯一性约束(uniqueconstraint)、检查约束(checkconstraint)、默认约束(defaultconstraint)、外部键约束(foreignkeyconstraint)和空值(NULL)约束。

20、DEFAULE约束的特点是什么?

答:

默认约束指定在插入操作中如果没有提供输入值时,则SQLServer系统会自动为该列指定一个值。

默认约束可以包括常量、函数、不带变元的内建函数或者空值。

使用默认约束时,应该注意以下几点:

每个字段只能定义一个默认约束;如果定义的默认值长于其对应字段的允许长度,那么输入到表中的默认值将被截断;不能为带有IDENTITY属性或者数据类型为timestamp的字段添加默认约束;如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。

自定义函数:

表值函数和标量值函数,表值函数又包括内联表值函数和多语句表值函数。

内联表值函数:

返回值为可更新表。

如果用户自定义函数包含单个select语句且该语句可以更新,则该函数返回的表也可以更新。

多语句表值函数:

返回值为不可更新表。

如果用户自定义函数包含多个select语句,则该函数返回的表不可更新。

标量函数:

返回值为标量值

事物的概念:

事务是由对数据库的若干操作组成的一个逻辑工作单元,这些操作要么都执行,要么都不执行,是一个不可分割的整体。

事务用这种方式保证数据满足并发性和完整性的要求。

使用事务可以避免有的语句被执行,而另外一些语句没有被执行,从而造成数据的不一致。

事务的特性:

原子性,一致性,隔离性,持久性,简称ACID,系统默认事务自动提交(比如建表,插入),一个事务包括多个操作。

使用事务时的考虑:

1、事务应该尽可能短2、避免事务嵌套

游标的使用步骤:

(1)、声明游标

(2)、打开游标(3)、读取数据(4)、关闭游标(5)、释放游标五个步骤中前四个是必须的。

锁的类别:

1、共享锁2、更新锁3、排他锁4、意向锁5、架构锁

6、大容量更新锁

truncate和delete的区别:

使用truncatetable删除了指定表中的所有行。

但表的结构及其列、约束、索引等保持不变,二新行标识所用的计数值重置为该列的初始值。

如果要保留标识计数值,要使用delete语句。

Truncatetable在功能上与不带where子句delete语句相同,二者均删除表中的全部行。

但truncate比delete速度快,delete语句每次删除一行。

对于由外键约束引用的表不能使用truncatetable删除数据,应使用不带外where子句的delete语句。

Truncatetable也不能用于参与了索引视图的表。

求和:

declare@sumint,@iint

set@sum=0

set@i=0

while(@i<=100)

begin

set@sum=@sum+@i

set@i=@i+1

end

print@sum

print@i

2、declare@sumint,@iint

set@sum=0

set@i=0

addr:

if(@i<=100)

begin

set@sum=@sum+@i

set@i=@i+1

gotoaddr

 

end

print@sum

print@i

存储过程:

createPROCEDUREstu11

@snamechar(10)

as

begin

select*fromstudentwheresnamelike'%'+rtrim(@sname)+'%';

 

end

go

execstu11'张'

 

2、

2.1(内联表值函数函数)

CREATEFUNCTIONmyfun

RETURNSTABLE

AS

RETURN

--(该函数中select只可以有一个)

select*fromstudent

 

GO

select*frommyfun();

2.2、CreateFUNCTION[dbo].[stu4]

@xhnchar(10)

RETURNSTABLE

AS

RETURN

SELECT*fromstudentwheresnolike'%'+rtrim(@xh)+'%'

select*fromstu4('2007001')

4、多语句(无参有参数)

4.1alterFUNCTION[dbo].[f1]

RETURNS@tTABLE

xhnchar(10)primarykey,

xmnchar(10)

AS

BEGIN

insert@t

selectsno,snamefromstudent

RETURN

END

select*fromf1()

4.2CreateFUNCTION[dbo].[f1]

@xmnchar(10)

RETURNS@tTABLE

xhnchar(10)primarykey,

xmnchar(10)

AS

BEGIN

insert@t

selectsno,snamefromstudentwheresnamelike'%'+rtrim(@xm)+'%';

RETURN

END

 

select*fromf1('a')

5、标量函数

CreateFUNCTION[dbo].[APlusB]

@aint,@bint

RETURNSint

AS

BEGIN

declare@sumint

set@sum=0

set@sum=@a+@b

return@sum

END

 

selectdbo.APlusB(1,2)

6、1.createtriggerinsert_stu

onstudent

forinsert

as

declare@namevarchar(100)

select@name=snamefrominserted

if(@name='张三')

rollbacktransaction

insertintostudentvalues(2,'张三')

2.--deleted更新前的信息,inserted更新后的信息

createtriggerupdate_stu

onstudent

forupdate

as

select*fromdeleted;

select*frominserted;

updatestudentsetsname='张'wheresname='张三'

--insteadof

altertriggerinstead_stu

onstudent

insteadofinsert

as

print'插入操作没替换'

insertintostudentvalues('001','冯巩')

3.--DDL触发器

createtriggerDropTable

ondatabase

fordrop_table,alter_table,create_table,drop_view,create_view

as

print'你正在创建,删除或修改表'

altertabletest1

dropcolumnid

标量值函数:

1到100求和

createfunctionsun

()

returnsint

as

begin

declare@bint,@sumint

set@sum=0

set@b=1

while(@b<=100)

begin

set@sum=@sum+@b

set@b=@b+1

end

return@sum

end

selectdbo.sun()

视图操作:

createviewss

as

select*

fromstudent

go

select*fromss

createuniqueindexpp

ons123(sname)

--删除索引(表明.索引名)

dropindex表明.索引名

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

当前位置:首页 > 自然科学

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

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