mysql自增长主键_MySQL数据库8(九)列属性之主键、自增长
主键
顾名思义,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性
创建主键
随表创建
系统提供了两种增加主键的方式:
1、直接在需要当做主键的字段之后,增加primary key属性来确定主键
2、在所有字段之后增加primary key选项:primary key(字段信息)
表后增加
基本语法:alter table 表名 add primary key(字段);
查看主键
方案1: 查看表结构
方案2:查看表的创建语句
删除主键
基本语法:alter table 表名 drop primary key;
复合主键
主键约束
主键一旦增加,那么对对应的字段数据有要求:
1、当前字段对应的数据不能为空。
2、当前字段对应的数据不能有任何重复
主键分类
主键分类采用的是主键所对应的字段的业务意义分类:
业务主键:主键所在的字段,具有业务意义(学生ID,课程ID)
逻辑主键:自然增长的整型(应用广泛)
自增长
自动增长:auto increment,当给定某个字段的属性之后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增加后,填充数据
通常自动增长用于逻辑主键
原理
自动增长的原理:
1、在系统中有维护一组数据,用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,在给定一个指定的步长。
2、当用户进行数据插入的时候,如果没有给定值,系统在原始值上加上步长变成新的数据
3、自动增长的触发:给定属性的字段没有提供值
4、自动增长只适用于数值
使用自动增长
基本语法:在字段之后增加一个属性 auto_increment;
插入数据:触发自动增长,不能给定具体值(可以给null)
修改自动增长
1、查看自增长:自增长一旦触发使用后,会自动地在表选项中增加一个选项(一张表最多只能拥有一个自增长)
2、表选项可以通过修改表结构来实现
基本语法:alter table 表名 auto_increment = 值;
删除和增加自动增长
删除自增长:就是在字段属性之后不再保留auto_increment,当用户修改自增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长。
删除自增长:alter table my_auto modify id int;
增加自增长:alter table my_auto modify id int auto_increment;
初始设置
在系统中,有一组变量用来维护自增长的初始值和步长
查看:show variables like ‘auto_increment%’;
修改自增长步长和初始值:
set auto_increment_increment = 值;
set auto_increment_offset = 值;
细节问题
1、一张表中只有一个自增长,:自增长会上升到表选项中。
2、如果数据插入中没有触发自增长(给定了数据),那么自增长不会表现,用户指定数据之后,自增长不参与,但是自增长默默根据当前用户设定的值初始化下一个值。
3、自增长在修改的时候,值可以较大,但是不能比当前已有的自增长字段的值小。
mysql自增长主键_MySQL数据库8(九)列属性之主键、自增长相关推荐
- mysql 主键列_MySQL列属性 之 主键
MySQL列属性 之 主键 主键 主键:primary key, 表中主要的键,每张表可以设置主键,主键可以是一个字段或者多个字段.多个字段联合起来做主键叫复合主键.主键是用来唯一标识一条记录的,不能 ...
- linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06
Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...
- mysql的sleep线程多久_MySQL数据库sleep线程过多,怎么办?
推荐文章 要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2.查询所有数据的大 ...
- mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...
- mysql数据库教程 外键_MySQL数据库外键
设置外键 外键及功能:成绩表(参照表也叫子表)中的学号来自学生表(被参照表也叫父表),成绩表中的课程号来自课程表:当要删除或更新被参照表中的给字段的值时,参照表该字段的值如何改变.在on delete ...
- mysql中关系怎么弄_mysql数据库关系操作
### mysql数据库 #### 知识要点: 1. 数据操作增.删.改 2. 外键约束要求 3. 一对多表关系 4. 一对一表关系 5. 多对多表关系 6. 外键约束的参照操作 ### 数据操作 # ...
- mysql初体验学习笔记_MySQL数据库初体验
克隆表,将数据表的数据记录生成到新的表中 方法一: create table test01 like GCC01; #通过 LIKE 方法,复制GCC01表结构生成test01表 insert int ...
- mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...
数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束 数据库:唯一性约束 所谓唯一性约束(unique constraint)不过是数据表内替代 ...
- mysql增删改查大全_MySQL数据库增删改查SQL语句(2018整理集合大全)
查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 crea ...
- mysql判断题题库_MySQL数据库考试试题及答案
37.下列哪些数据是字符型数据.( ) A.中国 B."1+2" C."can't" D."张三-李四" 答案:B,D,C 38.关于语句l ...
最新文章
- NFL原则告诉我们做决策的时候,试图找到一个能解决所有问题,“大而全”的方案是不存在的。我们应当找到最关心的问题,因地制宜做出选择。——聚焦目标,取舍有道!...
- java安装 环境配置
- spring mvc使用的一些注意事项
- iOS 二叉树相关算法实现
- apply和call用法
- Windows下安装python2和python3双版本
- android 读取sd卡中string.xml,android,从SD卡读取xml文件中的值
- python数组做参数_python完成数组格式的请求参数的加密计算
- 网站敏感词过滤的实现(附敏感词库)
- Linux多线程编程入门
- android签名命令行,Android系统签名位置及命令
- 工程实践:基于C/C++的学生账目管理系统(个人账本管理系统)
- Matlab分类识别实战||基于神经网络的深水船水声音数据集的识别与分类(GoogLeNet+SqueezeNet+AlexNet)
- PytorchVideo Transforms 详解
- 618京东淘宝自动脚本
- 安卓系统应用程序开发!灵魂一问-如何彻底防止APK反编译?大厂面试题汇总
- Python编程PTA题解——两数之和
- matlab学习之蒙特卡罗 --渡口模型和赶火车问题(matlab编程)-----数模
- 初学怕python画图工具pen以及初学个人感悟
- DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析
热门文章
- 御龙在天手游怎么不显示服务器了,御龙在天手游进不去怎么办 闪退原因及解决办法...
- c语言链表写贪吃蛇思路,C语言构建的链表贪吃蛇
- MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入
- 【MFC系列-第22天】GDI算法实战——过渡色
- No module named ‘__main__.common‘; ‘__main__‘ is not a package
- python怎样使用各个日期赤纬_python--日期操作
- python取文本中间_Python读取两个字符串之间的特定文本行
- 深入理解C指针第一章小结1
- yandexbot ip列表整理做俄罗斯市场的站长可以关注一下
- 《Effective Java》读书笔记 - 5.泛型