mysql的增_MySQL-----增
增
**创建用户**
create user 'alex'@'192.168.1.1' identified by '123123';
create user 'alex'@'192.168.1.%' identified by '123123';
create user 'alex'@'%' identified by '123123';
**创建数据库**
create database “数据库名称” default charset utf8;
**创建数据库表**
create table 表名(
列名 类型,
列名 类型 not null,
列名 类型 not null default 1,
列名 类型 not null auto_increment,
列名 类型 not null auto_increment primary key,
)engine=innodb default charset=utf-8;
engine = innodb 支持事务,原子性操作。
engine = myisam 不支持事件的回滚,不建议用。
not null 是否可以为空。
default : 定义默认值。
auto_increment 表示:自增,是这一列的唯一标识。
primary key:是主键。表示 约束(不能重复且不能为空); 加速查找。
char(数字): 限制长度。
***一个表里只能有一个自增列和一个主键。
例子:
create table 表名(
id int not null auto_increment primary key,
name char(10)
)engine=innodb default charset=utf-8;
**插入数据库表数据**
insert into 数据库表(字段) values(数据);
insert into 数据库表(id,name) values(1,'george');
insert into 数据库表(id,name) values(1,'george'),(2,'wang'); 一次添加多个值
**将A表中的数据或指定数据添加到B表中**
insert into 数据库表名A(id,name) select id,name from 数据库表名B;
数据类型:
数字:
tinyint
int
bigint
float
double
decimal(精准小数):
decimal(10,5) 意思是10为这个数的总位数,5为取到这个数的小数后5位
字符串:
char() 如果char为10,但输入的不足10,则char自己补到10.
varchar() 如果varchar为10,但输入的不足10,varchar不补到10.
char和varchar的区别是char查询快,因为是定长,varchar节省空间,因为不补充字节。
建议:数据库优化,定长在前,varchar在后。
text
mediumtext
longtext
时间类型:
datatime:
枚举:
enum
set
自增:
**在数据库表中,从大到小的自增**
desc 数据库表名
**控制自增的起始值**
alter table 数据库表名 AUTO_INCREMENT=20;
加在创建表的结尾,在engine = innodb的后边。
可以通过 “alter table 表名 auto_incremenrt=n” 语句强制设置自动增长列的初始值,默认从1开始,但是该强制的默认值是保留在内存中的,如果该值在使用之前数据库重新启动,那么这个强制的默认值就会丢失,就需要数据库启动后重新设置
MySQL: 自增步长:基于会话级别
**auto_increment_increment控制列中的值的增量值,也就是步长**
**auto_increment_offset确定AUTO_INCREMENT列值的起点,也就是初始值**
**变量范围:可以在全局以及session级别设置这2个变量**
**查看变量auto_increment_increment与auto_increment_offset**
**基于会话(session)级别**
show session variables like 'auto_inc%';查看会话变量
set session auto_increment_increment=2; 设置会话步长
set session auto_increment_offset=10; 设置会话起始值
**基于全局(global)级别**
show global variables like 'auto_inc%';查看全局变量
set global auto_increment_increment=2; 设置全局步长
set global auto_increment_offset=10; 设置全局起始值
SqlServer:自增步长:基于表级别
create table t5 (
nid int(11) not null auto_increment,
pid int(11) not null,
num int(11) default null,
primary key (nid,pid)
) engine=innodb auto_increment=4, 步长=2 default charset=utf8;
create table t6 (
nid int(11) not null auto_increment,
pid int(11) not null,
num int(11) default null,
primary key (nid,pid)
) engine=innodb auto_increment=4, 步长=20 default charset=utf8;
# 演示auto_increment_increment与auto_increment_offset
**创建演示表,使用auto_increment子句**
create table t1(id int not null auto_increment primary key, col varchar(20));
**插入记录**
insert into t1(col) values('robin'),('fred'),('jack'),('james');
**下面可以看到id列起始值为1,增量为1**
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 1 | robin |
| 2 | fred |
| 3 | jack |
| 4 | james |
+----+-------+
**设置步长为5**
set session auto_increment_increment=5;
show variables like '%auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 1 |
+--------------------------+-------+
**清空表t1**
truncate table t1;
**再次插入记录**
insert into t1(col) values('robin'),('fred'),('jack'),('james');
**如下查询可以看到步长以5位基数发生变化**
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 1 | robin |
| 6 | fred |
| 11 | jack |
| 16 | james |
+----+-------+
**设置初始值为5**
set session auto_increment_offset=5;
show variables like '%auto_incre%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 5 |
+--------------------------+-------+
truncate table t1;
insert into t1(col) values('robin'),('fred'),('jack'),('james');
**下面是新的结果**
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 5 | robin |
| 10 | fred |
| 15 | jack |
| 20 | james |
+----+-------+
# auto_increment_increment与auto_increment_offset取值范围
**将变量auto_increment_increment设置为0**
set session auto_increment_increment=0;
**实际值变成了1**
show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 5 |
+--------------------------+-------+
**同样将auto_increment_offset设置为0**
set session auto_increment_offset=0;
**实际值也变成了1**
show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
**下面尝试将2个变量设置为大于65535**
set session auto_increment_increment=65537;
set session auto_increment_offset=65537;
**其实际的值都变成了65535**
how variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 65535 |
| auto_increment_offset | 65535 |
+--------------------------+-------+
**尝试为2个变量设置为负值**
set session auto_increment_offset=-2;
set session auto_increment_increment=-5;
**下面的查询可以看出全部恢复到缺省值1**
show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
由上可以看出2个变量只能设置为1至65535之间的整数值。
所有非正整数全部会置为缺省值1,大于65535的值会被自动置为65535。
# 全局与session级别的设置
**查看全局范围这2个变量的值**
show global variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
**下面分别设置会话(session)基本的值**
set session auto_increment_increment=5;
set session auto_increment_offset=10;
**查看会话(session)级别的值**
show session variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 10 |
+--------------------------+-------+
**查看全局(global)级别的值**
show global variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
**设置全局(global)级别的值**
set global auto_increment_increment=2;
set global auto_increment_offset=3;
show global variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 2 |
| auto_increment_offset | 3 |
+--------------------------+-------+
# 已有auto_increment列值任一变量变化的情形
truncate table t1;
show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
insert into t1(col) values('robin'),('fred'),('jack');
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 1 | robin |
| 2 | fred |
| 3 | jack |
+----+-------+
set session auto_increment_increment=5;
show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 1 |
+--------------------------+-------+
insert into t1(col) values('david'),('tim'),('jerry');
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 1 | robin |
| 2 | fred |
| 3 | jack |
| 6 | david |
| 11 | tim |
| 16 | jerry |
+----+-------+
New_value = auto_increment_offset+ N * auto_increment_increment
New_value1 = 1 + 1 * 5 = 6
New_value2 = 1 + 2 * 5 = 11
**下面是修改auto_increment_offset后的结果**
set session auto_increment_offset=2;
insert into t1(col) values('lewis'),('ian');
select * from t1;
+----+-------+
| id | col |
+----+-------+
| 1 | robin |
| 2 | fred |
| 3 | jack |
| 6 | david |
| 11 | tim |
| 16 | jerry |
| 22 | lewis |
| 27 | ian |
+----+-------+
这个id为22,应该是这样推算来的:max(id)+(new_offset-old_offset)+increment
也就是说变化auto_increment_offset后的第一个值为max(id)+(new_offset-old_offset)+increment之后再按步长递增。
# SqlServer:自增步长:
**基础表级别:**
CREATE TABLE `t5` (
`nid` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL,
`num` int(11) DEFAULT NULL,
PRIMARY KEY (`nid`,`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=2 DEFAULT CHARSET=utf8
CREATE TABLE `t6` (
`nid` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL,
`num` int(11) DEFAULT NULL,
PRIMARY KEY (`nid`,`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=20 DEFAULT CHARSET=utf8
# 增
insert into tb11(name,age) values('alex',12);
insert into tb11(name,age) values('alex',12),('root',18);
insert into tb12(name,age) select name,age from tb11;
mysql的增_MySQL-----增相关推荐
- 学生的新增mySQL文档_MySQL增删改查
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...
- mysql下删改增语句_MySQL增删改查
以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. 前提:在进行"增删改 ...
- mysql实现序列自增_MySQL实现序列自增
#创建序列表 DROP TABLE IF EXISTS `sequence`; CREATE TABLE `sequence` ( `name` varchar(50) NOT NULL COMMEN ...
- mysql 自动增量_MySQL重置自动增量值
在本教程中,我们将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值. MySQL提供了一个有用的功能,称为自动增量. 您可以将自动递增属性分配给表的列,以生成新行的唯一标识. 通 ...
- python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...
- 修改Mysql表中自增字段的初始值
修改Mysql表中自增字段的初始值: ALTER TABLE employee AUTO_INCREMENT=2; 解释:将表employee自增字段的初始值设置为2
- jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...
- 使用 NodeJS+Express+MySQL 实现简单的增删改查
关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...
- mySql 修改字段自增
mySql 修改字段自增 Alter table tb change id id int(10) not null auto_increment=1;//有问题 mysql> alter tab ...
- mysql源生插入数据_php+mysql源生连接数据库和增删改查数据
php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...
最新文章
- MySQL太细碎了,我硬生生捋出了一条核心大主线!
- 如何修改博士论文?这份45页PPT《Editing your thesis》教你
- 2G---5G与未来天线技术
- Mac 技术篇-VS Code插件安装方法,查看vscode已安装插件的方法
- yum groupinstall “Development Tools“查看其软件列表
- Eclipse Debug maven test
- 苹果面试8大难题及答案
- Python通过Zabbix API获得数据
- 龙星电脑横机制版软件_简用仓库管理软件v8.6.3-简用仓库管理软件电脑版下载...
- 夺命雷公狗---DEDECMS----23dedecms修改内容页面展示的信息
- VC中自动改变控件位置和大小的对话框类
- Java思维导图(1)
- 长期趋势的测定方法-时距扩大法和移动平均法
- 夏普Sharp AR-6120N 一体机驱动
- 计算机表格怎么算加减,excel表格数据的加减-excel表格怎么自动计算加减
- 【新星计划】Matlab pid参数调节工具箱
- CubieBoard7开发板(基于S700芯片)基于安卓系统固件编译
- windows10关闭防火墙
- 2021年中国药店行业发展概述及未来发展趋势分析[图]
- 买笔记本要注意什么呢?
热门文章
- CNN模型复杂度(FLOPs、MAC)、参数量与运行速度
- VS2017 安装程序清单签名验证失败
- vs opencv4 imread读不到图片问题的解决方法
- pytorch attention
- type torch.cuda.FloatTensor but found type torch.cuda.ByteTensor
- apply_async多进程
- redhat 配置yum代理源
- 802.1AE保护局域网安全
- 二.MongoDB特点
- 查看linux java home_查看Linux中自带的jdk,设置JAVA_HOME