如何添加和删除单列或多列主键【Mysql主键约束知识】

MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行。主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。主键约束的关键字是:primary key。当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

本节来讲主键的添加操作,包含单列主键,多列联合主键和删除主键。

添加单列主键

创建单列主键有两种方式,一种是在定义字段的同时指定主键,一种是定义完字段之后指定主键。

在定义字段的同时指定主键的语法格式如下:

-- 在 create table 语句中,通过 PRIMARY KEY 关键字来指定主键。
--在定义字段的同时指定主键,语法格式如下:
create table 表名(
   ...
   <字段名> <数据类型> primary key 
   ...
)

实现:

create table emp1(
    eid int primay key,
    name VARCHAR(20),
    deptId int,
    salary double
);

定义完字段之后指定主键的语法格式如下:

--在定义字段之后再指定主键,语法格式如下:
create table 表名(
   ...
   [constraint <约束名>] primary key [字段名]
);

实现:

create table emp2(
    eid INT,
    name VARCHAR(20),
    deptId INT,
    salary double,
    constraint  pk1 primary key(id)
 );

添加多列主键

所谓的联合主键,就是这个主键是由一张表中多个字段组成的。当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。 一张表只能有一个主键,联合主键也是一个主键。

添加联合主键的语法格式如下:

create table 表名(
   ...
   primary key (字段1,字段2,…,字段n)
);

实现:

create table emp3( 
  name varchar(20), 
  deptId int, 
  salary double, 
  primary key(name,deptId) 
);

通过修改表结构添加主键

主键约束不仅可以在创建表的同时创建,也可以在修改表时添加,语法格式如下:

create table 表名(
   ...
);
alter table <表名> add primary key(字段列表);

实现:

-- 添加单列主键
create table emp4(
  eid int, 
  name varchar(20), 
  deptId int, 
  salary double, 
);
alter table emp4 add primary key(eid);

删除主键约束

一个表中不需要主键约束时,就需要从表中将其删除。删除主键约束的方法要比创建主键约束容易的多,删除主键约束的语法格式如下:

alter table <数据表名> drop primary key;

实现:

-- 删除单列主键 
alter table emp1 drop primary key;
 
-- 删除联合主键 
alter table emp5 drop primary key;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单列约束和多列约束是在数据库设计中常用的两种约束方式。 单列约束是指对数据库表中的单个列应用约束条件。常见的单列约束包括: 1. 主键约束(Primary Key Constraint):用于唯一标识表中的每一行数据,并且不允许为空值。 2. 唯一约束(Unique Constraint):确保每个值在该列中是唯一的,可以允许空值。 3. 非空约束(Not Null Constraint):确保该列中的值不为空。 多列约束是指对数据库表中的多个列应用约束条件。常见的多列约束包括: 1. 复合主键约束(Composite Primary Key Constraint):将多个列组合在一起作为主键,用于唯一标识表中的每一行数据。 2. 复合唯一约束(Composite Unique Constraint):将多个列组合在一起作为唯一约束,确保每个组合值在该列中是唯一的。 3. 外键约束(Foreign Key Constraint):用于建立两个表之间的关联关系,确保引用表中的外键值必须存在于被引用表的主键中。 区别: - 单列约束只对单个列应用约束条件,而多列约束可以对多个列进行组合约束。 - 单列约束通常用于对某个特定列的约束,而多列约束通常用于对两个或多个列之间的关系进行约束。 - 单列约束可以更灵活地对每个列进行独立的约束,而多列约束可以更精确地定义列之间的关系。 - 单列约束通常比较简单,多列约束需要考虑更复杂的关系和逻辑。 需要注意的是,在设计数据库时应根据具体情况选择适当的约束方式,以确保数据的完整性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值