SQL(10)_PRIMARY KEY 约束

“你根本忘不了一个你真真正正喜欢的人 你以为错过的是一个人 但其实错过的是整个人生”


原创作者:是飘飘呀!
博客地址:https://blog.csdn.net/weixin_44216392

PRIMARY KEY 约束

PRIMARY KEY 约束(也叫主键约束),它是唯一标识数据库表中的每条记录。

  • 主键必须包含唯一的值。
  • 主键列不能包含 NULL 值。
  • 每个表都应该有一个主键,并且每个表只能有一个主键。
添加主键约束的两种写法:
  • 创建表的时候进行设置主键约束:
-- 第一种写法
create table tb1(
	p_id int not null primary key,
	t_name varchar (50) not null,
	t_age int,
	t_sex varchar(50),
	t_city varchar(255)
);
--第二种写法
create table tb2(
	p_id int not null,
	t_name varchar (50) not null,
	t_age int,
	t_sex varchar(50),
	t_city varchar(255),
	primary key(p_id)
);
  • 当我们需要使用多个列来组成一个主键约束时:
create table tb3(
p_id int not null,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255),
constraint pk_tb3ID primary key(p_id,t_name)
);

在这里我们需要注意:前文提到每个表都应该有一个主键,且只能有一个主键,那么在上面的sql语句中,这唯一的一个主键名叫做pk_tb3ID ,但是它的值是由两个列(p_id和t_name)的值来组成的。
在这里插入图片描述

  • 如果在表已经被创建,需要为表添加主键约束时,我们可以使用**alter…add…**关键字来进行操作:
-- 先创建表tb4
create table tb4(
p_id int not null,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255)
);
-- 为p_id添加主键
alter table tb4 add primary key (p_id); 

/* 添加由多列组成的主键约束
(在这里我演示的是同一个表tb4,所以需要先把p_id的主键约束删除,才可以再添加多列组成的主键约束)*/
alter table tb4 add constraint  pk_tb4ID primary key(p_id,t_name)
-- pk_tb4ID 是主键名,前文有说过,这里不做解释
删除主键约束

在我们需要删除主键约束的时候使用**alter…drop…**关键字来进行删除:

--MySQL
--删除单列组成的主键约束
alter table tb1 drop primary key
/*
alter table tb1 drop primary key
OK
时间: 0.044s
*/

删除多列组成的主键约束:

--SQL Server
alter table tb4 drop constraint  pk_tb4ID

在这里我们需要注意的是:

在MySQL中无论是单列组成的主键约束还是多列组成的主键约束都是使用下面语句,但是此语句并不能在SQL Server中使用;

alter table [表名] drop primary key

此语句在在SQL Server中使用时会报语法错:
在这里插入图片描述
同理:下面语句是删除多列组成的主键约束,它也不能在MySQL中去使用,否则也同样会报错的;

alter table [表名] drop constraint  [主键名]

在这里插入图片描述
总结来说就是:
MySQL删除主键直接使用

alter table [表名] drop primary key

SQL Server / Oracle / MS Access使用

alter table [表名] drop constraint  [主键名]

删库跑了…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值