🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注
什么是SQL数据表约束?
SQL数据表约束
的作用是强加在数据库表上的字段规则
,用于限制数据进入表中的类型,以确保数据的准确性
和可靠性
,就像是限制条约一样!
这些约束
可以在创建表时
定义,也可以在表创建后
通过特定的SQL语句进行修改添加!
其实不难理解约束
这个词汇,你也可以理解成限制条件, 你总不能让一种数据类型的字段,让它随随便便保存乱七八糟的数据类型进来吧! 这就要用到约束
了!
总的来说约束
有助于保护数据库免受无效数据的污染,确保数据的完整性
和一致性
。
接下来我们就看看数据表字段中到底有哪些字段约束,以及如何使用它们!
PRIMARY KEY 主键约束
PRIMARY KEY 约束
前面我也讲过,它代表唯一标识数据库表中的每条记录。
主键必须包含唯一的值,并且这个字段不能包含 NULL 值。
在设计表的时候, 每个表应该都一个主键,并且每个表只能有一个主键!
那么我们使用SQL创建主键约束的方法如下:
语法
表字段 数据类型 primary key
举个栗子
下面的 SQL语句 在 Persons
表创建时在 id 字段
上创建 PRIMARY KEY 约束
create table Persons(id int primary key, /*设置id字段为主键*/username varchar(20),password varchar(20),age int,sex bit
)
我们打开SQL Server 2000
中的查询分析器去试试看!
我们在test2
数据库下执行上面的SQL语句
如图
然后我们打开SQL Server 2000企业管理器
找到刚刚在test2
数据库中创建的Persons表
, 双击它,即可查看主键是否创建成功!
如图
创建命名 PRIMARY KEY 约束
当我们创建主键约束的时候,最好命名它一下,以便于后期撤销删除主键的操作!
那么具体语法如下:
CONSTRAINT 命名主键名称 PRIMARY KEY (主键字段,主键字段,...)
注意: 这里可以根据实际需求和情况,同时定义多个主键!
举个栗子
还是刚刚上面那个 在 Persons
表创建时在 id 字段
上创建 PRIMARY KEY 约束
,并且给主键约束命名!
create table Persons(id int,username varchar(20),password varchar(20),age int,sex bit,CONSTRAINT pk_id PRIMARY KEY (id)
)
如图
接着我们可以在SQL Server 2000 企业管理器
中找到这个表
并且右键打开索引管理
如图
然后你就可以看到id字段
为索引
,双击现有索引
如图
在这里我们就可以通过可视化清晰的看到刚刚我们定义的主键名称
, 至于什么是索引 我们后面再说!
如图
如果我们不给主键约束
命名,那么系统将会给我们自动随机产生一个主键约束名称
,这可能会导致我们不好管理,也不利于我们记忆!
如图
SQL修改和删除主键约束
当我们的数据表
已存在的情况下为,如何来修改或者删除当前的主键约束
呢
这里就要用到我们的SQL PRIMARY KEY Constraint on ALTER TABLE
语法了!
删除撤销主键
在SQL Server 2000
中 表存在的情况下,使用以下方式删除主键约束!
语法规则
ALTER TABLE 表名称 DROP CONSTRAINT 主键名称
这里我们就要使用到主键名称了,所以创建主键的时候,就一定要给定主键名是最好的!
举个栗子
我们要删除刚刚创建的Persons表
里面的id字段
上的主键约束
名称为: pk_id
ALTER TABLE Persons DROP CONSTRAINT pk_id
如图
我们在企业管理器中查看一下, 果然是没有了!!
如图
修改添加主键
那么我们在表已存在的情况下为某个字段创建 PRIMARY KEY 约束
语法操作如下:
ALTER TABLE 表名称 ADD PRIMARY KEY (字段)
如果需要命名 PRIMARY KEY 约束
,以及定义多个字段为 PRIMARY KEY 约束
语法操作如下
ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 PRIMARY KEY (字段1,字段2,...)
举个栗子
ALTER TABLE Persons ADD CONSTRAINT pk_id PRIMARY KEY (id)
如图
表字段不存在的情况下创建主键
如果是我们想在SQL Server 2000
中创建PRIMARY KEY
约束 并且该字段不存在的情况下,那么要划分两部来解决!`
我们不能直接使用以下方式:
ALTER TABLE 表名称 ADD 字段名 int NOT NULL;
因为 PRIMARY KEY
约束要求列中的每个值都是唯一的,并且不允许 NULL 值
,所以在添加这个约束之前,我们必须确保新列能够满足这些条件!
举个栗子
我们来创建一个表,并且手动往里面加入一些测试数据!
create table Persons(username varchar(20),password varchar(20),age int,sex char(4),
)
如图
但是如果我们现在使用以下语句, 可能会报错!
例如
ALTER TABLE Persons ADD id int NOT NULL;
如图
如果表中没有数据,你可以直接将其设为 NOT NULL,
但是如果有数据,并且要添加一个主键id,那么需要为表中的每一行生成一个唯一的 id值。
比如这里我们可以使用IDENTITY 约束
来并 id
字段自动分配一个唯一的值。
例如
ALTER TABLE Persons ADD id int IDENTITY not null
如图
如图
然后再把这个id字段
设置成主键!
ALTER TABLE Persons ADD CONSTRAINT pk_id PRIMARY KEY (id);
如图
这样就可以在表存在的情况下,而这个字段不存在时,在SQL Server 2000
中添加主键字段, 我们在企业管理器中查看一下!
如图
"👍点赞" "✍️评论" "收藏❤️"
欢迎一起交流学习❤️❤️💛💛💚💚
好玩 好用 好看
的干货教程可以 点击下方关注❤️ 微信公众号❤️ 说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇