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中的第一列(不管其列名)将用来填充表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。

原文地址:https://www.cnblogs.com/xlzfdddd/p/10165742.html