MySql约束超详细介绍
在 MySQL 中,约束是用于强制实施数据完整性的规则。MySQL 的约束有多种类型,分别是主键、唯一、非空、默认和外键。下面将详细介绍这些类型的约束及其使用。
主键约束
主键约束是一组列或单列,其值标识表中每个记录的唯一性。创建主键会自动创建唯一索引,因此不允许在表中有重复值或NULL值。主键可由用户创建或由系统自动创建。
用户创建主键约束
我们可以在创建表时,通过在列定义中使用 PRIMARY KEY
约束创建主键,如下所示:
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
PRIMARY KEY (P_Id)
);
系统自动创建主键约束
如果您没有指定主键,MySQL会自动为该表在第一个定义为 NOT NULL
的列上创建一个主键,如下所示:
CREATE TABLE Persons (
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
PRIMARY KEY (P_Id)
);
唯一约束
唯一约束用于确保列中的所有值都是唯一的。唯一约束与主键约束类似,但唯一约束允许NULL值。
用户创建唯一约束
我们可以在创建表时,在列定义中使用 UNIQUE
约束创建唯一约束,如下所示:
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (P_Id)
);
消除约束
我们可以在表上删除唯一约束,如下所示:
ALTER TABLE Persons
DROP INDEX P_Id;
非空约束
非空约束确保列中的值不能为空。非空约束是在创建表时定义的。
我们可以在创建列时,在列定义中使用 NOT NULL
约束创建非空约束,如下所示:
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
默认约束
默认约束用于向列中插入默认值。如果没有指定值,则使用默认值。默认约束是在创建表时定义的。
我们可以在创建列时,在列定义中使用 DEFAULT
约束创建默认约束,如下所示:
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int DEFAULT 18
);
修改约束
我们可以在表上更新默认值,如下所示:
ALTER TABLE Persons
ALTER Age SET DEFAULT 25;
外键约束
外键约束用于确保关系表中的完整性。外键约束是用于建立表与其它表之间联系的。
用户创建外键约束
我们可以在创建表时,在列定义中使用 FOREIGN KEY
约束创建外键约束,如下所示:
CREATE TABLE Orders (
OrderId int PRIMARY KEY,
OrderNumber int NOT NULL,
PersonId int,
FOREIGN KEY (PersonId) REFERENCES Persons(P_Id)
);
删除外键约束
我们可以通过以下方式删除外键约束:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PersonOrder;
结论
MySQL内置了多种类型的约束,包括主键、唯一、非空、默认和外键约束。合理使用这些约束可以有效地保证数据的完整性和一致性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySql约束超详细介绍 - Python技术站