mysql 约束 索引

发布于:2024-04-09 ⋅ 阅读:(45) ⋅ 点赞:(0)

约束

约束是用来对数据业务规则和数据完整性进行实施、维护。约束的作用范围仅限在当前数据库,约束可以被当做数据库对象来处理,它们具有名称和关联模式,是逻辑约束,不会因为设置约束而额外占用空间。
1.数据完整性(Data lntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据的完整性要从以下四个方面考虑:
实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录。
域完整性(Domain Integrity):例如:年龄范围0-120,性别范围“男/女”。
引用完整性(Referential Integrity):例如:员工所在部门,在部门表中要能找到这个部门。
用户自定义完整性(User-defined Inteqrity):例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。
2.根据约束的特点,分为几种:
键约束:主键约束、外键约束、唯一键约束
Not NULL约束:非空约束
Check约束:检查约束
Default约束:默认值约束
自增约束

SELECT * FROM information_schema.table_constraints WHERE table_name ='表名称';
SHOW CREATE TABLE 表名;

索引

索引是一个单独、物理的存储在数据页上的数据库结构,它是表中一列或若干列值的集合和相应的指向表中数据值的物理标识数据页的逻辑指针清单(类似于新华字典的目录索引页)。索引的存在会增加数据库的存储空间,也会使插入、修改数据的时间开销变多(因为插入和修改数据时,索引也要随之变动),但是可以大大提高査询速度。因此应该在键列、或其他经常要查询、排序、按范围查找的列上建立索引,而对于在查询中很少使用和参考的列、修改非常频繁的列,值很少的列(例如性别只有男和女)等列上不应该创建索引。
Mysql会在主键、唯一键、外键列上自动创建索引,其他列需要建立索引的话,需要手动创建。
其中主键删除,对应的索引也会删除
删除唯一键的方式是通过删除对应的索引来实现的
删除外键,外键列上的索引还在,如果需要删除,需要单独删除索引

SHOW INDEX FROM 表名称;

主键 特点

唯一并且非空,即如果给一个字段设置了主键约束,就不用再设置唯一和非空约束了
一个表最多只能有一个主键约束
创建主键会自动创建对应的索引,同样删除主键对应的索引也会删除
添加主键
一:创建表格的时候,就指定好主键约束,

主键的特点:
/*
1.主键自带非空约束和唯一约束,联合 主键的话,任意一个都不能为null
2.一个表里只能有一个主键
3.int类型的主键,通常会配置自增约束
4.可以使用联合主键
5.主键会默认添加索引
*/
create table ddl_primary
(
id int primary key auto_increment,--创建表的同时,指定id 为主键,并且自增
name varchar(32)
);
c

网站公告

今日签到

点亮在社区的每一天
去签到