- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第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语句中的某列按照
文档评论(0)