mysql数据库常见约束——主键、unique、not null

一、创建表

创建表的语句

create table name (
name type default 约束 comment ,
name type default 约束 comment ,



)

1、name:字段名

一般情况下,如果有多个单词构成,用下划线间隔

2、type:类型

(1)int :整数类型
(2)double(5,2) :长度为5位保留2位小数
(3)char :长度不变 UUID 手机号 身份证号
(4)varchar :长度不确定 姓名
(5)blob :电影,图片
(6)clob :小说

3、default:默认值

添加数据的时候如果不指定值,则使用默认值

4、comment :设置注释

为字段设置相关的注释,用于解释说明字段作用

例子如下:

在这里插入图片描述

得到表

在这里插入图片描述

二、约束

1、主键约束(primary key)

特点:约束唯一标识数据库表中的每条记录,主键必须包含唯一的值,且不能为 NULL每个表都应该有一个主键,并且每个表只能有一个主键。

插入数据(向test表中的插入三条数据,id不为null且不重复)

#向test表中插入三条数据
insert into test (id,user_name,password) values (1,'admin','123')
insert into test (id,user_name,password) values (2,'zhangsan','abc')
insert into test (id,user_name,password) values (3,'lisi','123456')

插入成功

在这里插入图片描述

 

主键约束字段插入重复数据(向表中插入重复的id)

#表中已经存在一个id=2的数据
insert into test (id,user_name,password) values (2,'wangwu','111')

报错

insert into test (id,user_name,password) values (2,'wangwu','111')
> 1062 - Duplicate entry '2' for key 'PRIMARY'
> 时间: 0.001s

在这里插入图片描述

 主键约束字段插入null

#向表中插入id=null的数据
insert into test (id,user_name,password) values (null,'zhaoliu','2222')

报错

insert into test (id,user_name,password) values (null,'zhaoliu','2222')
> 1048 - Column 'id' cannot be null
> 时间: 0.001s

数据库中没有成功插入数据

在这里插入图片描述

2、unique

特点:不重复,但可以插入多个null

由于user_name的约束位unique,所以如果这里如果插入的数据的user_name相同,则只能插入第一条数据。

insert into test (id,user_name,password) values (4444,'admin','admin')

报错

insert into test (id,user_name,password) values (4444,'admin','admin')
> 1062 - Duplicate entry 'admin' for key 'user_name'
> 时间: 0.022s

这里可以插入多个user_name为null的数据

insert into test (id,user_name,password) values (555,null,'123456')
insert into test (id,user_name,password) values (666,null,'123456')
insert into test (id,user_name,password) values (777,null,'123456')

结果

在这里插入图片描述

3、not null

特点:数据不能为null,使用前面创建的test表

 插入数据

insert into test (id,user_name,password) values (999,'Jim',null)

报错

insert into test (id,user_name,password) values (999,'Jim',null)
> 1048 - Column 'password' cannot be null
> 时间: 0.001s

4、外键约束

foreign key(name) references table_name(name)——保证数据完整性,不会产生无用的垃圾数据。


————————————————
原文链接:https://blog.csdn.net/zzxv587/article/details/89922877

Guess you like

Origin blog.csdn.net/HD243608836/article/details/120975364