约束条件
数据完整性分为三类:
实体完整性:标识每一行数据不重复
实体:表中每一条数据都是一个实体(entity)。
分为三种类型:主键约束、唯一约束、自动增长。
1、主键约束(primary key):数据唯一,且不为空。
创建表时直接添加在值后加约束
单一约束:create table 表名( 列名1 列值1 primary key,...);
联合约束:create table 表名(列名1 列值1, 列名2 列值2, .... 列名n 列值n, primary key(列名1,列名2); )
创建表后,补充约束alter table 表名 add primary key(列名1);
删除约束:alter table 表名 drop primary key;
2、唯一约束(unique):数据唯一,可以为null。
添加约束:create table 表名( 列名1 列值1 约束条件,列名2 列值2 unique, ....)
后期追加: alter table 表名 add unique(列名);
3、自动增长(auto_increment(mysql),identity(SQLServer),sequence(oracle)):数据必须为整型,被删除行不影响后续自增数。
域完整性:限制此单元格的数据正确 不对照此列的其他单元格
1、数据类型约束。
2、非空约束:not null。
alter table 表名 modify 字段名 字段类型 not null;
3、默认值约束:default。
添加约束:create table 表名( 列名1 列值1 约束,列名2 列值2 约束 default 默认值, .... )
alter table 表名 alter 列名 set default 默认值;
引用完整性:约束表与表之间的关系,外键约束foreign key。
建立外键约束,首先确定表的主从关系,外键约束加在从表上,相应列应是同样的数据类型,必须建立索引外键主键,外键可以重复也可以为null值。
创建外键:建表的同时添加:constraint 外键关系名 foreign key(从表的字段) references 主表名(主表的字段),添加到列名后单独一行。
后期追加:alter table 主表 add primary key(主表列名)
alter table 从表 add foreign key(从表列名) references 主表(主表列名)
删除外键关联:alter table 表名 drop foreign key 外键关系名。
注意:
1.在从表中添加数据时,外键关联列中存储的数据必须是主表中存在的数据
2.想要删除主表中正在被从表使用的行,必须先在从表删除,再删除主表
相关阅读
在MySQL中,VARCHAR与CHAR的区别是什么?VARCHAR(50)中的5
答案:CHAR是一种固定长度的类型,VARCHAR则是一种可变长度的类型。CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任
第一步:下载安装包 MYSQL官方下载地址:官方下载 地址:https://dev.mysql.com/downloads/windows/installer/ 这里第一项是在线安装,
sqlserver中set IDENTITY_INSERT on 和 off 的设置方
前言 最近频繁用数据库,发现数据库并没有想想的那么好操作,今天遇到了一个插入的问题,表格建好了,往里边插入数据的时候就报错。说se
最近在阿里云服务器ECS安装了mysql, 想通过本地Navicat远程连接上mysql,发现出现了 Can’t connect to MySQL server (10060). 试
【新浪云共享型MYSQL】Navicat连接新浪云共享型MYSQL
【新浪云共享型MYSQL】Navicat连接新浪云共享型MYSQL步骤:1.进入新浪云,创建一个云应用SAE2.进入应用,右侧 [数据库与缓存服务] 创建