SQL NOT NULL 约束
SQL NOT NULL
约束用于强制确保列不接受 NULL 值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。
在 CREATE TABLE 时使用 SQL NOT NULL
以下 SQL 确保在创建 "Persons" 表时,“ID”、“LastName” 和 “FirstName” 列将不接受 NULL 值:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
在 ALTER TABLE 时使用 SQL NOT NULL
要在已创建的 "Persons" 表上的 "Age" 列上创建 NOT NULL
约束,使用以下 SQL:
对于 SQL Server / MS Access:
代码语言:sql复制ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL;
对于 MySQL / Oracle(10G 之前的版本):
代码语言:sql复制ALTER TABLE Persons
MODIFY COLUMN Age int NOT NULL;
对于 Oracle 10G 及更高版本:
代码语言:sql复制ALTER TABLE Persons
MODIFY Age int NOT NULL;
通过这些 SQL 语句,您可以确保指定列不会包含 NULL 值,从而增强数据的完整性。
SQL UNIQUE 约束
SQL UNIQUE
约束确保列中的所有值都是不同的。UNIQUE
和 PRIMARY KEY
约束都为列或一组列提供了唯一性的保证。PRIMARY KEY
约束自动具有 UNIQUE
约束。每个表只能有一个 PRIMARY KEY
约束,但可以有多个 UNIQUE
约束。
在 CREATE TABLE 时使用 SQL UNIQUE 约束
以下 SQL 在创建 "Persons" 表时在 "ID" 列上创建了一个 UNIQUE
约束:
对于 SQL Server / Oracle / MS Access:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
对于 MySQL:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);
要为 UNIQUE
约束命名,并在多列上定义 UNIQUE
约束,请使用以下 SQL 语法:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID, LastName)
);
在 ALTER TABLE 时使用 SQL UNIQUE 约束
要在表已经创建的情况下在 "ID" 列上创建 UNIQUE
约束,请使用以下 SQL:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
ADD UNIQUE (ID);
要为 UNIQUE
约束命名,并在多列上定义 UNIQUE
约束,请使用以下 SQL 语法:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);
删除 UNIQUE 约束
要删除 UNIQUE
约束,请使用以下 SQL:
对于 MySQL:
代码语言:sql复制ALTER TABLE Persons
DROP INDEX UC_Person;
对于 SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
通过这些 SQL 语句,您可以在数据库中定义和管理 UNIQUE
约束,以确保列中的数据唯一性。
SQL PRIMARY KEY 约束
SQL PRIMARY KEY
约束唯一标识表中的每条记录。主键必须包含唯一的值,并且不能包含 NULL 值。一个表只能有一个主键;在表中,这个主键可以由单个列(字段)或多个列(字段)组成。
在 CREATE TABLE 时使用 SQL PRIMARY KEY
以下 SQL 在创建 "Persons" 表时在 "ID" 列上创建了一个 PRIMARY KEY
:
对于 MySQL:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
对于 SQL Server / Oracle / MS Access:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
要允许对主键约束进行命名,并定义在多列上的主键约束,请使用以下 SQL 语法:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);
注意: 在上面的示例中只有一个 PRIMARY KEY
(PK_Person
)。然而,主键的值由两个列(ID LastName)组成。
在 ALTER TABLE 时使用 SQL PRIMARY KEY
要在表已经创建的情况下在 "ID" 列上创建主键约束,请使用以下 SQL:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
ADD PRIMARY KEY (ID);
要允许对主键约束进行命名,并定义在多列上的主键约束,请使用以下 SQL 语法:
对于 MySQL / SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);
注意: 如果使用 ALTER TABLE
添加主键,则主键列必须在创建表时声明为不包含 NULL 值。
删除 PRIMARY KEY 约束
要删除主键约束,请使用以下 SQL:
对于 MySQL:
代码语言:sql复制ALTER TABLE Persons
DROP PRIMARY KEY;
对于 SQL Server / Oracle / MS Access:
代码语言:sql复制ALTER TABLE Persons
DROP CONSTRAINT PK_Person;
通过这些 SQL 语句,您可以在数据库中定义和管理 PRIMARY KEY
约束,以确保表中的数据具有唯一的标识。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注