mysql主键约束

主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

使用主键应注意以下几点:

每个表只能定义一个主键。

主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行数据。这是唯一性原则。

一个字段名只能在联合主键字段表中出现一次。

联合主键不能包含不必要的多余字段。当把联合主键的某一字段删除后,如果剩下的字段构成的主键仍然满足唯一性原则,那么这个联合主键是不正确的。这是最小化原则。

在创建表时设置主键约束

在创建数据表时设置主键约束,既可以为表中的一个字段设置主键,也可以为表中多个字段设置联合主键。但是不论使用哪种方法,在一个表中主键只能有一个。下面分别讲解设置单字段主键和多字段联合主键的方法。

1)设置单字段主键

在 CREATE TABLE 语句中,通过 PRIMARY KEY 关键字来指定主键。

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

PRIMARY KEY [默认值]

例 1

在 test_db 数据库中创建 tb_emp3 数据表,其主键为 id,SQL 语句和运行结果如下。

mysql> CREATE TABLE tb_emp3

-> (

-> id INT(11) PRIMARY KEY,

-> name VARCHAR(25),

-> deptId INT(11),

-> salary FLOAT

-> );

Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_emp3;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | NO | PRI | NULL | |

| name | varchar(25) | YES | | NULL | |

| deptId | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

4 rows

mysql主键是非空吗_mysql主键非空约束怎么设置?相关推荐

  1. 【Java 8 新特性】Java Comparator.nullsFirst | 将空元素被认为小于非空元素

    Java Comparator.nullsFirst | 将空元素被认为小于非空元素 使用 Comparator.nullsFirst 参考文献 nullsFirst是比较器功能接口的静态方法. Ja ...

  2. java 非空判断_java基础之----非空判断

    大家好,第一次写博客,一直想写博客,用于自我总结,也用于帮助新同学成长. 平常我们开发的时候,用到很多非空判断,但是很多同学用到的地方不是很准确,这里,我把自己平时遇到的坑跟大家说说.我废话不多,只想 ...

  3. mysql主键索引需要创建_mysql主键还需要建立索引吗?

    mysql主键不需要建立索引,主键具备索引的功能:当创建或设置主键的时候,mysql会自动添加一个与主键对应的唯一索引,不需要再做额外的添加.数据库管理系统对于主键会自动生成唯一索引,所以主键是一个特 ...

  4. oracle和mysql主键有什么不同_mysql 主键与oracle 的不同

    InnoDB默认创建的主键索引是聚簇索引(Clustered Index),其它索引都属于辅助索引(Secondary Index),也被称为二级索引或非聚簇索引. 我们使用一个 表来详细说明 商品表 ...

  5. mysql主键干嘛的_mysql主键是什么?

    在mysql中,主键全称"主键约束",是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性:主键的作用是确定该数据的唯一性,主要是用于和其他表的外键关联, ...

  6. mysql主主和F5高可用_MYSQL 主主热备高可用方案与实现

    咱们选择主主互热备作生产环境MYSQL高可用方案,该方案的优势是在压力大的时候,仍然能够经过设置负载均衡来作业务分发.并且最重要的是配置简单,两份配置都同样,改个IP就能够 就喜欢简单的东西.mysq ...

  7. mysql主库宕机能写吗_MYSQL主主切换(主库宕机)_MySQL

    bitsCN.com MYSQL主主切换(主库宕机) 将主主(3307写--3308读)切换 前提:3307宕机 一.修改配置文件.命令行操作 vim /home/bbq/mysql/mysql-33 ...

  8. mysql 外键有啥用途_Mysql外键是什么?有哪些用处?(图文+视频)

    本篇文章主要给大家介绍mysql外键是什么以及mysql数据库中的外键的作用. 首先大家要简单了解下什么mysql? MySQL是一个关系型数据库管理系统,也是最流行的关系型数据库管理系统之一,在 W ...

  9. mysql外键检查的作用_MySQL外键使用及说明详解

    一.外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...

最新文章

  1. 蚂蚁爬杆问题php,PHP实现的蚂蚁爬杆路径算法代码_php技巧
  2. HDU 4135 Co-prime
  3. "unable to load dynamic library"错误的解决方法
  4. python 秒数转化为时分秒
  5. CF959A Mahmoud and Ehab and the even-odd game
  6. CI框架实现某字段自加数值
  7. Excel被锁定,如何解锁
  8. Tomcat9 配置HTTPS连接
  9. 撰写科技论文的意义-李正海
  10. CentOS 根目录下目录介绍
  11. 本地差分隐私 随机响应_本地化差分隐私:如何面对非可信的世界
  12. 计算机对口升学的专科学校,2014对口升学计算机各地专科大学
  13. console.log详解
  14. 数据结构的大体学习框架
  15. AD中T型节点添加泪滴失败,原因是T型走线有问题
  16. 基于STM32与OneNet平台的智能家居系统设计(代码开源含自制APP代码)
  17. 什么样的公司才需要办理ICP经营许可证?
  18. Mac 终于有显示隐藏文件的快捷键了
  19. MATLAB调用python获得股票数据并构建交易策略
  20. 多线程Synchronized锁的使用与线程之间的通讯

热门文章

  1. 淘宝装修HTML代码大全
  2. EdgeStereo: A Context Integrated Residual Pyramid Network for Stereo Matching
  3. NVIDIA AGX Xavier散热风扇开启及开机自启风扇
  4. Shiro 与 Spring框架整合基本配制说明
  5. hashmap为什么查询时间复杂度为O(1)
  6. 剑指offer编程试题Java实现--22.从上往下打印二叉树
  7. 第一次接触【数据治理】之后的学习笔记
  8. ComponentOne Studio WPF部署功能完全兼容
  9. 解决狮子鱼社区团购小程序前端二维码无法显示问题!
  10. Android style(样式) 和 theme(主题) 属性