为了账号安全,请及时绑定邮箱和手机立即绑定

SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束

SQL NOT NULL 约束

SQL NOT NULL 约束用于强制确保列不接受 NULL 值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。

在 CREATE TABLE 时使用 SQL NOT NULL

以下 SQL 确保在创建 “Persons” 表时,“ID”、“LastName” 和 “FirstName” 列将不接受 NULL 值:

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:

ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL;

对于 MySQL / Oracle(10G 之前的版本):

ALTER TABLE Persons
MODIFY COLUMN Age int NOT NULL;

对于 Oracle 10G 及更高版本:

ALTER TABLE Persons
MODIFY Age int NOT NULL;

通过这些 SQL 语句,您可以确保指定列不会包含 NULL 值,从而增强数据的完整性。

SQL UNIQUE 约束

SQL UNIQUE 约束确保列中的所有值都是不同的。UNIQUEPRIMARY KEY 约束都为列或一组列提供了唯一性的保证。PRIMARY KEY 约束自动具有 UNIQUE 约束。每个表只能有一个 PRIMARY KEY 约束,但可以有多个 UNIQUE 约束。

在 CREATE TABLE 时使用 SQL UNIQUE 约束

以下 SQL 在创建 “Persons” 表时在 “ID” 列上创建了一个 UNIQUE 约束:

对于 SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

对于 MySQL:

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:

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:

ALTER TABLE Persons
ADD UNIQUE (ID);

要为 UNIQUE 约束命名,并在多列上定义 UNIQUE 约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);

删除 UNIQUE 约束

要删除 UNIQUE 约束,请使用以下 SQL:

对于 MySQL:

ALTER TABLE Persons
DROP INDEX UC_Person;

对于 SQL Server / Oracle / MS Access:

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:

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:

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:

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 KEYPK_Person)。然而,主键的值由两个列(ID + LastName)组成。

在 ALTER TABLE 时使用 SQL PRIMARY KEY

要在表已经创建的情况下在 “ID” 列上创建主键约束,请使用以下 SQL:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (ID);

要允许对主键约束进行命名,并定义在多列上的主键约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);

注意: 如果使用 ALTER TABLE 添加主键,则主键列必须在创建表时声明为不包含 NULL 值。

删除 PRIMARY KEY 约束

要删除主键约束,请使用以下 SQL:

对于 MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY;

对于 SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

通过这些 SQL 语句,您可以在数据库中定义和管理 PRIMARY KEY 约束,以确保表中的数据具有唯一的标识。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消