目录

1.简介

1.概念

2.作用

3.分类

2.主键约束

1.概念

2.操作

1.添加单列主键

2.添加多列联合主键

3. 通过修改表结构添加主键

4.删除主键


1.简介

1.概念

约束英文: constraint

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

2.作用

表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值

(手机号)不能为空,有些列的值(身份证号)不能重复。

3.分类

  • 主键约束(primary key) PK
  • 自增长约束(auto_increment)
  • 非空约束(not null)
  • 唯一性约束(unique)
  • 默认约束(default)
  • 零填充约束(zerofill)
  • 外键约束(foreign key) FK

2.主键约束

1.概念

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

2.操作

1.添加单列主键

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

方式1-语法:

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

方式1-实现:

use abc;
create table emp1(eid int primary key,name varchar(20),deptId int,salary double
);

方式2-语法:

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

方式2-实现:

use abc;
create table emp2(eid int,name varchar(20),deptId int,salary double,constraint pk1 primary key(eid)
);

也可以省略“constra pk1”

use abc;
create table emp2(eid int,name varchar(20),deptId int,salary double,primary key(eid)
);

2.添加多列联合主键

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

注意:

  1. 当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。
  2. 一张表只能有一个主键,联合主键也是一个主键

语法:

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

实现:

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

3. 通过修改表结构添加主键

主键约束不仅可以在创建表的同时创建,也可以在修改表时添加。

语法:

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);

*添加多列主键

create table emp4(eid int,name varchar(20),deptId int,salary double
);
alter table emp4 add primary key (eid,deptId);

4.删除主键

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

的多。

格式:

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

实现:

-- 删除单列主键
alter table emp1 drop primary key;
-- 删除联合主键
alter table emp5 drop primary key;

所以不管是单列还是联合,都是同样的格式

数据库----------约束、主键约束相关推荐

  1. SQL语句 -非空约束 - 唯一约束 - 主键约束 - 默认约束 -外键约束

    文章目录 约束 约束介绍和分类 非空约束 唯一约束 主键约束 默认约束 案例练习 外键约束 约束 约束介绍和分类 约束的概念: 约束是作用于表中列上的规则,用于限制加入表的数据 约束的存在保证了数据库 ...

  2. 数据库-----(主键约束、唯一约束、默认约束、非空约束、外键约束)

    文章目录 一.数据的完整性 二.实体完整性约束 2.1.主键约束(唯一.不重复.不能为空) (1)建表时直接添加 (2)通过ALTER语句(针对已存在的表) (3)删除主键约束 2.2唯一约束(唯一. ...

  3. MySQL数据库约束(主键约束,外键约束详解)

    关系型数据库的一个重要功能: 需要保证数据的"完整性",可以通过人工的方式来观察确认数据的正确性,这种方式是可行的,但是不合适,因为人为控制的方式势必会存在疏忽,导致一些错误没有被 ...

  4. oracle数据库建立主键约束,数据库-Oracle主键约束和唯一索引的黑与白

    1.  分别用两种方法创建主键 create table test1(id number,name varchar2(10)); insert into test1 values(1,'t1'); i ...

  5. 数据库的主键约束、唯一约束、外键约束

    一.主键约束: 主键: 非空且唯一. 不能为 null 值, 不能出现重复的数据. 通常情况下, 一个表当中, 主键只能有一个 创建主键约束的两种方法及删除方法:(不需要加自增,就把AUTO_INCR ...

  6. 数据库的主键约束和自增长

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.主键约束 Primary key 二.自动增长 总结 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展 ...

  7. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)

    注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c   别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...

  8. 【MySQL】(七)SQL约束——主键约束、非空约束、唯一约束、默认值约束、外键约束

    目录 1. 主键约束 1.1 SQL 约束 1.2 主键约束 1.3 添加主键约束 1.4 创建主键自增的表 1.5 修改主键自增的起始值 1.6 删除主键约束 1.7 选择主键原则 2. 非空约束 ...

  9. mysql创建主键约束_mysql建表键约束(主键约束,自增约束)

    -- 主键约束: id int primary key 可以唯一确定一张表中的一条记录,也就是通过给某个字段添加约束,就可以使得字段不重复且不为空. create table date ( id in ...

  10. oracle表违反主键约束,主键/约束/事务/表关系 Oracle

    1:创建一个主键 --创建一个表,有主键 create table studs( id varchar(32) primary key, name varchar(30) ); --主键也是数据库的对 ...

最新文章

  1. 了解浏览器工作原理-初步
  2. 【手写系列】透彻理解Spring事务设计思想之手写实现
  3. ARMV8-aarch64的寄存器介绍(二)
  4. VTK:可视化算法之DisplacementPlot
  5. WPF Slider设置整数
  6. python 遗传算法 agv_基于改进遗传算法的AGV路径规划
  7. 探索安卓中有意义的动画!
  8. 51nod-1131: 覆盖数字的数量
  9. HTML5 音频 / 视频 DOM 操作
  10. Nova reboot 和 lock 操作 - 每天5分钟玩转 OpenStack(32)
  11. 前端-图片压缩,基于vue/webpack的tinypng插件
  12. 计算机毕业设计 SSM网上订票系统 飞机订票购票系统 在线订票系统 机票订票系统
  13. adc 测试软件,ADC芯片参数测试技术解析
  14. xmind 7 pro破解补丁|xmind 7 pro注册机下载(附xmind7 pro序列号/注册码/激活码)
  15. uniapp 分享到微信、QQ、朋友圈
  16. Fresco判断是否缓存
  17. 淘宝 触屏主页面 菜单
  18. ocv特性_锂离子电池的三大特性分析
  19. display和visility
  20. python制作京东评论词云图

热门文章

  1. Linux如何带压缩密码的7z,Linux 压缩和解压 7z
  2. 常用的maven命令如下
  3. gpu显示off_GPU常见故障及排查方法
  4. Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现---之游戏开发《赵云要格斗》(10)
  5. python-日历模块
  6. w10能装inventor2019_Inventor2019下载
  7. 阿里云推出高效病毒基因序列检索功能,它的底层逻辑原来是这样的
  8. ARP与RARP协议详解 (三)
  9. python干货:如何使用Python对音频进行特征提取?
  10. Louvain聚类算法