前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL探索之旅】MySQL数据表的增删查改——约束

【MySQL探索之旅】MySQL数据表的增删查改——约束

作者头像
爱敲代码的小杨.
发布2024-05-07 19:08:14
660
发布2024-05-07 19:08:14
举报
文章被收录于专栏:JavaJava

1. 数据库约束类型

  • not null :不允许某列存储空值(非空);
  • unique :不允许你某列存储重复值(唯一);
  • default :没有赋值的列存储默认值;
  • primary key:主键约束,not nullunique 的结合,确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。
  • foreign key:外键约束,保证一个表中的数据匹配另一个表中的值的参照完整性。

2. not null 非空

创建表的时候,指定列不为空

代码语言:javascript
复制
create table student(id int not null, name varchar(20), age int);

上述命令指定 id 这一列的数据不能为空。

测试:插入 id 为空的记录是否能成功插入

代码语言:javascript
复制
insert into student values (null,'张三',18);

3. unique 唯一

创建表的时候,指定某类的值不能重复。

代码语言:javascript
复制
create table student(id int unique, name varchar(20), age int);

上述命令指定 id 这一列的数据不能重复

测试:插入 id 重复的记录是否都能成功插入

代码语言:javascript
复制
insert into student values (1,'张三',18);
insert into student values (1,'张三',18);

4. default 默认值

指定插入数据的时候,sex 列为空,默认值

代码语言:javascript
复制
create table student(id int, name varchar(20), sex varchar(10) default '女');

测试:

代码语言:javascript
复制
insert into student(id, name) values (1,'张三');
insert into student(id, name, sex) values (2,'李四','男');

5. primary key:主键约束

指定 id 列为主键

代码语言:javascript
复制
create table student(id int primary key, name varchar(20));

主键相当于 not nullunique 的结合

测试:

代码语言:javascript
复制
insert into student values (null,'张三');
insert into student values (1,'张三');
insert into student values (1,'张三');

对于整数类型的主键,常配搭自增长 auto_increment来使用。插入数据对应字段不给值时,使用最大 值 +1 ,而不是前一条记录 +1

代码语言:javascript
复制
insert into student values (1,'张三');
insert into student values (null,'李四');
insert into student values (100,'赵五');
insert into student values (5,'宋六');
insert into student values (null,'王麻子');
select * from student;

6. foreign key:外键约束

外键用于关联其他表的主键或者唯一键,语法:

代码语言:javascript
复制
foreign key (字段名) referenes 主表(列)

示例:

创建班级表,设置 classId 为主键

代码语言:javascript
复制
create table class(id int primary key, name varchar(20));

创建学生表,设置id 为主键,一个学生对应一个班级,一个班级对应多个学生。使用id为主键, classeId 为外键,关联班级表id

代码语言:javascript
复制
create table student(id int primary key, name varchar(20), classId int, foreign key (classId) references class(id));

在这个语句中, 定义一个外键的实际作用是,在这条语句执行后,确保 MySQL 插入外键中的每一个非空值已经在被参照表中作为主键出现。这意味着,对于student 表中的每一个 classId ,都执行一次检查,看这个编号是否出现在 class 表的 id 列(主键)中。如果不存在,则出现出错信息。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数据库约束类型
  • 2. not null 非空
  • 3. unique 唯一
  • 4. default 默认值
  • 5. primary key:主键约束
  • 6. foreign key:外键约束
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com