0


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

在这里插入图片描述

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 《MySQL探索之旅》 |《Web世界探险家》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

1. 数据库约束类型

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

2. not null 非空

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

createtable student(id intnotnull, name varchar(20), age int);

image-20240329085634362

上述命令指定

id

这一列的数据不能为空。

测试:插入

id

为空的记录是否能成功插入

insertinto student values(null,'张三',18);

image-20240329090522099

3. unique 唯一

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

createtable student(id intunique, name varchar(20), age int);

上述命令指定

id

这一列的数据不能重复

测试:插入

id

重复的记录是否都能成功插入

insertinto student values(1,'张三',18);insertinto student values(1,'张三',18);

image-20240329091154965

4. default 默认值

指定插入数据的时候,

sex

列为空,默认值

createtable student(id int, name varchar(20), sex varchar(10)default'女');

image-20240329091838196

测试:

insertinto student(id, name)values(1,'张三');insertinto student(id, name, sex)values(2,'李四','男');

image-20240329092609204

5. primary key:主键约束

指定

id

列为主键

createtable student(id intprimarykey, name varchar(20));

主键相当于

not null

unique

的结合

测试:

insertinto student values(null,'张三');insertinto student values(1,'张三');insertinto student values(1,'张三');

image-20240329093621098

对于整数类型的主键,常配搭自增长

auto_increment

来使用。插入数据对应字段不给值时,使用最大

+1

,而不是前一条记录

+1

insertinto student values(1,'张三');insertinto student values(null,'李四');insertinto student values(100,'赵五');insertinto student values(5,'宋六');insertinto student values(null,'王麻子');select*from student;

image-20240329094438389

6. foreign key:外键约束

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

foreignkey(字段名) referenes 主表(列)

示例:

  • 创建班级表,设置 classId 为主键createtable class(id intprimarykey, name varchar(20));
  • 创建学生表,设置id 为主键,一个学生对应一个班级,一个班级对应多个学生。使用id为主键,classeId 为外键,关联班级表id``````createtable student(id intprimarykey, name varchar(20), classId int,foreignkey(classId)references class(id));

在这个语句中, 定义一个外键的实际作用是,在这条语句执行后,确保 MySQL 插入外键中的每一个非空值已经在被参照表中作为主键出现。这意味着,对于

student

表中的每一个

classId

,都执行一次检查,看这个编号是否出现在

class

表的

id

列(主键)中。如果不存在,则出现出错信息。

image-20240329181043976

标签: mysql android 数据库

本文转载自: https://blog.csdn.net/QQ3447387928/article/details/137153190
版权归原作者 爱敲代码的小杨. 所有, 如有侵权,请联系我们删除。

“【MySQL探索之旅】MySQL数据表的增删查改——约束”的评论:

还没有评论