Mysql中主键和外键和索引

1.主键和外键是什么

学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键

课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键

成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键。

2.主键和外键有什么用

维护关系数据库的完整性

主键是能确定一条记录的唯一标识。外键可以和另一张表产生关联, 能确定另一张表记录的字段,可以保持数据一致性。

起到约束作用

外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

3.索引是什么

索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。
索引主要用于优化查询效率。
 CREATE INDEX命令的基本语法如下:

CREATE INDEX index_name ON table_name;

单列索引:
 单列索引基于单一的字段创建,其基本语法如下所示:

CREATE INDEX index_name
ON table_name (column_name);

唯一索引:
 唯一索引不止用于提升查询性能,还用于保证数据完整性。唯一索引不允许向表中插入任何重复值。其基本语法如下所示:

CREATE UNIQUE INDEX index_name
on table_name (column_name);

聚簇索引:
 聚簇索引在表中两个或更多的列的基础上建立。其基本语法如下所示:

CREATE INDEX index_name
on table_name (column1, column2);

创建单列索引还是聚簇索引,要看每次查询中,哪些列在作为过滤条件的 WHERE 子句中最常出现。

如果只需要一列,那么就应当创建单列索引。如果作为过滤条件的 WHERE 子句用到了两个或者更多的列,那么聚簇索引就是最好的选择。

DROP INDEX 命令:
 索引可以用 SQL DROP 命令删除。删除索引时应当特别小心,数据库的性能可能会因此而降低或者提高。

其基本语法如下:

DROP INDEX table_name.index_name;

3.主键、外键、索引差别

Mysql中主键和外键和索引相关推荐

  1. mysql中为表增加外键_如何在Excel 2013中为符号分配键盘快捷键

    mysql中为表增加外键 We've previously shown you how to add keyboard shortcuts to symbols in Word 2013 to mak ...

  2. MySQL中如何删除有外键约束的表数据?

    介绍表关系: 目的:删除以orders为中心的4表信息-->orders.member.product.order_traveller 注意:对于订单,不能因为删订单就把产品删掉.不能因为删订单 ...

  3. mysql not in 多列,MySQL中的多列外键?

    I have a table that has a primary key consisting of two columns (product_id, attribute_id). I have a ...

  4. mysql中什么是表?列?行?什么是主键和外键?什么是索引?为什么要使用索引?

    mysql中什么是表?列?行? 在关系数据库中,表(Table)是数据的主要组织单元.它是由一组命名的列和行组成,用于存储和组织数据. 列(Column)是表中的一个字段,用于存储特定类型的数据.每个 ...

  5. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证 ...

  6. mysql主键和外键示例_SQL数据库中主键和外键的应用实例

    数据库 什么是数据库主键(Primary Key)? 数据库主键(Primary Key):指的是一个列或多列的属性组合,其属性值能唯一标识一条记录,通过它可强制表的实体完整性. 例如: (tb_Bo ...

  7. MySQL的几个概念:主键,外键,索引,唯一索引

    一.概念: 1.主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录 ...

  8. MySQL 中主键的几种表设计组合的实际应用效果

    了解主键.外键.索引 主键 主键的主要作用是保证表的完整.保证表数据行的唯一性质, ① 业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为"自然主键(Natural K ...

  9. mysql中有主键和外键吗_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

最新文章

  1. 听说redux和react-redux在写项目中更配哦
  2. Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
  3. Oracle数据库相关
  4. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) C. XOR Equation 数学
  5. 【网络信息安全】鉴别和密钥分配协议
  6. Hibernate常用Annotation标签说明
  7. 视觉SLAM十四讲第三讲
  8. ​​​​浏览器中添加Json解析工具
  9. flash builder 4.6 mac 版破解方法
  10. 数据分析——实习僧数据分析岗招聘信息分析
  11. android开发 app消息提醒功能,Android中利用App实现消息推送机制的代码
  12. Windows使用CMD命令查看WIFI密码
  13. 如何记住OSI七层协议模型,脑洞大开有木有?
  14. 微信小程序中的vw和vh单位
  15. alpha测试和beta测试
  16. 2,4-二硝基苯磺酰基(DNBS)修饰BODIPY染料识别GSH/溶酶体
  17. 报错:HTTP 401 Unauthorized
  18. 【毕业设计】16-基于单片机的酒精浓度监测系统设计(原理图+仿真+实物图+论文+答辩PPT)
  19. MYSQL 安装/ Navicat可视化数据库使用
  20. 中国整形外科医院发展规模分析:诊疗人次数为96万人,同比减少5.46%[图]

热门文章

  1. Java岗大厂面试百日冲刺【Day49】— 十个面试九个秒杀1 (日积月累,每日三题)
  2. 什么情况下JVM内存中的一个对象会被垃圾回收
  3. uni-app微信小程序订阅消息功能开发(流程讲解篇)
  4. drawio 绘制手绘素描线稿样式
  5. Arduino多线程SCoop库
  6. 通过使OS X中的一切变得更大来让您大吃一惊
  7. 修改Firefox浏览器 user-agent 微信浏览器UA
  8. 台大-林轩田老师-机器学习基石学习笔记6
  9. SAP MM 盘点操作
  10. IDEA编译项目报java: 类找不到符号