表创建好后,就可以往里插入记录了,插入记录的基本语法如下:

INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn);

例如,向表emp 中插入以下记录:ename 为zzx1,hiredate 为2000-01-01,sal 为2000,deptno为1,命令执行如下:

mysql> insert into emp (ename,hiredate,sal,deptno) values('zzx1','2000-01-01','',1);
Query OK, 1 row affected (0.00 sec)

也可以不用指定字段名称,但是values 后面的顺序应该和字段的排列顺序一致:

mysql> insert into emp values('lisa','2003-02-01','',2);
Query OK, 1 row affected (0.00 sec)
对于含可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert 后的字段列表里面出现,values 后面只写对应字段名称的value,这些没写的字段可以自动设置为NULL、
默认值、自增的下一个数字,这样在某些情况下可以大大缩短SQL 语句的复杂性。例如,只对表中的ename 和sal 字段显式插入值:
  mysql> insert into emp (ename,sal) values('dony',1000);
  Query OK, 1 row affected (0.00 sec)

来查看一下实际插入值:

  mysql> select * from emp;
  +--------+------------+---------+--------+
  | ename | hiredate | sal | deptno |
  +--------+------------+---------+--------+
  | zzx | 2000-01-01 | 100.00 | 1 |
  | lisa | 2003-02-01 | 400.00 | 2 |
  | bjguan | 2004-04-02 | 100.00 | 1 |
  | dony | NULL | 1000.00 | NULL |
  +--------+------------+---------+--------+

果然,设置为可空的两个字段都显示为NULL。
在MySQL 中,insert 语句还有一个很好的特性,可以一次性插入多条记录,语法如下:

INSERT INTO tablename (field1, field2,……fieldn)
VALUES
(record1_value1, record1_value2,……record1_valuesn),
(record2_value1, record2_value2,……record2_valuesn),
……
(recordn_value1, recordn_value2,……recordn_valuesn)
;

可以看出,每条记录之间都用逗号进行了分隔。
下面的例子中,对表dept 一次插入两条记录:

mysql> insert into dept values(5,'dept5'),(6,'dept6');
Query OK, 2 rows affected (0.04 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from dept;
+--------+----------+
| deptno | deptname |
+--------+----------+
| 1 | tech |
| 2 | sale |
| 5 | fin |
| 5 | dept5 |
| 6 | dept6 |
+--------+----------+
5 rows in set (0.00 sec)

这个特性可以使得MySQL 在插入大量记录时,节省很多的网络开销,大大提高插入效率。

mysql 插入 详解的更多相关文章

  1. MySQL 数据类型 详解

    MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...

  2. MySQL配置文件详解

    MYSQL 配置文件详解 “全局缓存”.“线程缓存”,全局缓存是所有线程共享,线程缓存是每个线程连接上数据时创建一个线程(如果没有设置线程池),假如有200连接.那就是200个线程,如果参数设定值是1 ...

  3. MySQL权限详解

    MySQL权限级别介绍 MySQL权限级别 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上 数据库对象级别的权限,作用于指定的数据库对象上 ...

  4. MySQL 操作详解

    MySQL 操作详解 一.实验简介 本节实验中学习并实践 MySQL 上创建数据库.创建表.查找信息等详细的语法及参数使用方法. 二.创建并使用数据库 1. 创建并选择数据库 使用SHOW语句找出服务 ...

  5. MySQL字符集详解

    Reference:  https://www.cnblogs.com/wcwen1990/p/6917109.html MySQL字符集详解   一.字符集和校验规则 字符集是一套符合和编码,校验规 ...

  6. MySQL状态变量详解

    MySQL状态变量详解 mysql的状态变量(status variables)记录的mysql服务器的运行状态信息.查看语法如下: SHOW [GLOBAL | SESSION] STATUS; S ...

  7. Mysql超详解

    Mysql超详解 一.命令框基本操作及连接Mysql 找到Mysql安装路径,查看版本 同时按快捷键win+R会弹出一个框,在框中输入cmd 点击确定后会出现一个黑框,这是命令框,我们的操作要在这命令 ...

  8. 【详细解析】MySQL索引详解( 索引概念、6大索引类型、key 和 index 的区别、其他索引方式)

    [详细解析]MySQL索引详解( 索引概念.6大索引类型.key 和 index 的区别.其他索引方式) MySQL索引的概念: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分 ...

  9. mysql存储过程详解

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

随机推荐

  1. JAVAssist---动态改动注解

    ​ITOOV3.0開始了,须要研究一些技术难点,先来说一个我认为比較有趣的技术点吧.需求是这种.我们须要动态的切换数据源,又因为我们是通过实体单元的注入来完毕的.实体单元是通过注解的形式注入的.这样假 ...

  2. .NET:遇到并发问题,什么样的情况下需要自动重试?

    背景 多用户系统会出现并发问题,应对并发问题的两种方式是“悲观锁”和“乐观锁”,多数情况下都会采用“乐观锁”,这引发了一个问题,如果检查出乐观并发异常如何重试?是让最终用户手工重试?还是让系统自动重试 ...

  3. 魅族MX4的线控电路图

  4. VMware虚拟机的磁盘文件共享给物理机

    启动VMware程序 → 选中某虚拟主机('关闭'状态) → 菜单栏'虚拟机(M)' → '设置(S)' 或直接"编辑虚拟机设置". 2 在“硬件”标签下点击“硬盘(SCSI)”→ ...

  5. 设计模式(一)简单工厂(创建型)(Java&&PHP)

    面向对象设计的基本原则 单一职责系统中的每一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成. 基本思想:高内聚,低耦合. 开闭原则一个对象对扩展开放,对修改关闭.基本思想:对类的改动 ...

  6. 【云计算】OpenStack qcow2镜像如何转化为Docker镜像?

    Import qcow2 image to docker hub 参考资料: https://forums.docker.com/t/import-qcow2-image-to-docker-hub/ ...

  7. 在Docker和Kubernetes上运行MongoDB微服务

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟.容器是完全使用沙箱机制,相互之间不会有任何接 ...

  8. 吐槽win7

    在纠结了N次后,终于重装win7了.其间还是不死心,又找了新的xp版本来装了一下,确实不行,才心不甘情不愿地再次回到win7下. 说实话,Win7的各种新功能,我没有感觉到有多好,只有不适应,如: 资 ...

  9. Eclipse与Android源码中ProGuard工具的使用(代码混淆)

    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...

  10. Java 并发:内置锁 Synchronized

    摘要: 在多线程编程中,线程安全问题是一个最为关键的问题,其核心概念就在于正确性,即当多个线程訪问某一共享.可变数据时,始终都不会导致数据破坏以及其它不该出现的结果. 而全部的并发模式在解决问题时,採 ...