• 添加数据 insert 命令详解


    1. insert 语法格式


    完整格式

    insert [into] 表名[字段名1[, 字段名2]] value[s](值1, 值2),(值3, 值4);
    

    省略字段名

    省略字段名时,必须依次添加所有段的值

    insert [into] 表名 value(值1, 值2[, ...]);
    

    只添加一条数据时,也可以使用 insert ... set 命令

    此方式无法插入空值

    insert into 表名 set 字段名1=值[,字段名2=值];
    

    2. 使用示例


    a. 省略字段名

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
      `nickname` varchar(60) DEFAULT NULL COMMENT '用户昵称',
      `gender` tinyint(1) DEFAULT NULL COMMENT '性别',
      `age` mediumint(9) DEFAULT NULL COMMENT '年龄',
      `status` tinyint(1) DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
      `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
    

    特别注意:因为字段id会自动增长,设置为null即可

    如果没有写出所有字段的值,会出现以下错误

    1136 - Column count doesn't match value count at row 1(列计数与行的值计数不匹配)

    insert into user value(null, '张三', 1, 20, null, 1602295286);
    

    b. 给指定的字段添加数据,则没有被指定的字段必须有默认值

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
      `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
      `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
      `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
    

    没有默认值的字段必须给值:nickname 字段设置了 not null 且没有设置 default

    insert into user(`status`, `create_time`) value(1, 1602295286);
    

    c. 一次添加多条数据

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
      `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
      `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
      `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
    
    insert into user(`nickname`, `status`) value('张大民', 1), ('小新', 0), ('小刚同学', 1);
    

    d. 添加一条数据的两种写法

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
      `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
      `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
      `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
    
    insert into user(`nickname`, `status`) value('小王', 1);
    
    insert into user set `nickname` = '大王', `status` = '0';
    

    3. MySQL 添加数据总结(常见用法)


    不指定字段名,所有字段必须给值

    insert into user value(null, '张三', '123456', '男', 20, 1602295286);
    

    into 可以省略,但是一般都不省略

    insert user value(null, '张三', '123456', '男', 20, 1602295286);
    

    指定部分字段添加,没有被指定的字段 要么会自动增长,要么允许为 null,要么有默认值

    insert into user(`nickname`, `password`, `gender`, `age`) value('张三', '123456', '男', 20);
    

    添加一条数据时也可以用 insert ... set

    insert into user set `nickname` = '大王', `status` = '0';
    

    添加多条数据

    insert into user(`nickname`, `status`) value('张大民', 1), ('小新', 0), ('小刚同学', 1);
    
  • 相关阅读:
    谈谈Windows Wow64
    Windows x86 下的 静态代码混淆
    Android so 文件进阶<二> 从dlsym()源码看android 动态链接过程
    You should blog even if you have no readers
    android app启动过程
    Android so文件进阶 <一>
    AndroidStudio+ideasmali动态调试smali汇编
    32位进程注入64位进程
    What is Windows Clustering
    Delphi实用小function
  • 原文地址:https://www.cnblogs.com/cfmy/p/13792738.html
Copyright © 2020-2023  润新知