MySQL数据库 12:约束

这篇具有很好参考价值的文章主要介绍了MySQL数据库 12:约束。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

约束:

在MySQL中,约束是一种限制数据表中列值的规定。保证数据库中的数据正确,有效性和完整性。MySQL中的约束有以下几种:

1. 主键约束(Primary Key Constraint):主键是用于唯一标识表中每行记录的列。主键约束要求每个主键列的值都是唯一的,且不能为NULL。一个表只能有一个主键。

2. 唯一约束(Unique Constraint)唯一约束要求列中的值各不相同,且可以为空(NULL)。一个表可以有多个唯一约束。

3. 非空约束(Not Null Constraint):非空约束要求列中的值不能为NULL

4. 外键约束(Foreign Key Constraint):外键是用于关联两个表的列。外键约束要求参照表中必须存在与被参照表中主键列相符的值。MySQL中的外键约束需要引用参照表中的主键列,从而保证参照表中的值是唯一的。

5.默认约束(Default constraint):保存数据的时候,如果未指定该字段的值,就采用默认值。

6.检查约束(Check constraints):保证字段值满足某一个条件

这些约束可用于对表中数据进行更全面、更安全的控制。例如,主键可以确保每个表行的唯一标识,唯一约束可以保证表中没有重复数据,非空约束可以避免NULL值,外键约束可以确保数据表之间的数据完整性。

MySQL数据库 12:约束


 文章来源地址https://www.toymoban.com/news/detail-474052.html

约束时作用在字段上的,它可以限制字段的数据。在创建表或修改表的时候添加约束,一个字段我们可以添加多个约束。


案例:创建以下表:
MySQL数据库 12:约束

 代码:

create table user (
    id int primary key  auto_increment comment '年龄' ,
    name varchar(10) not null unique comment '姓名',
    age int check ( age>0 &&age<120) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment'性别'
)comment'用户表';

 运行结果:
MySQL数据库 12:约束

 我们通过插入数据来一个个验证约束的功能

1.id的主键约束:

insert into user(name, age, status,gender) values('tom',19,'1','男'),('koy',14,'1','女');

结果:

MySQL数据库 12:约束

 我们发现即使不给id插值,他也会按照我们设定好的递增进行,也就是永远不会出现id重复的情况,而不会重复的id就作为每条数据的唯一标识。

在这里需要注意错误的数据虽然会因为约束而不能存储到表中,但是他也会有自己的主键,只是我们无法在这张表中调用,因此如果我们如果表中已经有两条数据,我们再输入不符合约束的两条数据,第五次输入一条符合约束的数据,那么此时这条符合约束的数据的id应该是5,而不是3,因为前面那两条没有输入成功的数据也为自己获取了一个唯一的主键,我们可以看下面status的默认约束来验证这条结论。

2.name的非空约束:

insert into user(name, age, status,gender) value(null,17,'1','男');

结果:

由于非空约束这里会直接报错,但是要注意的是空字符不是空,这里的非空约束是指值不能为NULL;
 MySQL数据库 12:约束

 name的唯一约束:

insert into user(name, age, status,gender) value('koy',10,'1','女');

结果:前面已经有koy这个名字了,受到唯一约束的影响,此时如果我们名字重复,会直接报错。

MySQL数据库 12:约束

 3.age的检查约束:

insert into user(name, age, status,gender) value('kot',130,'1','女');

结果:我们在前面定义的时候,约定了age的年龄范围在1-119之间,因此输入age=130会报错

MySQL数据库 12:约束

 4.status的默认约束:

默认约束采取有输入采取输入值,没输入采取默认值的做法。 

insert into user(name, age,gender) value('kob',15,'女');

结果:
 MySQL数据库 12:约束

 5.外键约束:

添加外键:


在这里我们预先建立一张表:
MySQL数据库 12:约束

 而他和我们之前那张表的关系为:

MySQL数据库 12:约束

 这两张表之间的关系为我们的status需要通过第二张表来补全。我们把具有外键status的表称为是子表,具有外键指向的主键的表我们称为是父表。但是目前来讲,这两张表只在逻辑上有关系,但是在数据库层面并没有建立起任何关系,如果我们删除dept表中的1,user中status列中的1仍然存在,这个时候就需要给user中的status加上外键约束

创建外键的语法:

CREATE TABLE 表名(
    字段名 数据类型,
    .....
    [CONSTRAINT][外键名称]FOREIGN KEY(外键字段名) REFERENCES 主表 (主表列名)
);

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表 (主表列名);

案例:我t们为user中的status添加外键约束,使其与dept表相连。

alter table user add constraint fk_user_dept_id foreign key (status) references dept(id) ;

执行成功以后我们会发现status上方多出来一个蓝色的钥匙 ,就说明它已经是一个外键了

MySQL数据库 12:约束

 此时我们尝试在dept中删除id为1.MySQL数据库 12:约束

 就会报错,因为此时user表中还有关于这个id的信息,因此我们的父表不可以对这个数据进行删除,我们也就在两个表之间建立了关联。

外键的删除:

ALTER TABLE 表名 DROP FORGEIGN KEY 外键名称

外键约束:
MySQL数据库 12:约束

 语法:

alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名(主表字段名) ON UPDATE CASCADE ON DELETE CASCADE ;

 

结束!
 

 

 

到了这里,关于MySQL数据库 12:约束的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • MySQL:数据库的约束

    MySQL:数据库的约束

    目录 1.数据库约束 1.1 非空:not null 1.2 唯一:unique         ​​​​​​​ 1.3 默认值:default 1.4 列描述:comment 1.5 主键约束:primary key 1.6 外键约束 1.7 综合案例 2.插入查询结果 3.聚合函数 4.group by(分组查询) 关系型数据库的一个重要功能,就是需要保证数据的完整性

    2024年02月05日
    浏览(7)
  • 【MySQL】数据库的约束

    【MySQL】数据库的约束

    哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库中对表的约束, 主要有null (空约束),unique(唯一约束),primary key(主键约束),default(默认值约束), forelgn key(外键约束),check(检查约束),超多实例讲解,通俗易懂。 更多相关知识敬请期待:保护小周ღ *★,°*:

    2023年04月09日
    浏览(13)
  • MySQL数据库:数据库的约束以及数据的聚合、联合查询

    MySQL数据库:数据库的约束以及数据的聚合、联合查询

    目录 一.关系模型的简要概述 二.数据库的约束  2.1约束类型         2.2NULL约束 2.3 UNIQUE:唯一约束 2.4 默认约束 2.5 PRIMARY KEY:主键约束 2.6 FOREIGN KEY:外键约束 2.7 CHECK约束 三.高效率查询 3.1高效率查询的分类 3.2聚合查询 3.2.1聚合函数 3.2.2 GROUP BY子句 3.2.3HAVING 3.3.联合查询

    2024年02月10日
    浏览(31)
  • 【MySQL数据库 | 第十二篇】:约束

    【MySQL数据库 | 第十二篇】:约束

    在MySQL中, 约束是一种限制数据表中列值的规定 。保证数据库中的数据正确,有效性和完整性。MySQL中的约束有以下几种: 1. 主键约束(Primary Key Constraint) :主键是用于唯一标识表中每行记录的列。主键约束要求 每个主键列的值都是唯一的,且不能为NULL 。一个表只能有一

    2024年02月08日
    浏览(10)
  • 【数据库】MySQL数据约束和表关系详解

    【数据库】MySQL数据约束和表关系详解

    目录 1.数据库约束 1.1约束类型 1.2NULL约束 1.3UNIQUE:唯一约束 1.4DEFAULT:默认值约束 1.5PRIMARY:主键约束 1.6FOREIGH KEY:外键约束 2.表的关系 2.1一对一 2.2一对多 2.3多对多 数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候

    2024年02月04日
    浏览(12)
  • MySQL数据库基础(九):SQL约束

    MySQL数据库基础(九):SQL约束

    文章目录 SQL约束 一、主键约束 二、非空约束 三、唯一约束 四、默认值约束 五、外键约束(了解) 六、总结 PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。 每个表都应该有一个主键,并且每个表只能有一个主键。 遵循原

    2024年02月19日
    浏览(15)
  • 【MySQL】一文带你了解数据库约束

    【MySQL】一文带你了解数据库约束

    作用: 数据库约束是用于限制数据输入或数据更新的规则。数据库约束确保在表中只能插入符合规则的数据,以确保数据的完整性和一致性。 常见的数据库约束包括: 主键约束:用于唯一标识表中的每一行数据,确保数据唯一性和完整性。 外键约束:用于确保表之间数据的

    2024年02月08日
    浏览(45)
  • MySQL的约束类型、数据库操作、数据表操作大全(简述)

    目录 一.数据库的操作语法 二.MySQL数据库约束 三.数据类型 四.数据表操作 作者简介:  tq02,一个想成为编程高手的梦中人 作者主页:  tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 学习专栏:  🎥  MySQL基础          🎥  JavaSE                🎥   C语言 本

    2024年02月12日
    浏览(48)
  • {MySQL} 数据库约束& 表的关系& 新增&&删除& 修改& 查询

    {MySQL} 数据库约束& 表的关系& 新增&&删除& 修改& 查询

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 承接上文,继续讲一下MySQL 提示:以下是本篇文章正文内容,下面案例可供参考 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值

    2024年02月03日
    浏览(47)
  • MySQL数据库干货_11—— MySQL中的非空约束(Not Null)

    非空约束(Not Null) 添加非空约束 使用DDL语句添加非空约束。 示例: 向 emp 表中的 salary 添加非空约束。 删除非空约束 使用DDL语句删除非空约束。 示例: 删除emp表中salary 的非空约束。 创建表时添加约束 查询表中的约束信息: 示例: 创建 depts 表包含 department_id 该列为主键且

    2024年02月07日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包