mysql中的键和索引关系

  

下面一起来了解下mysql中的键和索引关系,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中的键和索引关系这篇短内容是你想要的。

一、主键索引关系

1。主键:主键的唯一作用就是唯一标识表中的某一行数据。分为单一主键和联合主键:
单一主键:只用一列就能唯一标识一行。
联合主键:当使用一列已经不能唯一标示一行的时候,就要采用多列唯一标识一行,就是联合主键。联合主健多个字段不能同时相同

2。索引:索引的作用就是提高数据的检索速度,分为单一索引和联合索引:
单一索引:只是用某一列数据作为索引,默认是指数索引,这一列可以包含重复数据,如果某一列不存在重复数据最好设置成独特的形式的索引,比指数的索引速度更快,在文本数据上要使用全文索引。
联合索引:为了更进一步提高检索速度,每次检索都需要用多列同时进行时,就可以把这多列设为联合索引,提高索引速度,根据多列是否唯一,也分为指数索引和独特的索引。
联合索引的使用必须注意:不能垮字段使用,比如a b c联合索引只有一个ab | | abc才能用上联合索引字段.

3 .主键一定是索引,但是索引不一定是主键,一个表只能有一个主键或联合主键,但是可以有多个索引。
主键字段必须不能为空,但是索引字段可以为空。

二、外键和主健的关系

1。外键就是让表中字段的值在参照表中的字段中选择的一种约束标示
2。创建外键的条件
被参照字段必须是主键
参照字段和被参照字段必须是相同的数据类型
表的储存引擎必须是innodb

三、语法格式

1。创建主键的命令格式

 1.1。在创建表时创建主健
  创建表的表名(字段列表、主键(需要设置成主健的字段名)auto_increment);,# auto_increment是需要将主健字段设置成自动增长的关键字,如果主健不是整数类型或者不需要自动增长的时候不需要该关键字;当需要设置联合主键时,多个需要设置成主健的字段名之间用逗号隔开,而且不能使用自动增长”
  或者
  
  创建表的表名(主健字段字段类型主键auto_increment字段列表);#此方法在创建联合主健时不可用
  1.2。在已经创建好的表上创建主健(如果该表中已经存在数据,且数据违反了主键约束,则无法创建主健,需要解决数据冲突后再创建)
  改变表的表名添加主键(需要设置成主健的字段名)auto_increment; 

2。创建外键的命令格式

 2.1。在创建表时创建外键(满足创建外键的条件下)
  创建表的表名(字段列表,外键(需要创建外键约束的字段)引用被参照表的表名(被参照表的被参照字段)对级联更新删除级联)引擎=innodb;
  如果外键需要具有唯一标示的时候还可以在外键上加上主健约束
  2.2。在已经存在的表中创建外键
  改变表的表名添加外键(字段名)引用参考表名(参考字段名)更新阶式级联删除)引擎=innodb; 

3。创建索引的命令格式

 3.1。创建表的时候创建索引(索引可以有多个,在以下示例中添加的是两个)
  创建表的表名(字段列表,索引(已经存在字段名),指数(已经存在的字段名));#如果是联合索引的多个已经存在字段名用,隔开,记住不能跨字段设置联合索引
  默认的索引名和字段名相同
  3.2。把已经存在的表中的字段设置为索引字段
  创建索引索引名称,在表名(字段名)
  索引名可以自己命名,一般使用字段名作为索引名

4。创建唯一索引的命令格式和普通索引的格式相似只需要保证字段记录的唯一性就可以使用独特的关键字

看完mysql中的键和索引关系这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

  

mysql中的键和索引关系