数据库系统原理第三章-GW_第1页
数据库系统原理第三章-GW_第2页
数据库系统原理第三章-GW_第3页
数据库系统原理第三章-GW_第4页
数据库系统原理第三章-GW_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章:章: SQLSQL语言基础及数据定义功能语言基础及数据定义功能 l3.1 SQL3.1 SQL语言概述语言概述 l3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l3.3 3.3 数据定义功能数据定义功能 l3.4 3.4 索引索引 3.1 SQL3.1 SQL语言概述语言概述 lSQL(Structured Query Language)是)是 用户操作关系数据库的通用语言。用户操作关系数据库的通用语言。 l它包含数据定义、数据查询、数据操作它包含数据定义、数据查询、数据操作 和数据控制等与数据库有关的全部功能。和数据控制等与数据库有关的全部功能。 lSQL已经成

2、为关系数据库的标准语言,已经成为关系数据库的标准语言, 现在所有的关系数据库管理系统都支持现在所有的关系数据库管理系统都支持 SQL。 l3.1.1 SQL3.1.1 SQL语言的发展语言的发展 l3.1.2 SQL3.1.2 SQL语言的特点语言的特点 l3.1.3 SQL3.1.3 SQL语言功能概述语言功能概述 3.1 SQL3.1 SQL语言概述语言概述 l3.1.1 SQL3.1.1 SQL语言的发展语言的发展 19861986年年1010月由美国月由美国ANSI ANSI 公布最早的公布最早的SQLSQL标准。标准。 19891989年年4 4月,月,ISOISO提出了具备完整性特

3、征的提出了具备完整性特征的 SQLSQL,称为,称为SQL-89SQL-89(SQL1)SQL1)。 19921992年年1111月,月,ISOISO又公布了新的又公布了新的SQLSQL标准,称标准,称 为为SQL-92SQL-92(以上均为关系形式)(以上均为关系形式) (SQL2) SQL2) 。 19991999年颁布年颁布SQL-99SQL-99(SQL3) SQL3) ,是,是SQL92SQL92的扩的扩 展。展。 3.1 SQL3.1 SQL语言概述语言概述 l3.1.2 SQL3.1.2 SQL语言的特点语言的特点 1. 1. 一体化一体化 2. 2. 高度非过程化高度非过程化

4、3. 3. 简洁简洁 4. 4. 使用方式多样使用方式多样 3.1 SQL3.1 SQL语言概述语言概述 l3.1.3 SQL3.1.3 SQL语言功能概述语言功能概述 四部分:数据定义功能、数据控制功能、数据查询四部分:数据定义功能、数据控制功能、数据查询 功能和数据操纵功能。功能和数据操纵功能。 SQL功能功能命令动词命令动词 数据查询数据查询SELECT 数据定义数据定义 CREATE、DROP、ALTER 数据操纵数据操纵 INSERT、UPDATE、DELETE 数据控制数据控制 GRANT、REVOKE 3.1 SQL3.1 SQL语言概述语言概述 3.2 SQL3.2 SQL语言

5、支持的数据类型语言支持的数据类型 l数值型数值型 l字符串型字符串型 l日期时间型日期时间型 l货币型货币型 l数值型数值型 准确型准确型 整数整数 Bigint: 8字节,字节, Int:4字节字节 Smallint:2字节,字节, Tinyint:1字节字节 Bit:1位,存储位,存储1或或0 小数小数 Numeric(p,q)或)或Decimal(p,q),), 其中:其中:p为数字位长度,为数字位长度,q:小数位长度。:小数位长度。 近似型近似型 Float:8字节字节 Real:4字节字节 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 3.2 SQL3.2 SQL

6、语言支持的数据类型语言支持的数据类型 l字符串型字符串型 普通编码字符串类型普通编码字符串类型 统一字符编码字符串类型统一字符编码字符串类型 二进制字符串类型二进制字符串类型 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l普通编码字符串类型普通编码字符串类型 CharChar(n n): :定长存储,定长存储,n=8000 n=8000 VarcharVarchar(n n):不定长存储(按实际长:不定长存储(按实际长 度存储),长度最大不超过度存储),长度最大不超过n , n=8000 n , n=8000 注:注:n n 为字符个数为字符个数 TextText:存储大

7、于:存储大于80008000字节的文本字节的文本 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l统一字符编码字符串类型统一字符编码字符串类型 ncharnchar(n n): :定长存储,定长存储,n=4000 n=4000 nvarcharnvarchar(n n):不定长存储,长度最大:不定长存储,长度最大 不超过不超过n , n=4000 n , n=4000 ntextntext:存储大于:存储大于80008000字节的文本字节的文本 特点:每个字符占两个字节特点:每个字符占两个字节 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l二进制字符串

8、类型二进制字符串类型 Binary(nBinary(n) ):固定长度,:固定长度,n = 8000n = 8000。 Varbinary(nVarbinary(n) ):可变长度,:可变长度,n n 8000 8000 。 注:注:n n为二进制数据的字节数为二进制数据的字节数 imageimage:大容量、可变长二进制字符数据,:大容量、可变长二进制字符数据, 可用于存储文件。可用于存储文件。 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l日期时间型 DatetimeDatetime:8 8字节,年月日时分秒毫秒字节,年月日时分秒毫秒 (例:(例:2008/02/03

9、 10:30:00.000 2008/02/03 10:30:00.000 ) SmallDateTimeSmallDateTime:4 4字节,年月日时分字节,年月日时分 (例:(例:2008/02/03 10:30:00 2008/02/03 10:30:00 ) 3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 l货币类型货币类型 MoneyMoney:8 8个字节,精确到货币单位的千个字节,精确到货币单位的千 分之十。分之十。 SmallmoneySmallmoney:4 4个字节,精确到货币单位个字节,精确到货币单位 的千分之十。的千分之十。 限制到小数点后限制到小数

10、点后 4 4 位。位。 可以带有适当的货币符号。例如,可以带有适当的货币符号。例如,100 100 英镑可表示为英镑可表示为 100100。 3.3 3.3 数据定义功能数据定义功能 l3.3.1 3.3.1 基本表基本表 l3.3.2 3.3.2 数据完整性约束数据完整性约束 3.3 3.3 数据定义功能数据定义功能 l3.3.1 基本表基本表 定义基本表定义基本表 修改基本表修改基本表 删除基本表删除基本表 3.3 3.3 数据定义功能数据定义功能 l定义基本表定义基本表 使用使用CREATE TABLE语句实现,语句实现, 语法格式:语法格式: CREATE TABLE ( 列级完整性约

11、束定义列级完整性约束定义 , 列级完整性约束定义列级完整性约束定义 , 表级完整性约束定义表级完整性约束定义 ) 3.3 3.3 数据定义功能数据定义功能 l在列级完整性约束定义处可以定义的约束在列级完整性约束定义处可以定义的约束 NOT NULL:限制列取值非空。 DEFAULT:给定列的默认值。 UNIQUE:限制列取值不重。 CHECK:限制列的取值范围。 PRIMARY KEY:指定本列为主键。 FOREIGN KEY:定义本列为引用其他表的外键。 使用形式为: FOREIGN KEY()REFERENCES () 3.3 3.3 数据定义功能数据定义功能 l几点说明几点说明 NOT

12、NULL和和DEFAULT只能是列级完整性约束;只能是列级完整性约束; 其他约束均可在表级完整性约束处定义。其他约束均可在表级完整性约束处定义。 注意以下几点:注意以下几点: 如果如果CHECK约束是定义多列之间的取值约束,则只能在约束是定义多列之间的取值约束,则只能在 表级完整性约束处定义;表级完整性约束处定义; 如果表的如果表的主键主键由多个列组成,则也只能在表级完整性约束由多个列组成,则也只能在表级完整性约束 处定义,并将主键列用括号括起来,即:处定义,并将主键列用括号括起来,即:PRIMARY KEY (列(列1,列,列2 );); 如果在表级完整性约束处定义如果在表级完整性约束处定义

13、外键外键,则,则“FOREIGN KEY ()”部分不能省。部分不能省。 3.3 3.3 数据定义功能数据定义功能 l约束定义约束定义 列取值非空约束列取值非空约束 NOT NULL 例例: sname char(10) NOT NULL 3.3 3.3 数据定义功能数据定义功能 l约束定义约束定义 表主键约束 在定义列时定义主键(仅用于单列主键)在定义列时定义主键(仅用于单列主键) 列定义列定义 PRIMARY KEY 例:例: SNO char(7) PRIMARY KEY 在定义完列时定义主键(用于单列或多列主在定义完列时定义主键(用于单列或多列主 键)键) PRIMARY KEY ()

14、 例:例: PRIMARY KEY(SNO) PRIMARY KEY(SNO,CNO) 3.3 3.3 数据定义功能数据定义功能 l约束定义约束定义 外键引用约束外键引用约束 指明本表外键列引用的表及表中的主键列。指明本表外键列引用的表及表中的主键列。 FOREIGN KEY () REFERENCES () 例:例: FOREIGN KEY (sno) REFERENCES 学生表(学生表(sno) 3.3 3.3 数据定义功能数据定义功能 lStudent表结构表结构 列名列名含义含义数据类型数据类型约束约束 Sno学号CHAR(7)主码 Sname姓名NCHAR(5)非空 Ssex性别N

15、CHAR(1) Sage年龄TINYINT Sdept所在系NVARCHAR(20) 3.3 3.3 数据定义功能数据定义功能 l定义定义Student表表 CREATE TABLE Student ( Sno CHAR(7) PRIMARY KEY, Sname NCHAR(5) NOT NULL, Ssex NCHAR(1), Sage TINYINT, Sdept NVARCHAR(20) ) 3.3 3.3 数据定义功能数据定义功能 lCourse表结构表结构 列列 名名含含 义义数数 据据 类类 型型约约 束束 Cno课程号CHAR(6)主键 Cname课程名NVARCHAR(20)

16、非空 Ccredit学分TINYINT Semster学期TINYINT 3.3 3.3 数据定义功能数据定义功能 l定义定义Course表表 CREATE TABLE Course ( Cno CHAR(6) PRIMARY KEY, Cname NVARCHAR(20) NOT NULL, Ccredit TINYINT, Semester TINYINT ) 3.3 3.3 数据定义功能数据定义功能 lSC表结构表结构 列列 名名 含含 义义数数 据据 类类 型型约约 束束 Sno学号CHAR(7) 主键, 引用Student的外键 Cno课程号 CHAR(6) 主键, 引用Course

17、的外键 Grade 成绩TINYINT 3.3 3.3 数据定义功能数据定义功能 l定义定义SC表表 CREATE TABLE SC ( Sno CHAR(7) NOT NULL, Cno CHAR(6) NOT NULL, Grade TINYINT, PRIMARY KEY ( Sno, Cno ), FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) ) 3.3 3.3 数据定义功能数据定义功能 l修改基本表结构修改基本表结构 在定义基本表之后,如果需求

18、有变化,在定义基本表之后,如果需求有变化, 比如添加列、删除列或修改列定义,可以比如添加列、删除列或修改列定义,可以 使用使用ALTER TABLE语句实现。语句实现。 ALTER TABLE语句可以对表添加列、删语句可以对表添加列、删 除列、修改列的定义,也可以添加和删除除列、修改列的定义,也可以添加和删除 约束。约束。 3.3 3.3 数据定义功能数据定义功能 lALTER TABLE语句语法语句语法 ALTER TABLE ALTER COLUMN | ADD 约束约束 | DROP COLUMN | ADD constraint 约束名约束名 约束定义约束定义 | DROP const

19、raint 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例1为为SC表添加表添加“修课类别修课类别”列,此列列,此列 的列名为的列名为Type,数据类型为,数据类型为NCHAR(2), 允许空允许空。 ALTER TABLE SC ADD Type NCHAR(2) NULL 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例2将新添加的将新添加的Type列的数据类型改为列的数据类型改为 NCHAR(4)。 ALTER TABLE SC ALTER COLUMN Type NCHAR(4) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例3.删除删除SC表的表的T

20、ype列。列。 ALTER TABLE SC DROP COLUMN Type 3.3 3.3 数据定义功能数据定义功能 l删除基本表删除基本表 当确信不再需要某个表时,可以将其删除。当确信不再需要某个表时,可以将其删除。 删除表的语句格式为:删除表的语句格式为: DROP TABLE , 例:删除例:删除test表:表: DROP TABLE test 3.3 3.3 数据定义功能数据定义功能 l3.3.2 数据完整性约束数据完整性约束 完整性约束条件的作用对象完整性约束条件的作用对象 实现数据完整性实现数据完整性 3.3 3.3 数据定义功能数据定义功能 l完整性约束条件的作用对象完整性约

21、束条件的作用对象 完整性检查是围绕完整性约束条件进行完整性检查是围绕完整性约束条件进行 的,因此,完整性约束条件是完整性控制的,因此,完整性约束条件是完整性控制 机制的核心。完整性约束条件的作用对象机制的核心。完整性约束条件的作用对象 可以是表、元组和列。可以是表、元组和列。 列级约束列级约束 元组约束元组约束 关系约束关系约束 3.3 3.3 数据定义功能数据定义功能 l列级约束列级约束 列级约束主要是对列的类型、取值范围、精度等的列级约束主要是对列的类型、取值范围、精度等的 约束,具体包括:约束,具体包括: 对对数据类型数据类型的约束:包括数据类型、长度、精度等。的约束:包括数据类型、长度

22、、精度等。 对对数据格式数据格式的约束:如规定学号的前两位表示学生的约束:如规定学号的前两位表示学生 的入学年份,第三位表示系的编号,第四位表示专的入学年份,第三位表示系的编号,第四位表示专 业编号,第五位代表班的编号等等。业编号,第五位代表班的编号等等。 对对取值范围取值范围的约束:如学生的成绩取值范围为的约束:如学生的成绩取值范围为0 100。 对对空值空值的约束。的约束。 3.3 3.3 数据定义功能数据定义功能 l元组约束元组约束 元组的约束是元组中各个字段之间的联系的元组的约束是元组中各个字段之间的联系的 约束,约束, 如:如: 开始日期小于结束日期开始日期小于结束日期 某项工作的最

23、低工资小于最高工资某项工作的最低工资小于最高工资 3.3 3.3 数据定义功能数据定义功能 l关系约束关系约束 指若干元组之间、关系之间的联系的约束。指若干元组之间、关系之间的联系的约束。 比如比如: 学生表中学号的取值不能重复也不能取空值,学生表中学号的取值不能重复也不能取空值, 学生修课表中的学号的取值受学生表中的学号取学生修课表中的学号的取值受学生表中的学号取 值的约束值的约束 3.3 3.3 数据定义功能数据定义功能 l实现数据完整性实现数据完整性 实现数据完整性一般在服务器端完成。实现数据完整性一般在服务器端完成。 在服务器端实现数据完整性的方法主要有两种。在服务器端实现数据完整性的

24、方法主要有两种。 一种是在定义表时声明数据完整性,采用这种方一种是在定义表时声明数据完整性,采用这种方 法时可以在定义表的同时定义完整性约束,也可法时可以在定义表的同时定义完整性约束,也可 以在定义表之后添加这些约束。以在定义表之后添加这些约束。 一种是在服务器端编写触发器来实现数据完整性。一种是在服务器端编写触发器来实现数据完整性。 3.3 3.3 数据定义功能数据定义功能 l实现约束实现约束 1. PRIMARY KEY 约束约束 2. UNIQUE 约束约束 3. FOREIGN KEY 约束约束 4. DEFAULT 约束约束 5. CHECK 约束约束 3.3 3.3 数据定义功能数

25、据定义功能 l工作表结构工作表结构 CREATE TABLE 工作表工作表( 工作编号工作编号 CHAR(6) NOT NULL, 最低工资最低工资 NUMERIC(7,2), 最高工资最高工资 NUMERIC(7,2) ) 3.3 3.3 数据定义功能数据定义功能 l职工表结构职工表结构 CREATE TABLE 职工表职工表( 职工编号职工编号 CHAR(7) NOT NULL, 姓名姓名 NCHAR(5) NOT NULL, 工作编号工作编号 CHAR(6), 工资工资 NUMERIC(7,2), 电话号码电话号码 CHAR(8) ) 3.3 3.3 数据定义功能数据定义功能 lPRIM

26、ARY KEY 约束约束 保证实体完整性。保证实体完整性。 每个表有且只有一个每个表有且只有一个PRIMARY KEY 约束。约束。 格式:格式: ALTER TABLE 表名表名 ADD CONSTAINT 约束名约束名 PRIMARY KEY ( 列名列名 , n ) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例:对职工表和工作表分别添加主键约束。例:对职工表和工作表分别添加主键约束。 ALTER TABLE 职工表 ADD CONSTRAINT PK_EMP PRIMARY KEY (职工编号) ALTER TABLE 工作表 ADD CONSTRAINT PK_JOB PR

27、IMARY KEY (工作编号) 3.3 3.3 数据定义功能数据定义功能 lUNIQUE 约束约束 确保在非主键列中不输入重复值。确保在非主键列中不输入重复值。 应用在客观具有唯一性质的列上,如身份证应用在客观具有唯一性质的列上,如身份证 号、社会保险号等。号、社会保险号等。 注意事项:注意事项: 允许有一个空值。允许有一个空值。 在一个表中可以定义多个在一个表中可以定义多个UNIQUE约束。约束。 可以在一个列或多个列上定义可以在一个列或多个列上定义UNIQUE约束。约束。 3.3 3.3 数据定义功能数据定义功能 l添加添加UNIQUE约束约束 语法格式:语法格式: ALTER TABL

28、E 表名表名 ADD CONSTRAINT 约束名约束名 UNIQUE( , n ) 为职工表的为职工表的“电话号码电话号码”列添加列添加UNIQUE约约 束。束。 ALTER TABLE 职工表职工表 ADD CONSTRAINT UK_SID UNIQUE(电话号码)(电话号码) 3.3 3.3 数据定义功能数据定义功能 lFOREIGN KEY约束约束 实现了参照完整性。实现了参照完整性。 外键所引用的列必须是有外键所引用的列必须是有PRIMARY KEY约约 束或束或UNIQUE约束的列。约束的列。 格式:格式: ALTER TABLE ALTER TABLE 表名表名 ADD CON

29、STRAINT ADD CONSTRAINT 约束名约束名 FOREIGN KEY FOREIGN KEY( ) REFERENCES REFERENCES 引用表名(引用表名( ) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例为职工表的工作编号添加外键引用约束,例为职工表的工作编号添加外键引用约束, 此列引用工作表的工作编号列。此列引用工作表的工作编号列。 ALTER TABLE ALTER TABLE 职工表职工表 ADD CONSTRAINT FK_job_idADD CONSTRAINT FK_job_id FOREIGN KEY FOREIGN KEY(工作编号)(工作编

30、号) REFERENCES REFERENCES 工作表(工作编号)工作表(工作编号) 3.3 3.3 数据定义功能数据定义功能 lDEFAULT约束约束 用于提供列的默认值,用于提供列的默认值, 一个列只能有一个默认值约束,一个默认值一个列只能有一个默认值约束,一个默认值 约束只能用在一个列上。约束只能用在一个列上。 在向表中插入数据时系统检查在向表中插入数据时系统检查DEFAULT约约 束。束。 格式:格式: ALTER TABLE 表名表名 ADD CONSTRAINT 约束名约束名 DEFAULT 默认值默认值 FOR 列名列名 3.3 3.3 数据定义功能数据定义功能 l示例示例 例

31、定义职工表的工资的默认值为例定义职工表的工资的默认值为10001000。 ALTER TABLE ALTER TABLE 职工表职工表 ADD CONSTRAINT DF_SALARYADD CONSTRAINT DF_SALARY DEFAULT 1000 FOR DEFAULT 1000 FOR 工资工资 3.3 3.3 数据定义功能数据定义功能 lCHECK约束约束 用于将列的取值限制在指定的范围内,使数用于将列的取值限制在指定的范围内,使数 据库中存放的值都是有意义的。据库中存放的值都是有意义的。 在执行在执行INSERT和和UPDATE语句时系统自动语句时系统自动 检查检查CHECK

32、约束。约束。 可约束同一个表中多个列之间的取值关系。可约束同一个表中多个列之间的取值关系。 格式:格式: ALTER TABLE 表名表名 ADD CONSTRAINT 约束名约束名 CHECK (逻辑表达式)(逻辑表达式) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例1 1添加限制最工作表中低工资必须大于添加限制最工作表中低工资必须大于 等于等于800800元的约束。元的约束。 ALTER TABLE 工作表工作表 ADD CONSTRAINT CHK_Salary CHECK ( 最低工资最低工资 = 800 ) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例2

33、2限制工作表的最高工资大于等于最低限制工作表的最高工资大于等于最低 工资的约束工资的约束 。 ALTER TABLE ALTER TABLE 工作表工作表 ADD CONSTRAINT CHK_Job_SalaryADD CONSTRAINT CHK_Job_Salary CHECK ( CHECK ( 最高工资最高工资 = = 最低工资最低工资 ) ) 3.3 3.3 数据定义功能数据定义功能 l示例示例 例例3. 添加限制职工表的电话号码的每添加限制职工表的电话号码的每1 1位的位的 取值均是取值均是0 09 9的数字的约束。的数字的约束。 ALTER TABLE 职工表职工表 ADD C

34、ONSTRAINT CHK_Emp_Phone CHECK (电话号码电话号码 LIKE 0-90-90-90-90-90- 90-90-9) 3.3 3.3 数据定义功能数据定义功能 l工作表的完整定义工作表的完整定义 CREATE TABLE 工作表工作表( 工作编号工作编号 CHAR(6) NOT NULL PRIMARY KEY, 最低工资最低工资 NUMERIC(7,2) CHECK (最低工资最低工资 = 800), 最高工资最高工资 NUMERIC(7,2), CHECK (最高工资最高工资 = 最低工资最低工资) ) 3.3 3.3 数据定义功能数据定义功能 l职工表的完整定义

35、职工表的完整定义 CREATE TABLE 职工表职工表( 职工编号职工编号 CHAR(7) NOT NULL PRIMARY KEY, 姓名姓名 NCHAR(5) NOT NULL, 工作编号工作编号 CHAR(6), 工资工资 NUMERIC(7,2) DEFAULT 1000, 电话号码电话号码 CHAR(8) UNIQUE , CHECK (电话号码电话号码 LIKE 0-90-90-90-90-90-90-90-9), FOREIGN KEY(工作编号工作编号) REFERENCES工作表工作表(工作编号工作编号) ) 3.4 3.4 索引索引 l3.4.1 基本概念 l3.4.2

36、索引分类 l3.4.3 创建和删除索引 3.4 3.4 索引索引 l基本概念 索引与图书中的目录类似。索引与图书中的目录类似。 在数据库中,索引使对数据的查找不需要对整个表在数据库中,索引使对数据的查找不需要对整个表 进行扫描,就可以在其中找到所需数据。进行扫描,就可以在其中找到所需数据。 图书的目录注明了各部分内容所对应的页码,而数图书的目录注明了各部分内容所对应的页码,而数 据库中的索引是一个表中所包含的值的列表,其中据库中的索引是一个表中所包含的值的列表,其中 注明了表中的各行数据所在的存储位置。注明了表中的各行数据所在的存储位置。 可以为表中的单个列建立索引,也可以为一组列建可以为表中

37、的单个列建立索引,也可以为一组列建 立索引。立索引。 索引由索引项组成,索引项由来自表中每一行的一索引由索引项组成,索引项由来自表中每一行的一 个或多个列(称为索引关键字)组成。个或多个列(称为索引关键字)组成。 当在多个列上建立索引时,系统按索引列出现的先当在多个列上建立索引时,系统按索引列出现的先 后顺序对索引列进行排序。后顺序对索引列进行排序。 索引及数据间对应关系索引及数据间对应关系 3.4 3.4 索引索引 l索引分类索引分类 聚集索引聚集索引 数据按索引列进行物理排序,数据按索引列进行物理排序, 类似于电话号码簿。类似于电话号码簿。 对经常要搜索连续范围的值的列特别有效。对经常要搜

38、索连续范围的值的列特别有效。 非聚集索引非聚集索引 与图书的目录类似。与图书的目录类似。 数据存储在一个地方,索引存储在另一个地方,数据存储在一个地方,索引存储在另一个地方, 索引带有指向数据存储位置的指针。索引带有指向数据存储位置的指针。 索引中的索引项按索引键值顺序存储。索引中的索引项按索引键值顺序存储。 3.4 3.4 索引索引 非聚集索引可以在有聚集索引的表和无聚集非聚集索引可以在有聚集索引的表和无聚集 索引的表上定义。索引的表上定义。 可以在一个表上建立多个非聚集索引(可以在一个表上建立多个非聚集索引(SQL Server 2000支持在一个表上最多建立支持在一个表上最多建立249个个 非聚集索引)。非聚集索引)。 可以为在表中查找数据时常用的每个列创建可以为在表中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论