MySql数据完整性

概述

数据完整性:是为了保证插入数据库中的数据是正确的,它防止了用户可能的输入错误;

分类:

域完整性

指数据库表的列(字段)必须符合某种特定的数据类型或约束。例如 NOT NULL。

实体完整性

规定表的一行(每条记录)在表中是唯一的实体。实体完整性通过表的主键来实现。

参照完整性

是指保证一个表的外键和另外一个表的主键对应。

主键:唯一地标识表中的某一条记录的一列或者多列的值;特点:唯一,非空;

约束

primary key :主键约束

unique : 唯一约束

not null : 非空约束

check(字段限定条件) :检查约束

default 字段值 : 默认约束

比如:创建一个学生表

create table student (id int primary key,name varchar(20) unique,age int check(age<0 and age<100),address varchar(30) default '内蒙古');

引用约束(外键约束)

建表的时候添加:

create table t3 (id int primary key,sid int,name varchar(20),constraint sid_FK foreign key(sid) references student(id)); #student外键所在的表,sid是此表的外键

为已创建的表添加

#假设t3表的sid字段没有设置外键
alter table t3 add constraint student_t3_FK foreign key(sid) references student(id);

删除引用约束

alter table t3 drop foreign key student_t3_FK ;

自动增长

关键字:auto_increment

create table t4 (id int primary key auto_increment,name varchar(20));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ang_qq_252390816

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

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

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

打赏作者

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

抵扣说明:

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

余额充值