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;
相关推荐
程序员夏洛36 分钟前
MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
数据库·mysql
Wang's Blog1 小时前
PostgreSQL笔记34:索引优化策略全景解析——从B-tree到HOT的核心原理与实践
数据库·笔记·postgresql
l1258652 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
梦Arrebol2 小时前
Mysql内容及相关实验
数据库·mysql
OceanWaves19932 小时前
mysql 8.0.32 磁盘爆满,清理从库日志
数据库·mysql
凤山老林2 小时前
数据库读写分离与动态路由实战:Spring Boot + ShardingSphere-JDBC 生产配置
数据库·spring boot·后端·分库分表·sharding-jdbc
l1258653 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
聚美智数4 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
JavaPub-rodert4 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
瀚高PG实验室5 小时前
SQL优化案例:存储过程、复杂SQL拆成简单SQL提升整体性能
数据库·sql·postgresql·瀚高数据库