当前位置: 首页 > news >正文

MySQL约束知识点

1. PRIMARY KEY(主键约束)

作用

唯一标识表中的每条记录,确保记录的唯一性且不为空

特点

一个表只能有一个主键,主键字段的值不能重复且不能为NULL

示例

-- 创建表时定义主键
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50)
);-- 复合主键(多个字段组合作为主键)
CREATE TABLE student_courses (student_id INT,course_id INT,PRIMARY KEY (student_id, course_id)
);

2. FOREIGN KEY(外键约束)

作用

用于关联两个表,确保一个表中的数据匹配另一个表中的数据

特点

建立表之间的父子关系,子表的外键值必须匹配父表的主键值或为NULL

示例

-- 父表
CREATE TABLE departments (dept_id INT PRIMARY KEY,dept_name VARCHAR(50)
);-- 子表(含外键)
CREATE TABLE employees (emp_id INT PRIMARY KEY,emp_name VARCHAR(50),dept_id INT,FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

3. NOT NULL(非空约束)

作用

确保字段不能存储NULL值

示例

CREATE TABLE users (id INT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL
);

4. UNIQUE(唯一约束)

作用

确保字段的值是唯一的,但允许NULL值(一个字段可以有多个NULL)

特点

与主键的区别是,一个表可以有多个UNIQUE约束,且UNIQUE字段允许NULL

示例

CREATE TABLE customers (id INT PRIMARY KEY,phone VARCHAR(20) UNIQUE,email VARCHAR(100) UNIQUE
);

5. CHECK(检查约束)

作用

确保字段的值满足指定的条件

注意

MySQL 8.0.16及以上版本才完全支持CHECK约束

示例

CREATE TABLE products (id INT PRIMARY KEY,name VARCHAR(50),price DECIMAL(10,2) CHECK (price > 0),stock INT CHECK (stock >= 0)
);

6. DEFAULT(默认值约束)

作用

当插入数据时,如果未指定该字段的值,则使用默认值

示例

CREATE TABLE orders (id INT PRIMARY KEY,order_date DATE DEFAULT CURRENT_DATE(),status VARCHAR(20) DEFAULT 'pending'
);

约束的作用总结

1. 保证数据的完整性:防止无效或不合理的数据进入表中

2. 保证数据的一致性:尤其是通过外键约束维护表之间的关系

3. 提高查询性能:主键和唯一约束会自动创建索引

4. 简化应用程序逻辑:数据库层直接处理数据验证,减少应用程序代码

http://www.dtcms.com/a/333850.html

相关文章:

  • iceberg 底层存储HDFS与juiceFS的区别
  • epoll发数据学习
  • 自己开发的VIP monitor通过TLM port口连接到RefenceModel 但是get不出transaction的问题
  • 《中国棒球知识科普》国家级运动健将标准·棒球1号位
  • 力扣(接雨水)——标准双指针
  • 最长链(二叉树直径DFS)
  • 【学习笔记】NTP服务客户端配置
  • 医疗领域名词标准化工具
  • 二分算法(模板)
  • Vue插槽---slot详解
  • RAGFlow入门
  • 大麦APP抢票揭秘
  • 亚马逊新品推广的智能突围:从传统SP广告到DeepBI策略革新
  • 结合项目对AOP的实践和理论讲解-AOP八股
  • 第十四节:物理引擎集成:Cannon.js入门
  • Windows Server Core智能调优
  • 智能体开发实战:用Deepseek做一个生成思维导图的智能体
  • SSH协议的GIT转换
  • 访问者模式C++
  • Day55 Java面向对象09 super关键字详解
  • MySQL 高效查询五虎将——分页、排序、分组、去重、聚合函数实战手册
  • 解决HFSS许可证激活错误的实用方法
  • QT开发中QString是怎么转char*类型的
  • 轴机械臂cad【7张】三维图+设计说明书
  • 子进程资源回收与线程相关概念
  • 机器视觉助力柔性屏贴合工艺升级,精度可达0.01mm
  • 文章数据发布到苹果CMS(MacCMS)网站技巧
  • 深入理解Transformer:从训练机制到长文本处理的核心问题
  • Erlang notes[2]
  • Fastadmin后台列表导出到表格