mysql建表语句添加约束_mysql-建表约束

本文详细介绍了数据库中的主键约束、唯一约束、非空约束、自增约束和外键约束,包括它们的定义、作用及实际操作示例。强调了主键约束在确保数据唯一性中的重要性,唯一约束用于防止字段值重复,非空约束确保字段不为空,自增约束自动为字段生成唯一标识,而外键约束则维护了不同表之间的数据完整性。同时,还展示了如何在创建表后添加或删除这些约束。
摘要由CSDN通过智能技术生成

主键约束

可以唯一确定表中的一条记录。

唯一 + 非空。

联合主键

由多个字段组成。

create tableuser2(

idINT,

nameVARCHAR(20),

passwordVARCHAR(20),primary key(id,name)

);

只要主键值加起来不重复即可,也就是有一个不同就可以

主键不可以重复,任何一个字段都不可以为空

自增约束

可以和主键约束一起使用。

CREATE TABLEuser3(

idINT PRIMARY KEYAUTO_INCREMENT,

nameVARCHAR(20)

);

INSERT INTO user3(name) VALUES('张三');INSERT INTO user3(name) VALUES('张三');INSERT INTO user3(name) VALUES('张三');

545a281a3cb47089146ab3bf04450c50.png

发现会自动生成id

如果在键表的时候,忘记创建主键约束了

8ef290cf86b3f14ccb2787550e7eea93.png

b49d9a12ab6c0936c9f641f807c1ca87.png

则添加语句:(修改表结构,添加主键)

alter table user4 add primary key(id);

或者使用 midify 修改字段,添加约束。(这样操作比较少,了解一下)

alter table user4 modify id int primary key;

运行:

df6c8a89c0a927d68c6da785c6975762.png

通过这条语句删除:

alter table user4 drop primary key;

运行:

44d3b6c5499ae20705e477ed7112ec2b.png

外键约束

涉及到两个表:父表、子表(主表、副表/从表??)。

学生表是父表,班级表是主表,父表里的东西要参照主表,主表里面不存在的,父表无法添加。

主表中的记录被副表引用,是不可以被删除的。

4b0b9d55d78cec531a7f7c2f1e4dd9e6.png

唯一约束

约束修饰的字段的值不可以重复

即无法重复添加'zhangsan'。

CREATE TABLEuser5(

idINT PRIMARY KEYAUTO_INCREMENT,

nameVARCHAR(20)

);

添加语句:(或者直接在上面的代码内添加 unique(name) )(或者直接在20的括号后面加 unique )

alter table user5 add unique(name);

或者:

alter table user5 modify name varchar(20) unique;

运行:

58bf8eff72b6d76825c068fc34656389.png

如果一下子添加两个,也就是unique(name,id),表示的是组合在一起不重复,那么Key那边会变成MUL

如何删除唯一约束?(需找到unique对应的字段)

alter table user5 drop index name;

非空约束

修饰的字段不能为空(NULL)

create tableuser9(

idint,

namevarchar(20) NOT NULL);

运行:

04dd8ecb9d5b5924aa0e2b2e8dc265d5.png

默认约束

当我们插入字段的时候,如果没有传值,就会使用默认值。

create tableuser10(

idint,

namevarchar(20),

ageint default 10);

运行:

141e8094a3b71371c27682432c349500.png

插入一个元素:

insert into user10(id,name) value(1,'zhangsan');

88de3cea91628a7a0b70edcf61b4c82f.png

发现:即使没有插入年纪,也会有默认年纪显示。

外键约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值