news 2026/8/21 19:29:46

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/8/21 22:15:24

银河麒麟桌面操作系统禁用无线网卡的几种方法

【操作方法】 方法一: 步骤1:打开终端,执行以下命令,查看无线网卡所使用的驱动。 $sudo lshw |grep wifi输出结果中“driver=”后面的内容,就是无线网卡驱动。 步骤2:在终端执行以下命令,修改/etc/modprobe.d/blacklist.conf文件。 $sudo vim /etc/modprobe.d/blackli…

作者头像 李华
网站建设 2026/8/21 21:27:57

社交软件压力测试:高并发场景下的稳定性评估与优化

在当今数字化时代,社交软件已成为日常生活和商业交流的核心工具,用户对实时性、可用性和性能的期望日益提高。根据2025年最新的行业数据,全球社交平台用户已突破50亿,日均交互量达千亿级别。压力测试作为软件质量保证的关键环节&a…

作者头像 李华
网站建设 2026/8/21 5:58:37

软件测试外包管理的精细化实施框架

随着企业数字化转型加速和敏捷开发的普及,软件测试外包已成为组织优化资源配置、降低人力成本的重要选择。据Gartner最新研究显示,2025年全球IT外包市场规模预计达1.2万亿美元,其中测试外包占比达28%。然而,测试外包项目的平均失败…

作者头像 李华
网站建设 2026/8/21 22:17:23

【期末复习02】

文章目录一.程序分析题项目结构分析题01分析题02分析题03分析题04二.程序改错题项目结构改错题01改错题02改错题03改错题04改错题05改错题06一.程序分析题 项目结构 分析题01 分析题02 分析题03 分析题04 二.程序改错题 项目结构 改错题01 改错题02 改错题03 改错题…

作者头像 李华
网站建设 2026/8/20 21:28:39

ubuntu 使用管理员的权限有几种方式

1.ubuntu 使用管理员的权限有几种方式在Ubuntu系统中,获取管理员权限主要通过以下几种方式,结合命令行与图形界面操作,需注意权限使用的安全性:1. sudo命令(临时权限提升)基础用法:在命令前加su…

作者头像 李华
网站建设 2026/8/19 7:48:28

typename的用法

1、typename关键字有3个主要用途:(1)在模板中声明一个参数类型;(2)用于告诉编译器一个嵌套的类型,而不是静态成员;(3)模板模板参数时使用,作为类型…

作者头像 李华