mysql 表约束
来源:互联网 发布:平民护肤品推荐 知乎 编辑:程序博客网 时间:2024/06/06 05:48
表约束
完整性是指数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。mysql数据库管理系统提供了一直机制来检查数据库中的数据是否满足规定的条件。以保证数据库中数据的准确性和一致性,这种机制就是约束。
mysql所支持的完整性约束
NOT NULL(NK)
DEFAULT
UNIQUE KEY(UK)约束字段的值是唯一的
PRIMATYKEY(PK)
AUTO_INCREMENT
FOREIGN KEY(FK)
不支持check约束,即可以使用check约束,但是没有效果约束:
单列约束
多列约束
1、NOT NULL (NK)
在创建表的时候,指定属性为not null即可
例:
create table t_name(
column type not null
)
create table t_notnull{
id int not null,
name varchar(20)
}
insert into t_notnull(name) values("dsagdfs");
会发现对应的id被置为0
alter table t_notnull modify id int;
insert into t_notnull(name) values("fdgdf");
发现对应的id为null
2、DEFAULT
创建表时指定
create table t_name(
column type default
字段 类型 默认值
)
例:
create table t_default(
id int not null,
name varchar(20) default 'test'
)
insert into t_default(id) values(1);
insert into t_dedault(name) values('name');
3、AUTO_INCREMENT
create table t_name(
column type auto_increment
)
create table t_auto(
id int primay key auto_increment,
name varchar(20) default 'test'
)
注意:使用的时候该列要指定为primary key,该列是数值列
4、UNIQUE UK
create table t_name(
column type unique
)
create table t_name(
column type
constraint uk_column unique(column)
)
constraint:约束
在为约束设置标示符时,推崇使用“约束缩写_字段名”的格式
create table t_unique(
id int primary key,
name varchar(20) unique
)
注意:1、auto_increment显然也能实现unique的功能,但是没有unique灵活,unique的列不必是主键列,也不一定是数字列,
2、varchar必须指定字节数,否则会失败
5、primary key
单字段主键
create table t_name(
column type primary key
)
create table t_name(
column type
contraint pk_column primary key(column)
)
多字段主键
create table t_name(
column1 type ,
column2 type
...
contraint pk_column1_column2 primarykey(column1,column2)
)
6、foreign key
前五个约束都是都是单表,而外键约束牵涉到了多个表。
设置外键约束的两个表之间会有父子关系,即子表中某个字段的取值范围由父表所决定。
在具体设置FK约束时,设置FK约束的字段必须依赖于数据库中的已经存在的父表的主键,同时外键可以为null
create tablet_name(
column1 type,
column2 type,
constraint fk_column1 foreign key(column1) references tablename (columname)
)
column1:外键,columnname:父表中设置主键约束的字段
- mySQL 添加表约束
- mysql 清空外键约束表
- MySQL表约束
- mysql 表约束
- MySQL表的约束
- mysql操作表的约束
- MySQL操作表的约束
- 【mysql】数据类型、表和约束
- Mysql约束
- Mysql约束
- mysql约束
- MySQL约束
- mysql约束
- mysql约束
- mysql约束
- mysql约束
- MYSQL约束
- MySQL约束
- linux 常用命令
- 算法之素数的快速筛选两种方式
- 鹅厂安卓面试
- 内存对齐问题
- HTTP Referer(页面统计/资源防盗链)
- mysql 表约束
- linux系统crontab执行jar包的shell脚本
- Android Studio多工程引用同一个library项目配置方法
- Unity AssetBundle须知
- 获取jqGrid中选中行的数据以及 jqGrid获得所有行数据的方法
- Java并发编程实战笔记(3)- 多线程并发编程模型
- 悲观锁乐观锁
- 机器学习实战---书中谬误讨论
- 查看 MySQL 数据库中每个表占用的空间大小