主键:primary key

能够唯一标识表中某一行的属性或属性组

主键也是一个特殊的索引

⼀个表可能有多个候选键,我们可以选择⼀个候选键作为表 的 主键 。

⼀个表最多只能有⼀个主键

主键列不允许空值

主键的值不能重复,通过主键可以找到唯⼀的⼀条记录。具有唯一性

如果主键只是单个列的话,可以直接在该列后声明 PRIMARY  KEY ,⽐如 我们把学⽣信息表 student_info 的 学号 列声明为主键可以这么写:

number INT PRIMARY KEY,

我们也可以把主键的声明单独提取出来,⽤这样的形式声明:

PRIMARY KEY (列名1, 列名2, ...)

PRIMARY KEY (number,id)

在我们创建表的时候就声明了主键的话,MySQL 会对我们插⼊的记录做校 验,如果新插⼊记录的主键值已经在表中存在了,那就会报错

另外主键列默认是有 NOT NULL 属性,也就是必填的,如果填⼊ NULL 值会报 错

UNIQUE属性: 

为某个列添加了⼀个 unique属性插⼊该列的值就不能重复

MySQL 会对我们插⼊的记录做校验,

如果新插⼊记录在该列或者列组合的值已经在表中存在了,那就会报错!

对于不是主键的其他候选键,如果也想让 MySQL 在我们向表中插⼊新记录 的时候帮助我们校验⼀下某个列或者列组合的值是否重复,

单个列声明 UNIQUE 属性:  id_number CHAR(18) UNIQUE,

我们也可以把 UNIQUE 属性的声明单独提取出来

UNIQUE [约束名称] (列名1, 列名2, ...)

主键和 UNIQUE 约束的区别:

主键和 UNIQUE 约束都能保证某个列或者列组合的唯⼀性,但是以下不同

1、⼀张表中只能定义⼀个主键,却可以定义多个 UNIQUE 约束!

2、规定:主键列不允许存放NULL,⽽声明了 UNIQUE 属性的列可以存放 NULL ,⽽且 NULL 可以重复地出现在多条记录中!

MySQL中主键和unique的区别相关推荐

  1. Mysql中主键和外键和索引

    Mysql中主键和外键和索引 1.主键和外键是什么 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是 ...

  2. mysql中主键的用法_MySQL中的主键以及设置其自增的用法教程

    1.声明主键的方法:您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以 ...

  3. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

  4. mysql中主键、普通索引、唯一索引和全文索引

    SQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录 开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录 ...

  5. 45 | MySQL中主键自增id达到上限?xid也能达到上限?trx_id也也可以到上限?

    一.前言 目前MySQL笔记先暂时学到一个段落了,接下来就是继续复习- 二.正文 1.rowid什么时候是非隐式可查询的?内部实现原理是什么?有什么问题? 当有主键.唯一键时 如果InnoDB 表没有 ...

  6. MySQL 中主键的几种表设计组合的实际应用效果

    了解主键.外键.索引 主键 主键的主要作用是保证表的完整.保证表数据行的唯一性质, ① 业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为"自然主键(Natural K ...

  7. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证 ...

  8. MySQL中主键的选择与磁盘性能

    偶然看到了"Fotolog: Scaling the World\'s Largest Photo Blogging Community",才发现很多数据库的优化其实道理都很简单, ...

  9. mysql 中的pri_关于MySQL中 主键 pri mul

    因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可 1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, ...

最新文章

  1. 重磅!谷歌刚刚发布Objectron新数据集,可完美检测3D目标,超过4百万幅图像和15K视频剪辑!...
  2. 大专计算机学语数英理化生吗,学考11-13号报名啦!你知道语数英和政史地/物化生成绩有什么作用嘛?不懂你会后悔的!!...
  3. python 递归遍历二叉树
  4. [Python3]Python面向对象的程序设计
  5. Goreplay来做流量回放
  6. 【渝粤教育】国家开放大学2018年秋季 1317T社会工作行政(本) 参考试题
  7. svm预测结果为同一个值_SVM算法总结
  8. 电气通用规范_与通用电气的对话使我了解到有关开放式组织的知识
  9. Python求解多元非线性方程组
  10. @程序员,CSDN卫衣、背包、鼠标垫......福利来啦!!!
  11. SynchronizedMap和ConcurrentHashMap 区别
  12. Office365 PPT加载本地模板
  13. 杨校老师课堂之Hadoop环境搭建(一)
  14. python--修改证件照的大小
  15. 在Win7下去掉快捷方式箭头的简便手动操作
  16. 如何将多个域名指向一个网址
  17. 为什么所有APP都想访问你的通讯录?
  18. 雲禾遗密:Web3js调用智能合约查看某账户ERC20代币数量
  19. 教务系统—课程表接口信息
  20. 广和通携手中国联通研究院、中科创达现网验证全球首例5G模组端到端多切片方案

热门文章

  1. 2022牛客多校联赛第九场 题解
  2. 基于大佬的代码实现看板娘效果(三段代码实现)
  3. HOE-32020,23554-99-6用于染色DNA的蓝色荧光染料
  4. mysql如何查看数据库相关信息
  5. Appium(Python)测试混血App
  6. 这些面试技巧,必须要掌握!
  7. hive 学习系列三(表格的创建create-table)
  8. Hive创建表的过程详细过程
  9. Hadoop No FileSystem for scheme “hdfs“ 客户端环境变量配置
  10. 悬浮细胞、淋巴细胞培养常见失败原因及解决方案