概述
约束与索引
一、约束与索引的概念
1、数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据的完整性要从以下四个方面考虑:
·实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录
·域完整性(Domain Integrity):例如:年龄范围0-120,性别范围“男/女”
·引用完整性(Referential Integrity):例如:员工所在部门,在部门表中要能找到这个部门
·用户自定义完整性(User-defined Integrity):例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。
2、根据约束的特点,分为几种:
·键约束:主键约束、外键约束、唯一键约束
·Not NULL约束:非空约束
·Check约束:检查约束
·Default约束:默认值约束
·自增约束
3、索引是一个单独、物理的存储在数据页上的数据库结构,它是表中一列或若干列值的集合和相应的指向表中数据值的物理标识数据页的逻辑指针清单(类似于新华字典的目录索引页)。索引的存在会增加数据库的存储空间,也会使插入、修改数据的时间开销变多(因为插入和修改数据时,索引也要随之变动),但是可以大大提高查询速度。因此应该在键列、或其他经常要查询、排序、按范围查找的列上建立索引,而对于在查询中很少使用和参考的列、修改非常频繁的列,值很少的列(例如性别只有男和女)等列上不应该创建索引。
数据库中的索引,就好比一本书的目录,它可以帮我们快速进行特定值的定位与查找,从而加快数据查询的效率。
索引就是帮助数据库管理系统高效获取数据的数据结构。
4、查看某个表的约束
show create table 表名;
查看索引:show index from 表名;
5、自增约束
·一个表最多只能有一个自增长列
·自增长列必须是键列(主键列、外键列、唯一键列),并且要求非空
·自增列必须是整数列
·使用自增的三种方式:
6、唯一键约束(唯一能够重复的值,其他值只能出现一次)
·唯一键约束列允许为null
·同一个表允许有多个唯一约束
·唯一约束可以是某一列的值唯一,也可以是多列组合的值唯一
·MySQL会给唯一约束的列上创建一个唯一索引
·删除唯一键只能通过删除对应的索引的方式删除,删除时需要制定唯一键索引名
设置唯一键:
·删除唯一键约束:
7、非空约束(规定某个字段不能为空)
·建表后取消某个字段非空
8、默认值约束
9、外键约束
<1>表关系:一对一、一对多、多对多
具体讲解参考以下链接:
表与表之间的3种关系
10、外键约束
11、四个约束等级:
·on delete set null、on update set null,主表删除(更新)一行,从表对应的外键设置为null。
·级联操作:ON DELETE CASCADE ON UPDATE CASCADE
主表主键修改,从表外键跟着修改
·No action方式:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作。
·Restrict方式:同no action,都是立即检查外键约束。
最后
以上就是刻苦手机为你收集整理的约束与索引的全部内容,希望文章能够帮你解决约束与索引所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复