MySQL约束constraint

糟糕,说到 MySQL 的限制,这个问题需要解决。
主要的关键限制是资源。
它等于每个人的身份证号码。
它是唯一的,可确保每行数据的位置正确。
可以使用单列或多列。
创建表时,指定主关键字即可完成!如果稍后想要删除主键,请使用 alter table_name drop Primary key。

增量约束,该对象与主键配合良好。
例如,当您创建 t_user1 表时,主键会自动增长。
每当输入新数据时,主键值就会自动加一,非常方便。
初始值可以稍后修改或调整。

非空约束,这个问题值得讨论。
请务必检查字段值不能为空。
为了避免创建表时丢失数据,请使用非空关键字指定。
您必须注意差异限制。
检查字段或字段组合的唯一性以避免重复。
创建表时使用unique关键字,例如create table t_user8 (unique(...))。

还有默认约束定义字段的默认值,使您不必每次输入数据时手动填写它们。
零填充限制,显示数字字段时会自动填充前导零,看起来很整齐。
外键约束是维护表之间关系和确保数据完整性的强大工具。

总之,这些约束在MySQL中被大量使用,以保证数据的完整性和一致性。
说实话,刚开始学习的时候我并不太明白这些限制的用途。
现在想来,它们非常重要。

MySQL外码如何设置_MySQL外键约束创建与关联表设计教程

上周我和同事讨论了 MySQL 外键。

外键是表之间的关系。

2 02 3 年的这个项目将使用许多外键。

我的朋友正在开发一个电子商务系统,订单表和用户表都使用外键。

创建表时可以添加外键。

CREATE ORDER TABLE (order_id INT PRIMARY KEY, customer_id INT, CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCEScustomers (id))
这将创建一个外键约束。

删除 有多种选择。

RESTRICT 不允许删除。

CASCADE - 级联删除。

ON UPDATE 类似。

您还可以通过修改现有表来添加外键。

编辑订单表添加约束 fk_customer 外键 (customer_id) 对客户 (id) 的引用
记下匹配的数据类型。

如果客户表中没有对应的ID,则会报错。

Alter TABLE 还用于删除外键。

ALTER TABLE 命令 DROP FOREIGN KEY fk_customer
外键最大的好处是保证数据的一致性。

例如,订单不能与不存在的用户关联。

插入数据时会自动检查此项。

但是性能会受到一点影响。

因为我们需要检查父表。

但总的来说还是值得的。

特别是对于具有大量数据的系统。

设计表时考虑外键。

首先设计主表和子表的关系。

数据类型必须完全相同。

例如,INT 不能是 BIGINT。

字符集也是如此。

最好先建主表。

创建子表时添加外键。

创建索引也很重要。

最好在外键列上有索引。

请求会快得多。

ALTER TABLE 命令ADD INDEX idx_customer_id(customer_id)
ON DELETE RESTRICT 是最常用的。

防止意外数据删除。

拆除级联是有风险的。

谨慎使用。

测试时,一定要进行全面检查。

尤其是当数据量很大时。

有时会出现问题。

外键总是好的。

但是正确使用它。

MySQL中constraint的详解

MySQL的限制是对表设置规则来保证数据的可靠性。
这些是最常用的:
1 主键(主键) 作用:表中的每一行数据都有一个唯一的标识符。
列值不能重复或清空。
例如,在Student表中,使用ID作为主键可以确保每个学生获得不同的号码。
特点:一张表只能有一个主键。
它可以是单个列或多列的一组。
MySQL自动为主键创建索引,这使得查询数据变得更快。
示例:CREATE TABLE STUDENTS(ID INT PRIMARY KEY, NAME VARCHAR(5 0));
2 .外键(外键) 功能:创建表之间的关系。
例如,订单表中的产品 ID 必须与产品表中的特定产品 ID 匹配。
特点:外键列的值与另一个表的主键或唯一键值匹配。
例如,如果ON DELETE CASCADE删除了一个产品,那么订单中对应的产品ID也会被自动删除。
示例:创建表订单(order_id INT PRIMARY KEY,product_id INT,customer_id INT,FOREIGN KEY(product_id)参考产品(product_id));
3 独特的(独特的) 功能:保证列中的值不重复。
但与主键不同的是,唯一列可以包含 NULL 值(除非显式写为 NOT NULL)。
特点:一个表可以有多个唯一约束。
MySQL 自动创建唯一索引。
示例:创建表员工(employee_id INT PRIMARY KEY, EMAIL VARCHAR(5 0) UNIQUE);
4 检查 功能:自定义列值范围。
例如,年龄必须大于 0,价格必须大于 0。
特点:MySQL 8 .0以后才支持。
可以写出复杂的条件。
输入或更新数据时会自动检查。
示例:创建表产品(product_id INT PRIMARY KEY,数量 INT,价格 DECIMAL(1 0,2 ),CONSTRAINT CHK_quantity CHECK(quantity >= 0),CONSTRAINT CHK_price CHECK(price > 0));
5 默认(默认) 功能:当该列没有值时自动填充默认值。
例如,如果用户注册时没有填写密码,则会自动填写“1 2 3 4 5 6 ”。
特点:默认值可以是常量、函数(如记录当前时间的CURRENT_TIMESTAMP)或表达式。
示例:创建用户表(user_id INT PRIMARY KEY, USER NAME VARCHAR(5 0), PASSWORD VARCHAR(5 0) DEFAULT '1 2 3 4 5 6 ', create_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
6 .不为空(不为空) 功能:该列必须填写数值,不能省略空的。
特点:插入数据时必须填写此栏,除非设置了默认值。
示例:创建课程表(course_id INT PRIMARY KEY, Course_name VARCHAR(1 00) NOT NULL, Credit INT);
7 .自动增量 功能:自动生成递增整数。
它经常用作主键。
特点:与主键或唯一键一起使用。
每次插入新行时它会自动加 1 示例: CREATE TABLE LOG_ID (log_id INT AUTO_INCRMENT PRIMARY KEY, TEXT MESSAGE, CREATE_IN TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
命名并修改约束: 命名:使用 CONSTRAINT 关键字为约束命名,以方便将来更改。
示例: CONSTRAINT fk_customer FOREIGN KEY(customer_id) REFERENCES CUSTOMER(customer_id);
编辑:使用 ALTER TABLE 添加或删除约束。
添加唯一约束:ALTER TABLE 添加约束员工 uk_email UNIQUE(email); 删除外键:ALTER TABLE DROP FOREIGN KEY 命令 fk_customer;
简而言之,就是这样。
使用它可以确保数据无错误并快速验证。
实际使用时,应根据业务需求选择约束。