推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

Mysql数据库完整性约束讲解

   2023-08-06 网络整理佚名1790
核心提示:为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。在数据库中,我们常用到唯一编号以表示记录,在mysql中可以通过数据列的属性来自动增长.1、唯一性约束要求表里某个字段的值在每条记录里都是唯一的。

一、数据完整性的概念 1、目的

为了防止非标准数据进入数据库,当用户插入、修改、删除数据时,DBMS按照一定的约束自动对数据进行监控,使非标准数据无法进入数据库,以保证存储的数据正确、有效且兼容。

2. 概念

约束用于确保数据的准确性和一致性。 数据完整性是数据准确性和一致性的保证。

数据完整性(Data)是指数据的准确性()和可靠性()。

3. 分类

1.数据实体完整性(唯一约束、主键约束、标识列)

2.字段完整性(受限数据类型、检查约束、外键约束、默认值、非空约束)

3.参照完整性(外键约束)

4. 自定义完整性(规则、存储过程、触发器)

2. 自动增长 1. 自动增长

在数据库中,我们经常使用唯一的数字来表示记录,而在mysql中,可以通过数据列的属性来自动增加。

例子:

Create table 表名(Id int not null auto_increment,Name varchar(20),Primary key(id))engine=innodb default charset=utf8;

2、修改自动增长列的自动增长值起始值

alter table表名=值(从什么值开始增加);

alter table student auto_increment=10

三、主键约束 1、主键(key):

主键是实现表中记录唯一性(唯一性、非空)的字段。 一张表中只能有一个主键。 如果创建表时没有明确定义not null,mysql会隐式定义这些列为not null。

2、语法:table表名(列名数据类型,.....,key(主键名(列名)));

alter table表名add key(主键名(列名));

alter table 表名 添加主键名称 key(主键);

alter table students add primary key (s_id)
-- 会报错 s_id主键不允许为null
insert into students(s_id,s_name,age,height) values(null,'gmcc',18,170)
-- 不会报错, s_id主键可以插入一个空字符串
insert into students(s_id,s_name,age,height) values('','gmcc',18,170)

四、外键约束 1、外键:

两个表可以关联起来,保证数据的一致性,并实现一些级联操作。 外键是子表中引用父表中主键的字段,定义为外键的字段用于引用另一个表。 在主键中。

注意:外键是主表中的字段,外键名称不会出现在主表和副表中。

2、语法:alter table key name from 表名KEY(从表的列名-外键)主表名(主表中外键对应的字段); 外键名称规范:FK_主表名

ALTER TABLE students
ADD ConSTRAINT fk_class FOREIGN KEY (class_id)
REFERENCES class (class_id) on delete CASCADE ;

3、要求:

A:两个表都必须是表。

B:外键列必须建立索引。

C:外键关系中两个表的列必须具有相似的数据类型,并且可以相互转换,例如(int and)可以,但int和char则不行。

4、关键词:

键(列名)指的是表中的列。

父表表名(父表的列名)

指定约束的名称。 在数据库中应该是唯一的。 如果不指定,系统默认为您生成一个约束名称。

5.级联删除

添加外键时添加,删除主表外键时会进行级联删除。

on /on 级联更新删除数据。

实际工作中很少建立主外键关系。 主外键关系的约束会影响执行性能,级联删除可能会导致大量数据被误删除。

6. 注意:

1.外键的作用:保证数据的一致性。

2、从表中的外键值必须存在于主表中,建立主外键关系时主表必须存在。 先创建主表,再创建从表。

3.如果插入的从表数据的外键字段的值在主表中不存在,则会报如下错误

添加或子行:某个键失败(.,KEY()类())

4、删除主外键关系的表时,先删除从表,再删除主表数据。

五、唯一约束

1、唯一性约束要求表中某个字段的值在每条记录中都是唯一的。

2、语法:alter table 表名 add 唯一约束名(列名);

例子:

alter table students add constraint un_name unique(s_name);

3、创建表时添加唯一约束的方式:直接添加在需要唯一约束的字段后面。

例子:

create table test(t_id int not null primary key,t_name varchar(10) not null unqiue);

六、非空约束NOT NULL

如果字段定义了NOT NULL,那么该字段不允许出现NULL值。 也可以说每个字段都必须有一个值。 如果不指定,则默认为NULL。

七、检查约束CHECK

1、语法:alter table 表名 add 约束名 check (表达式);

例子:

alter table students add ConSTRAINT CHK_age CHECK (s_age>18);
alter table students add ConSTRAINT CHK_SEX CHECK (s_sex in ('男','女'));

八、删除约束

删除主键时,必须先删除自增。

– 删除自我增长

alter table表名自增列自增列数据类型;

例如:

更改表颜色 int(20);

– 删除主键

alter table 表名 drop KEY;

例如:

ALTER table color DROP PRIMARY KEY;

– 消除限制

ALTER table 表名 DROP 约束名;

– 删除外键:

ALTER table 表名 drop KEY 外键名;

alter table students drop foreign key fk_class;

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON