【MySQL】008
【MySQL】008
一、概述1、概念对表里的数据进行限定,保证数据的正确性、有效性和完整性;2、分类①主键约束:primary key②非空约束:not null③唯一约束:unique④外键约束:foreign key二、非空约束1、创建表时添加约束:代码语言:javascript代码运行次数:0运行复制CREATE TABLE stu(
id IT,
AME VARCHAR(20)
【MySQL】008
1、概念
对表里的数据进行限定,保证数据的正确性、有效性和完整性;
2、分类
①主键约束:primary key
②非空约束:not null
③唯一约束:unique
④外键约束:foreign key
1、创建表时添加约束:
代码语言:javascript代码运行次数:0运行复制CREATE TABLE stu(
id IT,
AME VARCHAR(20) OT ULL -- 名字不允许为空,否则创建失败
);
注意:
""与ULL是不同的两个概念;
说明链接:
2、删除name的非空约束,本质上就是更改表的字段:
代码语言:javascript代码运行次数:0运行复制-- 删除name的非空约束
ALTER TABLE stu MODIFY AME VARCHAR(20);
、创建表完成之后添加约束,本质上也是更改表的字段:
代码语言:javascript代码运行次数:0运行复制-- 创建表之后,添加name的非空约束
ALTER TABLE stu MODIFY AME VARCHAR(20) OT ULL;
1、创建表时添加唯一约束:
代码语言:javascript代码运行次数:0运行复制CREATE TABLE stu(
id IT,
AME VARCHAR(20) UIQUE -- 唯一约束
);
注意:
两个ULL值,不算重复;
2、删除唯一约束,本质是修改对应字段
代码语言:javascript代码运行次数:0运行复制-- 删除唯一约束
ALTER TABLE stu MODIFY AME VARCHAR(20);
、创建表之后,添加唯一约束,本质是修改对应字段
代码语言:javascript代码运行次数:0运行复制-- 创建表之后,添加name的非空约束
ALTER TABLE stu MODIFY AME VARCHAR(20) OT ULL;
1、注意
①含义:非空且唯一;
②一张表只能有一个主键;
2、创建表时添加主键约束
代码语言:javascript代码运行次数:0运行复制CREATE TABLE stu(
id IT PRIMARY KEY, -- 主键约束
AME VARCHAR(20)
);
、删除主键约束和创建表之后添加主键约束与非空约束和唯一约束一样
1、概念
如果某一列是数值类型的,使用auto_increment可以来完成值的自动增长;
2、创建表时添加
代码语言:javascript代码运行次数:0运行复制CREATE TABLE stu(
id ITPRIMARY KEY AUTO_ICREMET, -- 主键自动增长
AME VARCHAR(20)
);
注意:添加语句时主键的内容填入ULL即可,会根据上一个主键的值进行自动增加
、删除自动增长和创建表后自动增长,同非空约束和唯一约束;
1、描述
个人理解:加入一个部门的员工表,对于每一个员工在某些字段上存在大量相同的数据,比如有几百名来自同一部门的员工同时都是男性,都是大学生这些相同属性,那么这个时候重复地将一些相同的数据赋值给不同的员工,这样来说浪费了很多内存,那么这样的话就可以建立一个从表,将这些表具有相同值的字段添加进去,主表进行调取即可,这就像是写代码中的定义变量,不需要一次次赋予一样的值。
2、在创建表时添加外键
语法格式:
代码语言:javascript代码运行次数:0运行复制create table 表名(
...
外键列名称 数据类型,
ctraint 外键名称 foreign key (外键列名称) references 从表名称(关联的从表列(一般是主键)名称)
);
注意:从表要在主表创建之前 创建并添加数据记录,主表才能使用;
完整案例代码:
代码语言:javascript代码运行次数:0运行复制-- 创建从表,记录学生的性别和年龄,id自增长
CREATE TABLE stu_p(
id IT PRIMARY KEY AUTO_ICREMET,
VARCHAR(20),
age IT
)
-- 为从表添加记录
ISERT ITO stu_p(id,,age) VALUES(1,"男",20);
ISERT ITO stu_p(id,,age) VALUES(ULL,"男",21);
ISERT ITO stu_p(id,,age) VALUES(ULL,"男",22);
ISERT ITO stu_p(id,,age) VALUES(ULL,"女",20);
ISERT ITO stu_p(id,,age) VALUES(ULL,"女",21);
ISERT ITO stu_p(id,,age) VALUES(ULL,"女",22);
-- 创建主表,记录学生的信息,关联从表里面学生的属性
CREATE TABLE stu(
id IT PRIMARY KEY AUTO_ICREMET,
AME VARCHAR(20),
ranking IT,
dep_id IT, -- 外键对应的从表的主键(一般都是对应主键)
COSTRAIT stu_p_id_fk FOREIG KEY (dep_id) REFERECES stu_p(id)
)
-- 为主表添加记录
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(1,"大哥",1,1);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"二哥",,2);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"三哥",2,);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"四哥",5,2);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"大",8,1);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"二",44,2);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"三",1,);
ISERT ITO stu(id,AME,ranking,dep_id) VALUES(ULL,"四",51,);
-- 查询从表数据
SELECT * FROM stu_p;
-- 查询主表数据
SELECT * FROM stu;
、删除外键
代码语言:javascript代码运行次数:0运行复制ALTER TABLE 主表名 DROP FOREIG KEY 外键名称;
4、创建表后添加外键
代码语言:javascript代码运行次数:0运行复制ALTER TABLE 主表名 ADD ctraint 外键名称 foreign key (外键列名称) references 从表名称(关联的从表列(一般是主键)
外键备注:外键可以为null,但是不能为不存在的外键值;
1、添加外键,设置级联更新和级联删除
代码语言:javascript代码运行次数:0运行复制ALTER TABLE 主表名
ADD ctraint 外键名称
foreign key (外键列名称)
references 从表名称(关联的从表列(一般是主键)
O UPDATE CASCADE O DELETE CASCADE;
当删除从表里面的记录时,主表里面关联所删除的记录主键的记录也会被一起删除;
2、分类
级联更新:O UPDATE CASCAD
级联删除:O DELETE CASCADE
、备注
级联操作用的时候一定要非常谨慎,因为很容易误删数据;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除数据insertmysqlnulltable#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-23 17:40:06
推荐阅读
留言与评论(共有 10 条评论) |
本站网友 星河世纪城 | 22分钟前 发表 |
"二" | |
本站网友 注册公司需要多少钱 | 19分钟前 发表 |
外键约束——级联操作1 | |
本站网友 续播 | 23分钟前 发表 |
这就像是写代码中的定义变量 | |
本站网友 中国二手车网 | 9分钟前 发表 |
"大哥" | |
本站网友 沙头角二手房网 | 12分钟前 发表 |
记录学生的性别和年龄 | |
本站网友 枸杞叶的功效 | 7分钟前 发表 |
); ISERT ITO stu(id | |
本站网友 深夜时分 | 16分钟前 发表 |
"四哥" | |
本站网友 票盟 | 28分钟前 发表 |
主键约束1 | |
本站网友 北京种植牙医院 | 8分钟前 发表 |
分类级联更新:O UPDATE CASCAD级联删除:O DELETE CASCADE |