news 2026/6/23 15:54:53

SQL约束解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL约束解析

约束分类:

NOT NULL 非空约束:字段必须有值

UNIQUE 唯一约束:值不能重复,但允许多个 NULL

PRINARY KEY 主键约束:既是 NOT NULL 又是 UNIQUE

DEFAULT 默认约束: 保存数据时.如果未指定该字段的值,则采用默认值

CHECK 检查约束:保证字段满足某一个值

FOREIGN KEY 外键约束:用来让两张表的数据之间建立连接,保证数据的一致性和完整性

外键完整语法:

建表时一起创建

CREATE TABLE 主表 ( id INT PRIMARY KEY, name VARCHAR(20) ); CREATE TABLE 从表 ( id INT PRIMARY KEY, pid INT, -- 外键级联动作写在 REFERENCES 后面 CONSTRAINT fk_从表_主表 -- 外键名自定义 FOREIGN KEY (pid) -- 从表列 REFERENCES 主表(id) -- 主表列 ON UPDATE CASCADE -- 主表更新,从表同步 ON DELETE SET NULL -- 主表删除,从表置空 );

表已存在,事后追加:

ALTER TABLE 从表 ADD CONSTRAINT fk_从表_主表 FOREIGN KEY (pid) REFERENCES 主表(id) ON UPDATE CASCADE ON DELETE SET NULL;

5 种级联动作对照表:

NO ACTION /RESTRICT:删除/更新 如果存在关联,则拒绝主表操作

CASCADE: 更新/删除 同步更新/同步删除

SET NULL:删除/更新 外键列设为 NULL(从表该列需允许 NULL)

SET DEFAULT:删除/更新 外键列设为默认值

-- 1. 主表:班级 CREATE TABLE t_class ( class_id INT PRIMARY KEY, cname VARCHAR(20) UNIQUE ); -- 2. 从表:学生 CREATE TABLE t_student ( stu_id INT PRIMARY KEY, sname VARCHAR(20) NOT NULL, class_id INT, age TINYINT CHECK (age BETWEEN 16 AND 30), -- 外键 CONSTRAINT fk_stu_class FOREIGN KEY (class_id) REFERENCES t_class(class_id) ON UPDATE CASCADE ON DELETE RESTRICT );
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 15:51:48

地铁调研12-17

今天地铁调研主要内容包括:1.跟随工人使用道尺进行巡检。主要测量内容:轨道内距,轨道水平情况。记录:/-x,毫米。2.涂油板(道岔变轨部分)的油是否还有。3.扣配件的螺栓是否松动扣配件的情况&…

作者头像 李华
网站建设 2026/6/22 19:04:16

现代软件测试工具全景对比与选型指南

随着敏捷开发与DevOps实践的普及,软件测试工具生态呈现百花齐放态势。截至2025年末,测试工具已从简单的BUG记录工具发展为覆盖自动化测试、性能监控、安全检测的完整解决方案。本文将通过功能性对比、适用场景分析及成本效益评估三个维度,为测…

作者头像 李华
网站建设 2026/6/23 15:47:06

基于 Apache POI 的体检报告 Word 生成实战文档

基于 Apache POI 的体检报告 Word 生成实战文档一 项目目标与总体设计 目标:基于模板快速生成排版规范的体检报告,支持文本替换、动态表格、图片插入,并可一键导出 PDF 用于归档与打印。技术选型: Apache POI XWPF:操作…

作者头像 李华
网站建设 2026/6/21 12:23:45

org.jetbrains.annotations的@Nullable 学习

Nullable 是 JetBrains 提供的一套用于 Java 静态分析的注解(annotations)之一,属于 org.jetbrains.annotations 包。它主要用于标注一个变量、参数、方法返回值等可能为 null,从而帮助 IDE(如 IntelliJ IDEA&#xff…

作者头像 李华
网站建设 2026/6/23 13:25:25

计算机毕业设计springboot计算机硬件自配系统 基于Spring Boot的计算机硬件配置管理系统设计与实现 Spring Boot架构下的计算机硬件自选系统开发

计算机毕业设计springboot计算机硬件自配系统839019 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的飞速发展,计算机硬件市场的复杂性和多样性不断增加…

作者头像 李华
网站建设 2026/6/22 6:17:51

【信创】中间件对比

定位说明:本文面向企业架构师、后端研发负责人、信创项目技术选型人员,系统梳理中间件的分类体系、国外主流产品格局,以及国产信创中间件的对标与落地实践建议,适合作为技术博客或内部技术白皮书使用。一、中间件的核心定位与价值…

作者头像 李华