码迷,mamicode.com
首页 > 其他好文 > 详细

第四课(难点)

时间:2019-11-24 15:48:56      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:作用   rem   isa   关于   执行   默认值   book   生成   ati   

表的约束

技术图片

 

1.主键约束是通过PRIMARY KEY定义的,它可以唯一标识表中的记录,分为单字段主键、多字段主键。

 

 (1)单字段主键指的是有一个字段构成的主键其基本格式:字段名 数据类型 PRIMARY KEY;,执行结果如下:

技术图片

 

执行完每一个语句之后,都需要查看数据表,执行结果如下:

技术图片

 

(2)多字段主键指的是多个字段组合而成的主键,其基本格式:PRIMARY KEY(字段名1,字段名2,......,字段名n);,执行结果如下:

技术图片

/*每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段不能有重复值且不能为NULL值*/

2.非空约束指的是字段的值不能为NULL,是通过NOT NULL定义的,其基本格式:字段名 数据类型 NOT NULL;,执行结果如下:

技术图片

 

/*在同一个数据表中可以定义多个非空字段*/

3.唯一约束用于保证数据表中字段的唯一性(即表中字段的值不能重复出现)。唯一约束是通过UNIQUE定义的,其基本格式:字段名 数据类型 UNIQN;,执行结果如下:

技术图片技术图片

 

4.默认约束用于给数据表中的字段指定默认值,是通过DEFAULT关键字定义的,其基本格式:字段名 数据类型 DEFAULT 默认值;,执行结果如下:

技术图片

 

在上述中,AUTO_INCREMENT约束是实现表中插入的新记录自动生成唯一的ID,其字段可以是任何整数类型;在默认情况下,该字段的值是从1开始自增的,其基本格式:字段名 数据类型 AUTO_INCREMENT;

 

 

索引

数据库的索引好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的一种结构,其作用是提高表中数据的查询速度

 

创建索引的方式有三种,具体如下:

一、创建表的时候创建索引

CREATE TABLE 表名(字段名 数据类型[完整性约束条件],

                                      字段名 数据类型[完整性约束条件],

                                       ......

                                      字段名 数据类型[UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY[别名](字段1[(长度)])[ASC|DESC])

                                       );

 关于上述语法的相关解释具体如下:

• UNIQUE:可选参数,表示唯一性约束

• FULLTEXT:可选参数,表示全文约束

• SPATIAL:可选参数,表示空间约束

• INDEX和KEY:用来表示字段的索引,二者选一即可

• 别名:可选参数,表示创建的索引的名称       

• 字段名1:指定索引对应字段的名称

• 长度:可选参数,用于表示索引的长度

• ASC和DESC:可选参数,其中,ASC表示升序排列,DESC表示降序排列

MySQL中的索引分为很多种,具体如下:

1.普通索引

 技术图片

 上述语句执行后,使用SHOW CREATE TABLE语句查看表的结构,执行结果如下:

技术图片

为了查看索引是否被使用,可以用EXPLAIN语句查看,其基本格式:

EXPLAIN SELECT*FROM t1 WHERE id=1;

2.唯一性索引

技术图片

3.全文索引

技术图片

 

4. 单列索引

技术图片

 

5.多列索引(注意的是,只有查询条件中使用这些字段中的第一个字段,多列索引才会被使用)

技术图片

 

6.空间索引(注意的是,所选的字段的值不能为空值,并且表的存储引擎为MyISAM)

 

 

技术图片

 

二、使用CREATE INDEX 语句在已经存在表上创建索引

CREATE INDEX的基本格式:CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 ON 表名(字段名[(长度)][ASC|DESC]);/*UNIQUE、FULLTEXT、SPATIAL都是可选参数,分别用于唯一性、全文、空间索引。INDEX用于指明字段为索引。

 创建一个book表

技术图片

 

创建好数据表book后,开始使用CREATE INDEX语句在已存在的数据表中创建索引,具体如下:

1.创建普通索引

基本格式:CREATE INDEX index_id ON book(id);执行结果如下:

技术图片

 

上述语句执行后,使用SHOW CREATE TABLE语句查看表的结构,执行结果如下:

技术图片

2.创建唯一性索引

基本格式:CREATE UNIQUE INDEX uniqueidx ON book(id);执行结果如下:

技术图片

 

3.创建单列索引

其基本格式:CREATE INDEX singleidx ON book(name);执行结果如下:

技术图片

4.创建多列索引

其基本格式:CREATE INDEX mulitidx ON book(name(8),sex(3));执行结果如下:

技术图片

5.创建全文索引

首先删除表book,重建创建表book,在表中的sex字段上创建全文索引。执行结果如下:

技术图片

技术图片

全文索引的基本格式:CREATE FULLTEXT INDEX fulltextidx ON book(sex);执行结果如下:

技术图片

6.创建空间索引

首先创建数据表t7,然后在g字段上创建名称为spatidx的空间索引,其格式CREATE SPATIAL  INDEX  spatidx ON t7(g);

技术图片

 三、使用ALTER TABLE 语句在已经表上创建索引

在已经存在的表中创建索引,除了用CREATE INDEX语句,还可以用ALTER TABLE 语句,其语法格式为ALTER TABLE 表名 ADD[UNIQUE|FULLTAXT|SPATIAL]INDEX 索引名(字段名[(长度)][ASC|DESC])/*UNIQUE、FULLTEXT、SPATIAL都是可选参数,分被用于唯一索引、全文索引、空间索引,ADD表示向表中添加字段*/

技术图片

 

1.创建普通索引

在表中的id字段上创建名称为index_id的普通索引,基本格式:ALTER TABLE book ADD INDEX index_id(id);执行结果如下:

技术图片

 

2.创建唯一性索引

在表中的id字段上建立一个名称为uniqueidx的唯一性索引,基本格式:ALTER TABLE book ADD UNIQUE uniqueidx(id);执行结果如下:

技术图片

3.创建单列索引

在表中的name字段上建立一个名称singleidx的单列索引,基本格式:ALTER TABLE book ADD INDEX singleidx(name(20));执行结果如下:

技术图片

 

4.创建多列索引

在表中的score和sex字段上建立一个名称为multidx的多列索引,基本格式:ALTER TABLE book ADD INDEX multidx(score(4),sex(4));执行结果如下:

技术图片

 

5.创建全文索引

删除表book,重新创建表book,在表中的name字段上创建全文索引,格式ALTER TABLE book ADD FULLTEXT INDEX fulltextidx(name);执行结果如下:

技术图片

6.创建空间索引

创建表t8,在表中space字段上创建名称为spatidx的空间索引,基本格式ALTER TABLE t8

ADD SPATIAL INDEX spatidx(space);执行结果如下:

 

技术图片

 

删除索引

删除索引的方式有两种,具体如下:

1.使用ALTER TABLE 删除索引

基本格式:ALTER TABLE 表名 DROP INDEX 字段名

删除表book中名称为fulltextidx的全文索引,执行结果如下:

技术图片

 

2.使用DROP INDEX 删除索引

基本格式:DROP INDEX 索引名 ON 表名;执行结果如下:

技术图片

 

 

 

 

 

 

第四课(难点)

标签:作用   rem   isa   关于   执行   默认值   book   生成   ati   

原文地址:https://www.cnblogs.com/yqy0407/p/11823927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!