**创建用户**
    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-----增的更多相关文章

  1. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...

  2. PHP MySql增删改查

    mysql_connect()连接数据库 mysql_select_db选择数据库 mysql_fetch_assoc()获取结果集 mysql_query()执行sql语句 实例如下: <?p ...

  3. mysql增删改查练习

    Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create dat ...

  4. Django学习之mysql增删改查

    上节介绍了如何使用命令行操作mysql增删改查,现在介绍如何使用python管理mysql 使用pip 下载完mysql后,mysql会以pymysql模块的形式存储在pycharm的包文件里.我们通 ...

  5. mysql增删改查相关操作

    mysql增删改查相关操作 以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧. 1.数据库的授权操作 # mysql -u root -p Ente ...

  6. 基于gin的golang web开发:mysql增删改查

    Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...

  7. MySQL增删改查的常用语句汇总

    MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...

  8. Mysql - 增删改

    因为项目原因, mysql用了两年了, 但是一直都未曾去总结过. 最近也是领导让总结项目, 才想起把mysql的使用小结一下. 一. Create 1. 单条插入, sql格式: insert int ...

  9. nodejs+express+mysql 增删改查

    之前,一直使用的是nodejs+thinkjs来完成自己所需的项目需求,而对于nodejs中另外一中应用框架express却了解的少之又少,这两天就简单的了解了一下如何使用express来做一些数据库 ...

  10. Node+Express+node-mysql 实战于演习 全套mysql(增删改查)

    最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+nod ...

随机推荐

  1. c语言程序设计案例教程(第2版)笔记(三)—变量、结构体

    零散知识点: 变量        :C语言中,每个变量必须先定义后引用.所谓变量存在是指系统为这个变量分配一块存储空间,此时对变量的操作,就是对变量所对应的存储空间中存放的数据进行操作.人们将变量占据 ...

  2. java启动参数二

    非标准参数又称为扩展参数,其列表如下: -Xint 设置jvm以解释模式运行,所有的字节码将被直接执行,而不会编译成本地码. -Xbatch 关闭后台代码编译,强制在前台编译,编译完成之后才能进行代码 ...

  3. Oracle报错:“ORA-18008: 无法找到 OUTLN 方案 ”的解决方案

    Oracle报错:“ORA-18008: 无法找到 OUTLN 方案 ”的解决方案   2.修改replication_dependency_tracking参数 SQL> alter syst ...

  4. Android学习备忘笺01Activity

    01.设置视图 在Android Studio新建的项目中,通过 setContentView(R.layout.activity_main);方法将res/layout/activity_main. ...

  5. @ComponentScan、@EnableFeignClients和@MapperScan注解笔记

    @ComponentScan:此注解是用来管理容器中的bean,即是管理项目中类的依赖关系, 注意此注解并不创建类的实例: 默认情况下此注解扫描本工程下的所有包,                    ...

  6. AJPFX关于File类复习

    file是一个路径,分为相对路径(eclipse)和绝对路径:1.构造方法有:File(String pathname ),File(String parent ,String child),File ...

  7. 全志R58平台调通s5k5eya(RAW+MIPI)

    全志R58平台调通s5k5eya(RAW+MIPI) 2017/5/31 10:30 版本:V1.1 1.前期使用的是s5k5eyx的ISP的固件/tuning 文件 Y:\s5k5eya_r58_d ...

  8. Android开发中查看未root真机的app数据库

    在Android开发中,如果用到数据库来储存数据,那么难免就要查看数据库中的内容,可是对于未root的真机来说,查看数据库就不是那么容易了,如果仅仅为了查看数据库再把手机root了,有点得不偿失,所以 ...

  9. linux下php访问sql server设置

    安装freeIDS 官网下载地址: wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.18.tar.gz 1.1.到下载目录解压 t ...

  10. C语言基础-运算符

    sizeof()运算符 •sizeof可以用来计算一个变量或者一个常量.一种数据类型所占的内存字节数 •sizeof一共有3种形式   1.sizeof( 变量\常量 )      sizeof(10 ...