MySQL约束

1.默认约束
创建my_default表,准备name和age两个字段进行测试,为age添加默认约束,设置默认值为18。
use mydb;
create table my_default(
name varchar(10),
age int unsigned default 18);
查看表结构
desc my_default;
在插入记录时,省略name和age字段
insert into my_default values();
在插入记录时,省略age字段
insert into my_default (name) values(‘a’);
在age字段中插入NULL值
insert into my_default values(‘b’,NULL);
在age字段中使用默认值
insert into my_default values(‘c’,default);
查询结果
select *from my_default;
删除默认约束
alter table my_default modify age int unsigned;
添加默认约束
alter table my_default modify age int unsigned default 18;

2.非空约束
创建my_not_null表,准备n1,n2,n3字段进行测试,为n2,n3设置非空约束,为n3设置默认值为18。
create table my_not_null(
n1 int,
n2 int not null,
n3 int not null default 18);
查看表结构
desc my_not_null;
插入记录进行测试
省略n2字段,插入失败,提示n2没有默认值
insert into my_not_null values();
ERROR 1364 (HY000): Field ‘n2’ doesn’t have a default value
将n2字段设为NULL,插入失败,提示n2字段不能为NULL
insert into my_not_null values(null,null,null);
ERROR 1048 (23000): Column ‘n2’ cannot be null
将n3字段设为NULL,插入失败,提示n3字段不能为NULL
insert into my_not_null values(null,20,null);
ERROR 1048 (23000): Column ‘n3’ cannot be null
省略n1和n3字段,插入成功
insert into my_not_null (n2) values(20);
查询结果
select *from my_not_null;

3.唯一约束
创建my_unique_1表和my_unique_2表,分别通过列级约束和表级约束的方法加唯一约束。
create table my_unique_1(
id int unsigned unique,
username varchar(10) unique
);
create table my_unique_2(
id int unsigned,
username varchar(10),
unique(id),
unique(username)
);
查看表结构会发现两个表的结构是相同的。
desc my_unique_1;
desc my_unique_2;
为含唯一约束的字段插入记录,插入不重复记录,插入成功
insert into my_unique_1(id) values(1);
insert into my_unique_1(id) values(2);
插入重复记录,插入失败
insert into my_unique_1(id) values(1);
ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘id’
查询插入记录
select *from my_unique_1;
创建测试表
create table my_unique_3( id int);
添加唯一约束
alter table my_unique_3 add unique (id);
查看添加结果
show create table my_unique_3\G
删除唯一约束
alter table my_unique_3 drop index id;
查看删除结果
show create table my_unique_3\G
创建复合唯一约束
创建测试表,添加符合唯一键
create table my_unique_4(
id int unsigned,username varchar(10),
unique(id,username)
);
插入不重复记录,插入成功
insert into my_unique_4 values(1,‘2’);
insert into my_unique_4 values(1,‘3’);
插入重复记录,插入失败
insert into my_unique_4 values(1,‘2’);
ERROR 1062 (23000): Duplicate entry ‘1-2’ for key ‘id’

4.主键约束创建my_primary表,为id字段添加主键约束
create table my_primary(
id int unsigned primary key,
username varchar(20)
);
查看表结构
desc my_primary;
插入测试记录,插入成功
insert into my_primary values(1,‘Tom’);
为主键插入null值,插入失败
insert into my_primary values(null,‘Jack’);
ERROR 1048 (23000): Column ‘id’ cannot be null
为主键插入重复值,插入失败
insert into my_primary values(1,‘Alex’);
ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘PRIMARY’
删除主键约束
alter table my_primary drop primary key;
查看删除结果
desc my_primary;
删除id字段的非空约束
alter table my_primary modify id int unsigned;
添加主键约束
alter table my_primary add primary key(id);
查看添加结果
desc my_primary;

5.自动增长
创建my_auto表,为id字段添加自动增长
create table my_auto(
id int unsigned primary key auto_increment,
username varchar(20)
);
查看表结构
desc my_auto;
插入记录进行测试,插入时省略id字段,将会使用自动增长
insert into my_auto (username)values (‘a’);
为id字段插入null,将会使用自动增长值
insert into my_auto values (null,‘b’);
为id字段插入具体值6
insert into my_auto values (6,‘c’);
为id字段插入0,使用自动增长值
insert into my_auto values (0,‘c’);
查看my_auto表中的数据
select *from my_auto;
查看自动增长值
show create table my_auto\G
修改自动增长值
alter table my_auto auto_increment=10;
删除自动增长
alter table my_auto modify id int unsigned;
重新为id添加自动增长
alter table my_auto modify id int unsigned auto_increment;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值