SQL INSERT

INSERT语句向数据表中插入数据有以下两种形式:

  • 将数据列出并插入到数据表的指定列;

  • 插入其他表中查询的结果记录插入到数据表的指定列。

01 将数据列出并插入到数据表的指定列

语法结构如下:

1.插入记录到指定列,这里的列可以是数据表的全部列、也可以是部分列,但是列的数量和值的数量必须一致,顺序也要保持一致;

INSERT INTO table(column1,column2,…)VALUES(value1,value2,…);

2.当插入记录到指定列,指定列为全部列时也可以省略(column1,column2,…)

INSERT INTO tableVALUES (value1, value2,...);

实例如下:

这里通过表data_learning.product进行举例,data_learning是1.2节创建的数据库。

向数据表全部列中插入一行数据或多行数据(两种都可,插入多行数据类似):

-- 2.商品信息表:product,若是1.2节创建数据库&数据表中已执行下列语句,此次可以不用重复执行INSERT INTO data_learning.product(product_id,product_name,price) VALUES('P1','毛呢大衣',559  ),('P2','羽绒服',1999 ),('P3','风衣',299  );

--向数据表全部列中插入多行数据:

-- 2.商品信息表:product,若是1.2节创建数据库&数据表中已执行下列语句,此次可以不用重复执行INSERT INTO data_learning.product VALUES('P1','毛呢大衣',559  ),('P2','羽绒服',1999 ),('P3','风衣',299  );

向数据表指定列中插入一行数据:

-- 2.商品信息表:productINSERT INTO data_learning.product(product_id,product_name)VALUES('testP','TESTP');

查询 插入的行记录

SELECT * FROM data_learning.productWHERE product_id = 'testP'

没有插入的列默认值为NULL,查询结果如图:

https://pic1.zhimg.com/80/v2-847f0bb4f96986971ca1d25a4b278ac4_720w.webp

02 插入其他表中查询的结果记录插入到数据表的指定列

结构如下:

-- 这里的指定列同上,可以数据表的全部列、也可以是部分列,但是列的数量和值的数量必须一致,顺序也要保持一致;INSERT INTO table1 (column1, column2,…)SELECT
    column1,column2,…FROM
    table2WHEREcondition1;


实例如下:

INSERT INTO data_learning.product (product_id,product_name)SELECTcategory_id as product_id,category_name as product_nameFROMdata_learning.product_category WHERElevel_id = 'L1';


如果两个表table1和table2有相同的结构,那么可以通过以下语句将一张表的所有数据插入另外一张表。

INSERT INTO table1SELECT
    *FROMtable2;


0 个评论

要回复文章请先登录注册