mysql-建表约束
主键约束
可以唯一确定表中的一条记录。
唯一 + 非空。
联合主键
由多个字段组成。
create table user2( id INT, name VARCHAR(20), password VARCHAR(20), primary key(id,name) );
只要主键值加起来不重复即可,也就是有一个不同就可以
主键不可以重复,任何一个字段都不可以为空
自增约束
可以和主键约束一起使用。
CREATE TABLE user3( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) );
INSERT INTO user3(name) VALUES('张三'); INSERT INTO user3(name) VALUES('张三'); INSERT INTO user3(name) VALUES('张三');
发现会自动生成id
如果在键表的时候,忘记创建主键约束了
则添加语句:(修改表结构,添加主键)
alter table user4 add primary key(id);
或者使用 midify 修改字段,添加约束。(这样操作比较少,了解一下)
alter table user4 modify id int primary key;
运行:
通过这条语句删除:
alter table user4 drop primary key;
运行:
外键约束
涉及到两个表:父表、子表(主表、副表/从表??)。
学生表是父表,班级表是主表,父表里的东西要参照主表,主表里面不存在的,父表无法添加。
主表中的记录被副表引用,是不可以被删除的。
唯一约束
约束修饰的字段的值不可以重复
即无法重复添加'zhangsan'。
CREATE TABLE user5( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) );
添加语句:(或者直接在上面的代码内添加 unique(name) )(或者直接在20的括号后面加 unique )
alter table user5 add unique(name);
或者:
alter table user5 modify name varchar(20) unique;
运行:
如果一下子添加两个,也就是unique(name,id),表示的是组合在一起不重复,那么Key那边会变成MUL
如何删除唯一约束?(需找到unique对应的字段)
alter table user5 drop index name;
非空约束
修饰的字段不能为空(NULL)
create table user9( id int, name varchar(20) NOT NULL );
运行:
默认约束
当我们插入字段的时候,如果没有传值,就会使用默认值。
create table user10( id int, name varchar(20), age int default 10 );
运行:
插入一个元素:
insert into user10(id,name) value(1,'zhangsan');
发现:即使没有插入年纪,也会有默认年纪显示。
外键约束
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」