美文网首页
mysql中的键和索引

mysql中的键和索引

作者: 宇哥聊AI | 来源:发表于2018-02-28 20:39 被阅读50次

一、主键 索引 关系

1.主键:主键的唯一作用就是唯一标识表中的某一行数据。分为单一主键和联合主键:

单一主键:只用一列就能唯一标识一行。

联合主键:当使用一列已经不能唯一标示一行的时候,就要采用多列唯一标识一行,就是联合主键。联合主健多个字段不能同时相同

2.索引:索引的作用就是提高数据的检索速度,分为单一索引和联合索引:

单一索引:只是用某一列数据作为索引,默认是index索引,这一列可以包含重复数据;如果某一列不存在重复数据最好设置成unique形式的索引,比index的索引速度更快,在text数据上要使用fulltext索引。

联合索引:为了更进一步提高检索速度,每次检索都需要用多列同时进行时,就可以把这多列设为联合索引,提高索引速度,根据多列是否唯一,也分为index索引和unique索引。

联合索引的使用必须注意:不能垮字段使用,比如a b c联合索引 只有a|ab|abc 才能用上联合索引字段。

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

主键字段必须不能为空,但是索引字段可以为空。

二、外键和主健的关系

1.外键就是让表中字段的值在参照表中的字段中选择的一种约束标示

2.创建外键的条件

被参照字段必须是主键

参照字段和被参照字段必须是相同的数据类型

表的储存引擎必须是innodb

三、语法格式

1.创建主键的命令格式

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

2.创建外键的命令格式

2.1.在创建表时创建外键(满足创建外键的条件下)createtable表名(字段列表,foreignkey(需要创建外键约束的字段)references被参照表的表名(被参照表的被参照字段)onupdatecascadeondeletecascade)engine=innodb;如果外键需要具有唯一标示的时候还可以在外键上加上主健约束2.2.在已经存在的表中创建外键altertable表名addforeignkey(字段名)references参考表名(参考字段名)onupdatecasecadeondeletecascade)engine=innodb;

3.创建索引的命令格式

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

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

具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的。在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的。如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以关注我的微信公众号

相关文章

  • mysql中的键和索引

    一、主键 索引 关系 1.主键:主键的唯一作用就是唯一标识表中的某一行数据。分为单一主键和联合主键: 单一主键:只...

  • 数据库索引简介

    索引基础索引(在MySql中也叫键)是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 在MySql中...

  • MySQL 数据库 - 索引详解

    索引 (在 MySQL 中也叫作 “键(key)”) 是存储引擎用于快速找到记录的一种数据结构 索引基础 索引可包...

  • 48-索引和慢查询优化

    一、索引 1、什么是索引 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的...

  • MySQL索引

    定义索引 (在MySQL中也叫"键key" )是存储引擎快速找到记录的一种数据结构。 索引类型主键索引(PRIMA...

  • 索引

    mysql中的索引 MySQL中普遍使用B+Tree做索引,但在实现上又根据聚簇索引和非聚簇索引而不同。 聚簇索引...

  • 索引

    MYSQL索引 MYSQL中索引文件以B树结构存储,索引可分为单列索引和多列索引。 对于多列索引中,当一个SQL语...

  • mysql索引

    一、索引简介 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键...

  • mysql(15)

    主键、外键和索引的区别? 主键,外键和索引的区别如下表: |主键|外键|索引|------|-----|----|...

  • MYSQL记录

    简单描述MySQL中,索引、主键、唯一索引、联合索引的区别,对数据库的性能有什么影响? MySQL索引的基础和类型...

网友评论

      本文标题:mysql中的键和索引

      本文链接:https://www.haomeiwen.com/subject/mioyxftx.html