MySQL-基础篇-约束

  • 约束

    • 概述

      • 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

      • 目的:保证数据库中数据的正确、有效性和完整性。

      • 分类

          • 注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
          • 补充
            • MySQL数据库中主键自增的关键字:AUTO_INCREMENT。
            • 检查约束CHECK中的多个条件之间用&&连接。
    • 外键约束

      • 概念:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

          • 注意:目前上述的两张表,在数据库层面,并未建立外键关联(逻辑外键),所以是无法保证数据的一致性和完整性的。
      • 添加外键

        • 建表时添加外键

          sql 复制代码
            CREATE TABLE 表名(
                字段名 数据类型,
                ...,
                [CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
            );
        • 建表后添加外键

          sql 复制代码
            ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名);
      • 删除外键

        sql 复制代码
          ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
      • 删除/更新行为

        • 更改外键删除/更新行为的语法(以CASCADE为例)

          sql 复制代码
            ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段) REFERENCES 主表名(主表字段名) 
            	ON UPDATE CASCADE ON DELETE CASCADE;
相关推荐
麦聪聊数据1 小时前
SQL与数据库开发(五):纯 SQL 解决“连续签到”与“用户留存”问题
数据库·sql·数据库开发
刘~浪地球1 小时前
MongoDB数据模型设计:构建高效的文档结构
数据库·mongodb
AC赳赳老秦1 小时前
数据安全合规:OpenClaw 敏感信息脱敏、操作日志审计、权限精细化管控方案,符合等保要求
网络·数据库·python·安全·web安全·oracle·openclaw
TDengine (老段)2 小时前
TDengine 整体架构全景 — 深度解析
大数据·数据库·物联网·架构·时序数据库·tdengine·涛思数据
Mahir082 小时前
MySQL 事务全解:从 ACID 特性到并发问题,再到底层实现与线上最佳实践
数据库·mysql·面试
前进的李工2 小时前
高效索引优化:数据库查询提速指南(适合创建索引的11种情况)
数据库·mysql·面试
l1t2 小时前
DeepSeek总结的无需编译器:编写纯 SQL 的 Postgres 扩展
数据库·sql·postgresql
【心态好不摆烂】2 小时前
MySQL数据类型
数据库·mysql
码云骑士2 小时前
jwt入门介绍
linux·运维·数据库