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;
相关推荐
倔强的石头_3 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横3 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二3 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab3 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
小猿姐3 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
ClouGence3 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
云技纵横4 天前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神4 天前
三、用户与权限管理
数据库·mysql
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql