目录

主键约束

添加单列主键

添加多列主键(联合主键)

修改表结构添加主键

删除主键约束

文末资源推荐

每文一语


概念:

约束英文:constraint

约束实际上就是表中数据的限制条件

作用:

表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复。

主键约束(primary key) PK

自增长约束(auto_increment)

非空约束(not null)

唯一性约束(unique)

默认约束(default)

零填充约束(zerofill)

外键约束(foreign key) FK

主键约束

MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行。

主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。

每个表最多只允许一个主键

主键约束的关键字是:primary key

当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

我们可以对其进行:

添加单列主键

添加多列联合主键

删除主键

添加单列主键

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

语法1:

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

语法2:

--在定义字段之后再指定主键,语法格式如下:
create table 表名(...[constraint <约束名>] primary key [字段名]
);
create table emp2(eid INT,name VARCHAR(20),deptId INT,salary double,constraint  pk1 primary key(id));

添加列主键(联合主键)

所谓的联合主键,就是这个主键是由一张表中多个字段组成的。

注意:

1. 当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。

2. 一张表只能有一个主键,联合主键也是一个主键

create table 表名(...primary key (字段1,字段2,…,字段n)
);
create table emp3( name varchar(20), deptId int, salary double, primary key(name,deptId)
);

修改表结构添加主键

有时候,我们面对的是已经创建好的数据表,也就是说数据表的结构已经成形了,那么此时我们可以通过alter进行修改

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;

可以发现,删除主键约束的时候,不需要指定约束名,这是因为主键约束在数据表中只能存在一个,所以我们不需要指定

文末资源推荐

MySQL约束——添加主键约束(联合主键)、删除主键约束相关推荐

  1. mysql怎样添加唯一标识_MySql设置唯一标识,主键等设置

    create table user_score( name char(10) not null default "", score smallint not null defaul ...

  2. SQLServer 2012 主键约束(定义主键、删除主键)

    文章目录 定义主键 使用SSMS工具定义主键 使用SQL方式定义主键 方式一:在创建数据表的时候定义主键 方式二:修改数据表定义主键 删除主键 使用SSMS工具删除主键 方式一:在对象资源管理器中删除 ...

  3. mysql怎么添加约束成绩_mysql怎么添加约束?

    在MYSQL数据库中,建表时就可以进行对表的各项进行一些操作,例如添加主键约束或者非空约束:也可以在建表后进行添加约束和删除约束的操作.下面本篇文章就来带大家具体了解一下,希望对大家有所帮助. 什么是 ...

  4. Oracle添加主键、删除主键、修改主键

    一.前提 主键解释: 一个表的唯一关键字 比如一个学生表 学号不能重复且唯一 ,学号就是关键字,即为主键. 区别于外键: 外键就是跟其他表联系的字段 ,还是比如有一张学生表 还有一张选课表,这个时候要 ...

  5. MySQL基础之 如何删除主键

    我们在一个表中设置了主键之后,那么如何删除主键呢? 删除主键的语法是: ALTER TABLE TABLE_NAME DROP PRIMARY KEY; 在这里我们要考虑两种情况: 1.可以直接使用d ...

  6. Oracle 如何删除主键新增主键

    Oracle 如何删除主键新增主键 ALTER TABLE 表名 drop CONSTRAINT 主键名; ALTER TABLE 表名 add CONSTRAINT 主键名 primary key ...

  7. mysql中外键的作用是什么_mysql外键基本功能与用法详解

    本文实例讲述了mysql外键基本功能与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就 ...

  8. mysql不能删除外键吗,为什么mysql不允许删除外键?

    有时我们不能删除mysql外键,我们该怎么办?这就是为什么mysql不允许你删除外键和解决方案,希望能帮助有需要的朋友! 1.在建立一个外键之后,MYSQL将自动建立一个同名的索引 2.删除外键时,如 ...

  9. mysql实现级联操作(级联更新、级联删除)

    一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not ...

  10. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

最新文章

  1. linux文件删除漏洞,OpenStack Glance v1 API任意文件删除漏洞(CVE-2012-4573)
  2. CPaintDC和CClientDC的区别
  3. sping拦截器配置顺序影响事务正常运行
  4. Android组件系列----Activity的生命周期
  5. 平行志愿计算机录取顺序,2020平行志愿的录取顺序你知道吗?
  6. 不愿意和别人打交道_如果你的交际能力很差,不喜欢与人打交道,这3种职业最适合你...
  7. 深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作
  8. codeforces 598C C. Nearest vectors(极角排序)
  9. 如何用anaconda创建python项目_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
  10. java.lang.NoClassDefFoundError: javax/mail/internet/AddressException解决
  11. Ubuntu chmod 命令
  12. lol韩服游戏内设置_LOL手游:灵药战队有多强?辅助国际服第六,AD堪比UZI
  13. Android实战技巧:用TextView实现Rich Text---在同一个TextView中设置不同的字体风格...
  14. 生成对抗网络GANs的用途
  15. 专利证书下载-不是标准的IE浏览器-解决办法
  16. 基于Idea的Spark大数据分析--scala
  17. [牛客网中级项目]第四章用户注册登陆管理
  18. PC版QQ的“版本太旧, 无法继续使用“ 及升级后的R6030运行时错
  19. Linux iptables nat 实现不同网络间(内外网)的互联
  20. ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据

热门文章

  1. 工序流转二维码的应用和制作方法
  2. 【每日一词】pallor
  3. python基于pingouin包进行统计分析:使用ancova函数执行协方差分析、covar参数设置单个协方差变量、以dataframe的形式输出分析结果(包含SS、自由度、F值、p值、np2等)
  4. this到底指向谁?
  5. PPTP协议、L2TP协议和SSTP协议的介绍
  6. 假如你能给「微信」增加一个小功能
  7. 网络营销系统分析(2)
  8. 查询部门最高工资的员工
  9. java字段是什么意思_Java中的属性和字段有什么区别
  10. SAP常用系统字段含义