sql使用小技巧之约束(Constraints、NOT NULL、UNIQUE、PRIMARY KEY)简单了解下

SQL 约束(Constraints)主要用于用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

来看下建表的语法:

CREATE TABLE table_name
(
    column_name1 data_type(size) constraint_name,
    column_name2 data_type(size) constraint_name,
    column_name3 data_type(size) constraint_name,
    ....
);

在 SQL 中,我们有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

在默认的情况下,表的列接受 NULL 值。但是,NOT NULL 约束强制列不接受 NULL 值 ,并且强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

其次,UNIQUE 约束唯一标识数据库表中的每条记录。它和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,并且PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束,但是我们要注意的是,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

我们如果需要命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,可以参考下面的 SQL 语法:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

当表已存在时,如果需要定义或者说创建单个 UNIQUE 约束的话,可以参考如下语法:

ALTER TABLE tableName ADD UNIQUE (columnName)

如果需要命名 UNIQUE 约束并且定义多个列的 UNIQUE 约束的话,可以参考如下语法:

ALTER TABLE tableName ADD CONSTRAINT uniqueName UNIQUE (column,column...)

撤销 UNIQUE 约束的话,参考如下:

ALTER TABLE tableName DROP INDEX uniqueName

PRIMARY KEY 约束唯一标识数据库表中的每条记录,同时主键必须包含唯一的值,还有就是主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

我们如果需要命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束,语法参考如下:

CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

在上面的实例中,只有一个主键 PRIMARY KEY(pk_PersonID),但是,pk_PersonID 的值是由两个列(P_Id 和 LastName)组成的。之前说的unique里面定义多个列的也是同理。

之后咱们来看下表已经建成之后如何添加和撤销这个主键约束:

单个列添加:
ALTER TABLE tableName ADD PRIMARY KEY (columnName)

定义多个列的 PRIMARY KEY 约束:
ALTER TABLE tableName ADD CONSTRAINT primaryName PRIMARY KEY (columnName,columnName)

撤销 PRIMARY KEY 约束:
ALTER TABLE tableName DROP PRIMARY KEY

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值