【你也能从零基础学会网站开发】 SQL结构化查询语言应用基础--DDL篇--创建表约束(table Constraints) 之 NOT NULL约束、UNIQUE 约束、CHECK约束 的使用技巧!

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

SQL 约束 NOT NULL

NOT NULL 约束可以强制字段不接受 NULL 值, 也就是说NOT NULL 约束可以强制字段始终包含值。
那么这意味着,如果不向该字段添加值,就无法插入新纪录或者更新记录。

举个栗子

create table Persons2(
 uid int primary key,
 username varchar(20) not null,
 password varchar(20) not null,
 age int,
 sex char(4)
)

如图

在企业管理器中我们也可以看到!

如图

总之有些数据,不是主键,但也不能为空的情况,例如, 用户名密码必须存在,那么我们就可以考虑给它们设置不为空约束!

UNIQUE 约束

UNIQUE 约束可以唯一标识数据库表中的每条记录。

但是要注意一点, UNIQUEPRIMARY KEY 约束都可以让字段值保持唯一性的。

并且这里还要注意: PRIMARY KEY其实内部拥有自动定义的 UNIQUE 约束的能力!

UNIQUEPRIMARY KEY的使用区别在于每个表可以有多个UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

所以表中有些数据字段需求让我们不允许重复的数据时,例如:用户表用户名不能重复,那么你就可以加上一个UNIQUE约束

创建unique约束

举个栗子

create table Persons3(
 uid int primary key,
 username varchar(20) not null unique,
 password varchar(20) not null,
 age int,
 sex char(4)
)

如图

因为unique也是一种索引,所以我们也可以同时给多个字段加上这个unique约束, 并且也命一个名字 方便管理!

语法规则

CONSTRAINT 约束名称 UNIQUE (字段1,字段2)

例如 我们同时把证书ID和手机号字段都设置成UNIQUE 约束

create table Persons3(
 uid int primary key,
 username varchar(20) not null unique,
 password varchar(20) not null,
 age int,
 sex char(4),
 certificateID varchar(30),
 phone varchar(30),
 CONSTRAINT uq_list UNIQUE (certificateID ,phone)
)

如图


然后我们在企业管理器中查看一下!

如图

修改unique约束

当表已被创建时,我们如果需要在字段列上创建 UNIQUE 约束,那么就使用下列 SQL

ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 UNIQUE (字段1,字段2,...)

大家自己去尝试一下吧!

删除unique约束

如果我们要在现有的数据表中,撤销 UNIQUE 约束 那么使用以下语句:

ALTER TABLE 表名称 DROP CONSTRAINT 约束名称

举个栗子

CHECK 值范围约束

CHECK 约束用于限制字段中的值范围。
如果对单个字段定义 CHECK 约束,那么这个字段只允许特定的值, 这样一来此约束会在特定的字段中对值进行限制输入!

举个栗子

在插入数据的时候,有些值我们不想乱写,例如年龄,从逻辑理论上讲,我们不可能把年龄写太大太小
那些数据是不合理的,那么我们就可以采用check来约束其值的范围。

创建check约束

语法规则

 字段名 数据类型 check(条件)

例如:我们约束用户表年龄字段的范围在: 18 ~ 40之间


create table Persons4(
 id int primary key,
 username varchar(20),
 password varchar(20),
 age int check(age>=18 and age<=40),
 sex char(4)
)

如图

这样子如果给这个年龄字段添加了不合法的范围值,那么就会报错!

如图

在创建表的时候,如果需要同时对多个字段创建check约束,以及命名 check约束 可以使用以下语法:

CONSTRAINT 约束名称 CHECK (字段条件 AND 字段条件)

例如

CREATE TABLE Persons5(
 Id_P int NOT NULL,
 LastName varchar(255) NOT NULL,
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255),
 CONSTRAINT chk_Person CHECK (Id_P>0 AND City='重庆市')
)

如图

修改check约束

但是如果在表已存在的情况下要给字段创建 CHECK 约束,以及给多个字段定义 CHECK 约束 并且命名 CHECK 约束 那么我们使用下面的 SQL 语法

ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 CHECK (字段条件 AND 字段条件 AND 字段条件 AND  ....)

例如

CREATE TABLE Persons5(
 Id_P int NOT NULL,
 LastName varchar(255) NOT NULL,
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255),
)

然后再添加上check约束

ALTER TABLE Persons5 ADD CONSTRAINT ck_list CHECK (Id_P>0 AND City='重庆市')

如图

删除check约束

我们可以根据定义的check约束名称进行删除, 语法如下:

ALTER TABLE 表名称 DROP CONSTRAINT 约束名称

如图

最后

学习了这几个SQL约束之后,我们需要根据不同的实际情况和需求来决定如何使用这些约束!
同时大家要注意一点,就是说一个字段是可以同时增加多个约束条件的!

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇