MySQL必备知识完整性约束

数据完整性的基本概念

1,什么是数据完整性?
数据完整性是指存储在数据库中的数据要能正确反映实际情况,规定输入的数据不能无效值、错误值或者乱码等。
2,数据完整性的类型必须准确
3,实体完整性:标识符或者主键的完整性,使其值唯一
4,域完整性:限制类型、格式和取值范围等
5,引用完整性:保持原表和引用表数据的一致性
6,自定义完整性:用户自定义的业务规则

数据完整性的实现方式

实体完整性:主键约束、唯一值约束
域完整性:检查约束、默认值约束
引用完整性:外键约束
用户自定义完整性:以上约束的自由组合。

定义约束

数据完整性约束也就是创建表( create table )时的约束条件,是用来限制属性或者表中数据的,也可以通过修改语句( alter table )修改约束条件。

常见的约束

约束名 描述 名称
not null 非空约束 表示该数据类型不能为空NULL
default 默认值 约束用于保证该字段有默认值
auto_increment 自增列 数据自动进行增长,必须要有唯一约束
unique 唯一约束 用于保证该字段的值具有唯一性,可以为空
primary key 主键 用于保证该字段的值具有唯一性并且非空,一张表只能有一个主键
foreign key 外键 连接主键,用于限制两个表的关系
check 检查约束 检查字段的值是否为指定的值(MySQL不支持)

语句格式

在列名(属性名)中添加约束
1,创建表时定义约束
2,修改表时定义约束
3,删除表的约束
4,查询表的约束

非空约束

表示该类型不能为空,如果插入的数据为空的话,会被系统阻止插入
1,创建语法格式
创建一个表,使编号不能为空

create table table_name( 
      t_no int not null, 
      t_name varchar(20) not null
);

2,表的修改
修改表属性的时候,会和原来的表中的数据,进行一个检查,如果出现冲突,则无法修改

##修改表中的属性约束不为空
alter table <表名> modify column <属性名> <数据类型> (约束) 

# 修改表中的属性约束不为空 
alter table teachar modify column t_name varchar(20) not null; 

#通过修改表使其去掉非空属性约束 
alter table teachar modify column t_no varchar(20);

唯一约束

指定某列或者某几列数据不能重复

#创建 
create table teacher_tb( 
   t_no int not null unique, 
   t_name varchar(20) 
);

#指定列添加唯一约束: 
alter table 表名 add constraint 约束名 约束类型(属性名); 

#示例 
alter table 表名 add constraint 属性名 unique(属性名); 

#删除唯一约束: 
alter table 表名 drop index 属性名;

自增列

语句 auto_increment
自增列的使用条件,必须是一个有主键或者是唯一约束的属性名
属性给空值时,初始默认值从1开始,之后的每一个在其基础上+1。
在创建时可以在表后设置初始默认值: auto_increment=100

#示例 
create table 表格名( 属性名 类型 auto_increment )auto_increment=100; 

#添加自增列 
alter table 表名 modify 属性名 类型 (auto_increment) 

#删除 
alter table 表名 modify 属性名 类型

默认值约束

语句 default
表在创建时没有插入元素,则指定默认给定的一些元素,让其不为空

#创建表的默认属性 
create table 表名( s_subject varchar(20) default 数据 );

#添加或者删除默认值约束 
alter table 表名 modify column 列名 类型 (default 数据);

主键约束

语句 primary key
特点:非空约束,唯一约束,每个表只能有一个主键约束(表级)
在多列联合的主键约束时,联合主键的值不能重复。

#设置单列主键 
create table 表名 ( 属性名 int primary key, );

#添加主键约束 
alter table 表名 add constraint 主键名 primary key (属性名); 
 
#删除主键约束 
alter table 表格名 drop primary key;

外键约束

语句: foreign key
外键约束是指一个表中的属性值参考另一个表中的主属性的值,也就是外键值参考主键值,由于外键约束是表级约束,所以要在创建表之前先创建参考表。外键和参考表的主键数据类型、长度和精度要保持一致。

#在创建的时候定义外键 
<属性名> <类型> (约束), 
foreign key(属性名) references 被引用的表(主键属性); 

#添加外键约束 
alter table 表名 add constraint 属性名 foreign key( 属性名) references 被引用的表(主键属性); 

#删除外键约束 
alter table 表名 drop foreign key  属性名;

总结

1,约束的使用
2,如何通过约束进行数据的规范话操作
3, 如何查询约束
4,通过主键和外键来联系两张表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章