zoukankan      html  css  js  c++  java
  • 15 插入数据

    哇,前面一直在大篇幅了解SELECT,毫无疑问它是SQL圈的大佬了。但是还有其它三种常见的SQL语句要学习,今天就聊一聊 INSERT插入语句。

    插入有几种方式:

    • 插入完整的行;
    • 插入行的一部分;
    • 插入多行;
    • 插入某些查询的结果。

    15.1 插入完整的行

    INSERT INTO customers(cust_id,
                 cust_name,
                  cust_address,
                  cust_state,
                  cust_zip,
                  cust_country,
                  cust_contact,
                  cust_email)
    VALUES ('10006',
          'Toy',
          '123 Any Street',
          'New York',
          'NY',
          '111',
          'USA'
          NULL,
          NULL);

    其实,列名可以省略,但尽量不要这样做,因为可能会导致次序错误。并且这里的列名顺序可以更改,只要保证列名和它的值一一对应就好了。

    15.2 插入多个行

    • 可以对个INSERT语句之间用引号(;)隔开;
    • 可以只有一个INSERT,但是有多个VALUES语句,VALUES语句之间用逗号(,)隔开。

    15.3 插入检索出的数据

    INSERT 可以将一条SELECT语句的结果插入表中。 即INSERT SELECT 。
    举一个例子来看一下:

    INSERT INTO customers(cust_id,
                 cust_name,
                  cust_address,
                  cust_state,
                  cust_zip,
                  cust_country)
    SELECT cust_id,
          cust_name,
           cust_address,
           cust_state,
           cust_zip,
           cust_country
    FROM custnew;

    这个例子使用INSERT SELECTcustnew中将所有数据导入 customers

    注意:这个例子把一个名为custnew的表中的数据导入customers表中。为了试验这个例子,应该首先创建和填充custnew表。并且两个表的结构一样。在填充custnew时,不应该使用已经在customers
    中使用过的cust_id值(防止主键值重复)或仅省略这列值让MySQL在导入数据的过程中产生新值。

    事实上, MySQL甚至不关心SELECT返回的列名。它使用的是列的位置,因此SELECT中的第一列(不管其列名)将用来填充表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。

  • 相关阅读:
    leetcode[164] Maximum Gap
    leetcode[162] Find Peak Element
    leetcode[160] Intersection of Two Linked Lists
    leetcode[156] binary tree upside down
    leetcode[155] Min Stack
    leetcode Find Minimum in Rotated Sorted Array II
    leetcode Find Minimum in Rotated Sorted Array
    leetcode Maximum Product Subarray
    ROP
    windbg bp condition
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10165742.html
Copyright © 2011-2022 走看看