约束与索引

约束与索引

一、约束与索引的概念
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,都是立即检查外键约束。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL中的约束索引是用于确保数据完整性和提高查询性能的两个不同的概念。 1. 约束(Constraints): 约束是用于强制实施特定规则或限制数据的条件。它们定义了对表中数据的有效性和一致性要求。常见的约束类型包括主键、唯一键、外键和检查约束。 - 主键(Primary Key):用于唯一标识表中的每一行数据,确保每行都具有唯一的标识符。 - 唯一键(Unique Key):确保列或列组合中的值唯一,但可以包含空值。 - 外键(Foreign Key):用于建立表之间的关系,确保引用其他表中存在的正确数据。 - 检查约束(Check Constraint):定义了对列中值的限制条件,只允许满足条件的值插入或更新。 2. 索引(Indexes): 索引是用于提高查询性能的数据结构。它们是按特定列或列组合创建的,以加快对表中数据的访问速度。索引可以使查询更快,但会增加插入、更新和删除操作的开销。 - B-Tree索引:最常见的索引类型,适用于等值查询、范围查询和排序操作。 - 唯一索引:类似于唯一键,确保列或列组合中的值唯一。 - 全文索引:适用于在文本数据中进行全文搜索。 - 空间索引:适用于处理空间数据类型(如地理位置)。 需要注意的是,索引是通过占用额外的存储空间来提高查询性能的,而约束是用于强制实施数据完整性的。因此,在设计数据库时需要根据具体需求和考虑权衡来选择适当的约束索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster``

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值