首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【愚公系列】2022年01月 Mysql数据库-约束

数据库常见六大约束如下: 1.主键约束 2.非空约束 3.自增长约束 4.非负约束 5.唯一约束 6.外键约束 2.约束作用 数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则...; 5.非空约束 建表时添加非空约束 -- 标准语法 CREATE TABLE 表名( 列名 数据类型 NOT NULL, 列名 数据类型, ... ); -- 创建student4...ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1; 建表后添加外键约束 -- 标准语法 ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN...KEY (本表外键列名) REFERENCES 主表名(主键列名); -- 添加外键约束 ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY...DROP FOREIGN KEY ou_fk1; -- 添加外键约束,同时添加级联更新和级联删除 ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN

55810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL笔记(1)——MySQL创建数据库

    一般创建数据库有两种方式,一种是命令,另外一种就是通过数据库管理工具,本文主要记录通过命令的方式创建; 后面的学习也都是基于这个数据库进行的; 场景 创建一个大学生成绩管理数据库; 包含学生表、课程表...KEY:指定该约束为一个外键约束; (teacher_id):外键列名称,即参考 teacher 表中的哪一列。...约束名是否要和数据库中的约束名对应上 如果在代码中定义了MySQL约束名,则应该在数据库中将其对应的约束名称与之匹配。这是因为MySQL约束名是在创建表时定义的一种元数据,并将存储在数据库系统表中。...当修改或删除已存在的约束时,MySQL需要确切地知道哪个约束必须进行更改。 如果代码中定义的MySQL约束名与实际数据库中所存储的不匹配,则会导致错误。...因此,在开发中添加MySQL约束名时,请务必确保每个约束名称都与实际存储在数据库中的名称相匹配。此外,应避免使用太长或含义不明的名称,以便在未来快速定位约束问题。

    3.1K20

    【愚公系列】2023年03月 Java教学课程 100-MySQL数据库(约束)

    ; 5.非空约束 建表时添加非空约束 -- 标准语法 CREATE TABLE 表名( 列名 数据类型 NOT NULL, 列名 数据类型, ... ); -- 创建student4...TABLE orderlist DROP FOREIGN KEY ou_fk1; 建表后添加外键约束 -- 标准语法 ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN...KEY (本表外键列名) REFERENCES 主表名(主键列名); -- 添加外键约束 ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY...KEY (本表外键列名) REFERENCES 主表名(主键列名) ON UPDATE CASCADE ON DELETE CASCADE; -- 删除外键约束 ALTER TABLE orderlist...DROP FOREIGN KEY ou_fk1; -- 添加外键约束,同时添加级联更新和级联删除 ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN

    47200

    MySql基础之约束

    1、约束概述 什么是约束 可以在创建表时规定约束(通过 CREATE TABLE 语句) 或者在表创建之后通过 ALTER TABLE 语句规定约束 约束的分类 根据约束数据列的限制,约束可分为...在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。 MySQL会给唯一约束的列上默认创建一个唯一索引。...删除唯一约束只能通过删除唯一索引的方式删除。 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。...如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同; 如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。...emp drop index fk_dept_did; 约束等级 cascade方式 :在父表上update/delete记录时,同步update/delete掉子表的匹配记录 set null

    14710

    数据库操作指南:掌握CRUD和高级查询技巧,轻松实现数据操作

    Autoincrement,即自增约束。可以指定初始值,没有指定默认是0;插入节点的时候会自增。这对事务的一致性非常重要。unique,即唯一约束。primary,即主键约束。...设计表的时候,每张表都需要一个主键约束;就算没有设置,MySQL也会自动生成一个主键。foreign,即外键约束。用于表与表之间的联动关系。...1.5、创建表语法:CREATE TABLE `table_name` (column_name column_type);创建表的时候,要有列名称、列类型、约束。...其中,condition是条件,column是列名。二、高级查询做一些准备工作,为下面的查询操作建立数据库。...选项说明(自动加匹配二字)例子匹配值示例^文本开始字符'^b’匹配以字母b开头的字符串book, big,banana,bike.任何单个字符'b.t’匹配任何b和t之间有一个字符bit, bat,but

    13100

    【重学 MySQL】六十六、外键约束的使用

    列匹配:在主表的表名后面指定列名或列名的组合,这个列或列的组合必须是主表的主键。同时,外键中列的数目必须和主表的主键中列的数目相同。 数据类型一致:外键中列的数据类型必须和主表主键列的数据类型相同。...因为被依赖/被参考的值必须是唯一的 在创建外键约束时,如果不给外键约束命名,默认名不是列名,而是自动产生一个外键名(例如 student_ibfk_1;),也可以指定外键约束名。...通过ALTER TABLE添加外键约束 如果表已经存在,并且需要添加外键约束,可以使用ALTER TABLE语句。...例如: ALTER TABLE child_table DROP FOREIGN KEY fk_name; 其中,child_table是子表名称,fk_name是要删除的外键约束的名称。...也就是说,即使你不用外键约束,也要想办法通过应用层面的附加逻辑,来实现外键约束的功能,确保数据的一致性。 阿里开发规范 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

    13110

    linux 之mysql——约束(constraint)详解

    或者必须注册的时候需要添加邮箱等  三、约束种类 非空约束(not null)  唯一性约束(unique) 主键约束(primary key) PK 外键约束(foreign key) FK 四、非空约束...: 将id设置为主键  alter table myself modify id int primary key; 语法:alter table 表名 modify 列名称  列类型 primary key...,专门用来自动生成主键值,主键值不用用户维护,自动生成,自增数从1开始,以1递增(auto_increment)  mysql> create table t_user( -> id int(10...(foreign key)FK 只能是表级定义(如以下例子) 添加外键约束:设置本表的cno为外键  alter table myself add foreign key classno references...t_class(cno) 语法:alter table 表名称 add foreign key (列名称)  references  关联表名称(列名称); 外键删除:  alter table myself

    2.5K30

    【MySQL 系列】MySQL 语句篇_DDL 语句

    列名可由字母、数字、下划线和美元符号组成,列名长度在 64 个字符以内。...它是默认值;⑤ STORED: 当插入或修改数据时,MySQL 自动计算该列的值并存储下来;⑥ 可以在通过 CREATE TABLE 语句创建表时定义生成列,或者通过 ALTER TABLE 语句添加一个生成列...它可以通过名字删除任何约束,并不仅仅是外键; 3.2.4、CASCADE 策略 如果外键的 ON DELETE 和 ON UPDATE 使用了 CASCADE 策略: 当父表的行被删除的时候,子表中匹配的行也会被删除...当父表的行的键值更新的时候,子表中匹配的行的字段也会被更 3.3、唯一键约束 唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。...CONSTRAINT constraint_name 用于定义一个约束的名称。 它是可选的。如果不定义约束名称, MySQL 会自动为他生成一个。

    32410

    BI-SQL丨Drop & Alter

    UNIQUE(唯一)更新:新增唯一约束: ALTER TABLE 表名称 ADD UNIQUE (列名称) 新增多个列唯一约束: ALTER TABLE 表名称 ADD CONSTRAINT uc_约束名...KEY (列名称) 新增多个列主键约束: ALTER TABLE 表名称 ADD CONSTRAINT pk_约束名 PRIMARY KEY (列名称,列名称...)...KEY (列名称) REFERENCES 主键表(列名称) 新增多个列外键约束: ALTER TABLE 表名称 ADD CONSTRAINT fk_约束名 FOREIGN KEY (列名称) REFERENCES...主键表(列名称) 撤销外键约束: ALTER TABLE 表名称 DROP CONSTRAINT fk_约束名 CHECK(检查)更新: 新增检查约束: ALTER TABLE 表名称 ADD CHECK...(列名称 比较符 "条件") 新增多列检查约束: ALTER TABLE 表名称 ADD CONSTRAINT chk_约束名 CHECK (列名称 比较符 "条件" AND 列名称 比较符 "条件"

    70220

    数据库-MySQL-基础(8)-约束

    目录 概述  约束演示 外键约束 删除/更新行为 ---- 概述  1、概念:约束是作用于表中字段上的规则,用于限制存储表中的数据 2、目的:保证数据库中数据的正确、有效性和完整性 3、分类: 4、...注意: 约束是作用表中字段上的,可以在创建表 / 修改表时候添加约束  ---- 约束演示 案例:根据需求完成表结构的创建 代码 create table user( id int primary...[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名)REFERENCES 主表(主表列名) ); ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN...KEY(外键字段名) REFERENCES 主表(主表列名);  代码案例(接上面的例子) --添加外键 alter table emp add constraint fk_emp_dept_id...foreign key (dept_id) references dept(id); --删除外键 alter table emp drop foreign key fk_emp_dept_id;

    63320

    MySQL从删库到跑路_高级(一)——数据完整性

    数据的完整性是指数据的可靠性和准确性,数据完整性类型有四种: A、实体完整性:实体的完整性强制表的标识符列或主键的完整性(通过唯一约束,主键约束或标识列属性)。...B、域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则)。...可以通过聚合函数,查找有重复值的记录,删除,再创建唯一性约束。...如果外键约束指定了参照动作,主表记录做修改,删除,从表引用的列会做相应修改,或不修改,拒绝修改或设置为默认值。 引用表的列名必须是主键,且在删除引用表时必须删除引用关系或者删除当前表。...删除成绩表的外键约束 ALTER TABLEscoreDROP FOREIGN KEYscore_fk; 增加成绩表的sid列外键约束,参照动作为set null ALTER TABLEscoreADD

    1.9K20

    增加删除字段修改字段名,修改表结构,非常用SQL语句技巧总结

    [PSTNUsageNotes] off 10.暂时关闭约束检查,等数据操作完成后再打开。...[FK_USAGE_REFERENCE_PSTN2]-- 在这里执行有可能破坏外键约束的操作,如强行删除数据等ALTER TABLE [Usage] CHECK CONSTRAINT [FK_USAGE_REFERENCE_PSTN1...D 默认值或 DEFAULT 约束 F FOREIGN KEY 约束 FN 标量函数 IF 内嵌表函数 P 存储过程 RF 复制筛选存储过程 S 系统表 TF 表函数 TR 触发器 U...EXCEPT 运算符   EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。...INTERSECT 运算符   INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。

    2.3K30

    MySQL数据库——表的约束(非空约束、唯一约束、主键约束、外键约束)

    所以,基于以上问题,我们可以通过拆表解决,一张员工表,一张部门表,员工表中的dep_id 对应部门表中的id ?...以上仍然存在一个问题,当在员工表中输入不存的部门时,数据依然可以添加,不符合实际,因此,这里就可以通过使用外键约束来解决。 【概念】什么是外键约束?...外键列                    constraint 外键名称 foreign key (外键列名称) references 主表名称(主表主键名称)         ); -- 创建部门表...2)删除外键:ALTER TABLE 表名称 DROP FOREIGN KEY 外键名称; -- 删除外键 ALTER TABLE employee DROP FOREIGN KEY emp_dep_fk...ALTER TABLE employee ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCES department(id); 4)级联操作

    14.6K21
    领券