【你也能从零基础学会网站开发】 SQL结构化查询语言应用基础--创建表约束(table Constraints) 之 PRIMARY KEY 主键约束

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

什么是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中添加主键字段, 我们在企业管理器中查看一下!

如图

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

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

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

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

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值