【你也能从零基础学会网站开发】 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 约束
可以唯一标识数据库表中的每条记录。
但是要注意一点, UNIQUE
和 PRIMARY KEY
约束都可以让字段值保持唯一性的。
并且这里还要注意: PRIMARY KEY
其实内部拥有自动定义的 UNIQUE 约束
的能力!
而UNIQUE
和 PRIMARY 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约束
之后,我们需要根据不同的实际情况和需求来决定如何使用这些约束!
同时大家要注意一点,就是说一个字段
是可以同时增加多个约束条件
的!
"👍点赞" "✍️评论" "收藏❤️"
欢迎一起交流学习❤️❤️💛💛💚💚
好玩 好用 好看
的干货教程可以
点击下方关注❤️
微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇