数据库考试复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章索引
一、概念:
●索引的作用:索引能够快速访问表中的记录,提高查询速度。
●索引的组成:从表中抽取的关键字和对应的数据行在表中的页号。
●页和页号:数据表中的数据以8K为单位进行分割存储,每个8K称为页,每个页有一个
唯一的编号,称为页号。
●聚集(簇)索引
特点:索引中的关键字是有序排列的,表中数据行的存储次序和索引中键的排列次序一致;每张表只能有一个聚集索引。
●非聚集索引
特点:索引中的关键字也是有序排列的,但是表中数据的存储顺序和非索聚集引中键的排列次序无关;每张表可以有多个非聚集索引。
二、原理:
●为什么索引能加快查询的速度:
1.使用索引能减少读取磁盘的次数。
2.索引的数据结构是排序二叉树,查询效率比顺序表高。
●使用索引的代价
1.占据额外的存储空间
2.降低其他操作的效率:在表中插入、更新、删除数据时,必须同时对索引进行维护。
●索引的分类
索引分为两类:聚集索引和非聚集索引。
●自动创建的索引
在表上创建主键约束、外键约束和唯一性约束时,系统会自动创建相应的索引:
1.主键索引:主键索引是具有唯一性的聚集索引。
2.外键索引:外键索引是非聚集索引。
3.唯一性索引。
自动创建的索引不可以手动删除,只有在约束条件被删除之后,相应的索引才会被删除。
三、操作:
1.建立索引命令:
CREATE [UNIQUE][ CLUSTERED | NONCLUSTERED ]
INDEX 索引名
ON TABLE(字段名1 [,字段名2,… ])
2.删除索引
DROP INDEX 表名.索引名 [,… ]
第七章 T-SQL语言基础
一、SQL语言的特点:
SQL语言是一种面向集合的语言,每个命令的操作对象是一个或多个关系,结果也是一个关系。
SQL语言有两种运行方式:交互式运行和嵌入式运行。可独立使用,也可嵌入到宿主语言中。
●可以独立地交互式地运行,适用于终端用户和数据库管理员;
●嵌入式运行使其能够嵌入在高级语言程序中,供程序员开发时操作数据库系统。二、SQL语言的功能:
SQL语言具有四种功能:
1.数据查询(SELECT)
2.数据定义(CREATE、DROP、 ALTER)
3.数据操纵(INSERT、UPDATE、DELETE)
4.数据控制(GRANT、REVOKE、DENY)
三、Transact-SQL 语法要素:
1.批处理
使用GO语句作为批处理的标志。
批处理的特点:
(1)每个批中的代码构成一个整体,如果批中有任何语句出现了语法错误,整个批处理都不会被执行。
(2)变量的作用域也限制在同一个批处理中,在另一个批处理中无法引用之前定义的变量。
2.两种注释符
多行注释: /* 注释内容 */
单行注释: -- 注释内容
3.标识符
首字符必须是字母
其他字符可以包括字母、数字、符号
标识的第一个字符是符号时,代表特殊用途4.数据类型
(2)浮点数
(3)字符型
5.变量
Transact-SQL 中可以使用两种变量:局部变量和全局变量。
(1)局部变量
局部变量必须以@开头,而且必须先用DECLARE 命令说明后才可使用。其说明形式如下:
局部变量是用户可自定义的变量,它的作用范围仅在程序内部。
声明以后,所有的变量都被赋予初值NULL。
声明局部变量:
DECLARE @变量名数据类型[,@变量名数据类型…]
局部变量的赋值:
SELECT @局部变量= 表达式
SET @局部变量= 表达式
(2)全局变量
全局变量是SQL Server 系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用。
引用全局变量时必须以“@@”开头。
6.运算符
算术运算符
比较运算符
特别注意:在SQL中,比较运算的结果有三种:TRUE、FALSE和UNKNOWN;把一个已知量和一个未知量(NULL)进行比较时,得到的结果是UNKNOWN。要检测一个变量是否为空值,必须使用IS NULL或 IS NOT NULL进行判断。
例如:
DECLARE @test int
IF (@test is null)
PRINT '变量为空值'
ELSE
PRINT '变量不为空'
GO
字符串连接符
字符串连接运算是指使用加号(+)将两个字符串连接成一个字符串,加号作为字符串连接符。
例如:'abc' +'123'结果为'abc123'。
7.流程控制语句
BEGIN...END
B E G I N . . . E N D关键词对用来将一个S Q L语句块组织在一起,以达到一起执行的目的
它可以和许多其他的流控制关键词一起使用
语法
BEGIN
< SQL语句>
END
它必须包含在一个单独的批中
IF…ELSE
用来判别条件是否满足,接下来根据条件,执行I F语句后的代码段,或是执行E L S E后的代码段。
语法:
IF <逻辑表达式>
ELSE
IF…ELSE语句可以嵌套使用。