zoukankan      html  css  js  c++  java
  • mysql 插入 详解

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

    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','2000',1);
    Query OK, 1 row affected (0.00 sec)

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

    mysql> insert into emp values('lisa','2003-02-01','3000',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 在插入大量记录时,节省很多的网络开销,大大提高插入效率。

  • 相关阅读:
    JBoss 系列十八:使用JGroups构建块RpcDispatcher构建群组通信应用
    TJU Easier Done than Said?
    [置顶] 程序员面试之道(《程序员面试笔试宝典》)之如何回答系统设计题?
    百度2014校园招聘笔试题 ——深度学习算法研发工程师.
    SpringCloud常用注解
    @PrePersist
    【转】http_load压力测试过程和使用方式
    handlermethodargumentresolver
    云计算的三种服务模式:IaaS,PaaS和SaaS
    pip install 升级时候 出现报asciii码错误的问题。
  • 原文地址:https://www.cnblogs.com/xuchunlin/p/6197445.html
Copyright © 2011-2022 走看看