1.SQL约束
w3cschool约束参考:https://www.w3cschool.cn/sql/vgh71oyq.html
约束:在表中数据列上强制执行的规则,用于限制可以进入表中的数据类型(漏斗)。
创建时间:1.约束可以在创建表时创建(通过create table语句),2.也可以在表创建后创建(通过alter table语句)。
约束范围:1.约束一个列,直接在列后使用。2.可以为约束命名,或约束多个列时,使用constraint语法。
注意:以上两种情况结合起来,可以有4种添加约束的方法
1.1.creat table时:约束一列——————————————在列尾直接写约束【如 not null】
1.2. 为约束命名,或者约束多列——————在所有语句后写 constraint 自定义约束名 约束(作用列)【如constraint abc not null(Pid)】
2.1.alter table时:添加一列:—————————————alter table 表名 add 约束(作用列)
2.2. 为约束命名,或者约束多列——————alter table 表名 add constraint 自定义约束名 约束(作用列)
级别:列级别(应用于一列),表级别(应用于整个表)。
作用:这确保了数据库中数据的准确性+可靠性。
常用约束:
主键约束————唯一标识表中的行
外键约束—————唯一标识其他表中的一条行
not null————非空约束
unique————保证列中数据不重复
default————提供一个默认值(当该列数据值未指定时采用默认值)
check————保证该列数据满足一个条件
索引————用于在数据库中快速创建+查找数据
-----------------------------------------------------------------
2.约束详情
(理论上所有约束都有4种写法,但目前SQL手册未写,不确定是遗漏还是不存在)
2.1.NOT NULL 约束
NOT NULL约束,强制字段始终包含值。
CREATE TABLE 时,约束单个列:
CREATE TABLE Persons
(
P_Id int NOT NULL, -------------- NOT NUL约束
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
----------------------------------
2.2.UNIQUE 约束
UNIQUE约束,唯一标识数据库的每条记录。
PRIMARY KEY约束拥有自动定义的UNIQUE约束,但每个表可以有多个唯一约束,只能有一个主键约束。
CREATE TABLE 时,约束单个列:
CREATE TABLE Persons
(
P_Id in