上期:【MySQL】从入门到掌握3-WorkBench

第一章:主键

在实际开发中,我们不会使用用户名字当作主键。

  因为当我们用数据库记录学生信息的时候,学生有可能重名!

我们一般会使用是个int数字当主键,好处在于节约性能等等。

现在我们修改一下:

id作为主键,并勾选上PK NN AI

AI,Auto Increment,自动增加。

  意思是每当新增一条数据(一个新玩家注册),id会自动分配,往上增加1.

Apply,然后再次查询表格。

id这一栏由于勾选上了AI,所以

不需要手动填写id,我们只管填写username和password即可。

第二章:Unique

独一无二的,不允许重复的。

允许一条为空。

所以把NN勾选上。

在游戏账号数据库的例子中,我们把username设置为Unique。

这样一来,username既不是主键,也可以不重复了。

第三章:总结

主键:

  1. 独一无二
  2. 一个表里面,必须有主键(且只有一个主键)
  3. 不能为空值,所以NN必须勾选上

Unique键

  1. 不能重复
  2. 可以多条为NULL

话外之音:我刚才测试过,可以给多个类型的数据设置为主键呀!你说的这个主键第二条不就是错的吗!

有图有真相:

答:事实上,系统会把所有勾选上了“主键”的Column合并为一个组合数据。

多做做实验吧!


【MySQL】从入门到精通5-表表相连-外键

【MySQL】从入门到掌握4-主键与Unique的更多相关文章

  1. mysql数据库表的自增主键号不规律,重新排列

    mysql数据库表的自增主键ID乱了,需要重新排序. 原理:删除原有的自增ID,重新建立新的自增ID. 1.删除原有主键: ALTER TABLE `table_name` DROP `id`; 2. ...

  2. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析

    文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...

  3. mysql数据库单表只有一个主键自增id字段,ibatis实现id自增

    mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid">        insert into user_id ...

  4. (2.10)Mysql之SQL基础——约束及主键重复处理

    (2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...

  5. Mysql数据库表的自增主键ID号乱了,需要重新排列。

    Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键:ALTER TABLE `table_name` DROP `id`; 2, ...

  6. MySQL数据表中有自增长主键时如何插入数据

    原文链接:https://blog.csdn.net/RuobaiMEN/article/details/79794199 MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值 ...

  7. MySQL的几个概念:主键,外键,索引,唯一索引

    概念: 主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的唯一和 ...

  8. Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别

    Mysql索引概念:说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要 ...

  9. mysql 在insert 时防止出现主键冲突错误的方法

    在mysql中插入数据的时候常常因为主键存在而冲突报错,下面有两个解决方法: 1.在insert 语句中添加ignore 关键字,如:insert ignore into table (id,name ...

  10. MySQL的InnoDB表如何设计主键索引-转自淘宝MySQL经典案例

    创建a表 id主键 CREATE TABLE `a` (`id` bigint(20) NOT NULL AUTO_INCREMENT ,`message_id` int(11) NOT NULL,` ...

随机推荐

  1. Colab教程(超级详细版)及Colab Pro/Colab Pro+使用评测

    在下半年选修了机器学习的关键课程Machine learning and deep learning,但由于Macbook Pro显卡不支持cuda,因此无法使用GPU来训练网络.教授推荐使用Goog ...

  2. 全球共有多少MySQL实例在运行?这里有一份数据

    摘要 Shadowserver Foundation在5月31日发布了一份全网的MySQL扫描报告,共发现了暴露在公网的360万个MySQL实例.因为这份报告基数够大,而且信息也非常完整,从数据库专业 ...

  3. c++可视化性能测试

    阅读前注意 本文所有代码贴出来的目的是帮助大家理解,并非是要引导大家跟写,许多环境问题文件问题没有详细说明,代码也并不全面,达不到跟做的效果.建议直接阅读全文即可,我在最后会给出详细代码地址,对源代码 ...

  4. SAP Web Dynpro-门户集成

    您可以将ABAP应用程序集成到企业门户中. 您还可以从Web Dynpro应用程序管理门户网站功能. 您可以调用Web Dynpro代码向导来访问门户网站管理器方法. 这可以用来执行以下功能- 门户网 ...

  5. RPA应用场景-日终清算操作

    场景概述 日终清算操作 所涉系统名称 登记过户管理系统(TA),投资交易系统(032) 人工操作(时间/次) 60-80分钟 所涉人工数量 2 操作频率 每日 场景流程 这两个流程一般在晚上8-9点开 ...

  6. java基础知识点梳理

    前言 在别人追问我以下几个问题,自己在问题回答上不够全面和准确,对此自己把专门针对这几个问题进行总结! java相关问题 1.Java中构造方法跟普通方法的区别? 构造方法与普通方法的调用时机不同. ...

  7. NC16430 [NOIP2016]蚯蚓

    NC16430 [NOIP2016]蚯蚓 题目 题目描述 本题中,我们将用符号 \(\lfloor c \rfloor\) 表示对 c 向下取整,例如:\(\lfloor 3.0 \rfloor = ...

  8. Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口

    sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...

  9. S32K148-CAN收发

    最近在搞一个转换板开发,大概意思把CAN信号转换成SPI信号,方案有两种:1)通过硬件电路直接把信号的bit位一位一位移给两个集成芯片:2)通过MCU接收CAN信号,再把信号变量转换成SPI信号发送给 ...

  10. 字符串运算符&&三元运算符

    public class Demo01 { public static void main(String[] args) { //字符串连接符 + String int a=20; int b=10; ...