文档详情

第3B章--索引与数据完整性约束.ppt

发布:2018-08-22约9.73千字共33页下载文档
文本预览下载声明
第5章 索引与数据完整性约束 5.1 索引 5.1.2 创建索引 5.1.2 创建索引 5.1.2 创建索引 5.1.2 创建索引 5.1.2 创建索引 5.1.2 创建索引 5.1.3 删除索引 5.1.3 删除索引 5.1.4 界面方式创建和删除索引 5.1.4 界面方式创建和删除索引 5.1.4 界面方式创建和删除索引 5.1.4 界面方式创建和删除索引 5.1.5 索引对查询的影响 5.1.6 索引的弊端 实验5.1: 索引的使用 5.2 数据完整性约束 5.2 数据完整性约束 5.2.1 主键约束 5.2.1 主键约束 5.2.1 主键约束 5.2.2 替代键约束 5.2.2 替代键约束 5.2.3 参照完整性约束 5.2.3 参照完整性约束 5.2.3 参照完整性约束 5.2.4 CHECK完整性约束 5.2.4 CHECK完整性约束 5.2.4 CHECK完整性约束 5.2.5 命名完整性约束 5.2.6 删除完整性约束 实验5.2: 数据完整性约束 如果一条INSERT、UPDATE或DELETE语句违反了完整性约束,则MySQL返回一条出错消息并且拒绝更新,一个更新可能会导致多个完整性约束的违反。在这种情况下,应用程序获取几条出错消息。为了确切地表示是违反了哪一个完整性约束,可以为每个完整性约束分配一个名字,随后,出错消息包含这个名字,从而使得消息对于应用程序更有意义。 CONSTRAINT关键字用来指定完整性约束的名字。语法格式为: CONSTRAINT [symbol] 【例5.18】 创建与例5.8中相同的XS1表,并为主键命名。 CREATE TABLE XS1 ( 学号 varchar(6) NULL, 姓名 varchar(8) NOT NULL, 出生日期 datetime NULL CONSTRAINT PRIMARY_KEY_XS1 PRIMARY KEY(姓名) ); 说明:本例中给主键姓名分配了名字PRIMARY_KEY_XS1。 * * 5.1 索引 5.2 数据完整性约束 5.1.1 索引的分类 目前大部分MySQL索引都是以B-树(BTREE)方式存储的。BTREE方式构建为包含了多个节点的一棵树。索引中的节点是存储在文件中的,所以索引也是要占用物理空间的,MySQL将一个表的索引都保存在同一个索引文件中。 如果更新表中的一个值或者向表中添加或删除一行,MySQL会自动地更新索引,因此索引树总是和表的内容保持一致。 按BTREE形式存储的主要索引类型介绍如下。 1. 普通索引(INDEX) 这是最基本的索引类型,它没有唯一性之类的限制。创建普通索引的关键字是INDEX。 2. 唯一性索引(UNIQUE) 这种索引和前面的普通索引基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须是唯一的。创建唯一性索引的关键字是UNIQUE。 3. 主键(PRIMARY KEY) 主键是一种唯一性索引,它必须指定为“PRIMARY KEY”。主键一般在创建表的时候指定,也可以通过修改表的方式加入主键。但是每个表只能有一个主键。 4. 全文索引(FULLTEXT) MySQL支持全文检索和全文索引。在MySQL中,全文索引的索引类型为FULLTEXT。全文索引只能在VARCHAR或TEXT类型的列上创建,并且只能在MyISAM表中创建。 1. 使用CREATE INDEX语句 使用CREATE INDEX语句可以在一个已有表上创建索引,一个表可以创建多个索引。 语法格式: CREATE [UNIQUE | FULLTEXT] INDEX index_name ON tbl_name (index_col_name,...) 其中,index_col_name格式为:col_name [(length)] [ASC | DESC] 说明: ● index_name:索引的名称,索引在一个表中名称必须是唯一的。 ● index_col_name:col_name表示创建索引的列名。 length表示使用列的前length个字符创建索引。使用列的一部分创建索引可以使索引文件大大减小,从而节省磁盘空间。在某些情况下,只能对列的前缀进行索引。例如,索引列的长度有一个最大上限,因此,如果索引列的长度超过了这个上限,那么就可能需要利用前缀进行索引。BLOB或TEXT列必须用前缀索引。 另外还可以规定索引按升序(ASC)还是降序(DESC)排列,默认为ASC。如果一条SELECT语句中的某列按照
显示全部
相似文档