INSERT INTO SQL之数据插入的实现

数据插入方式

对数据库中的表进行数据插入时 , 主要有3种实现方式:
1、编写insert into脚本 , 在SQL编辑页面直接运行;
2、借助SQL客户端,直接运行insert into脚本文件(文件后缀.SQL) , 适用于插入数据量较大时,例如表数据的还原;
3、借助SQL客户端,直接导入excel等格式的数据文件,导入时需要对源字段和目标字段进行匹配 。
下面主要讲解insert into脚本的编写 。

insert into功能

1、通过使用insert into语句,可以方便地向数据库中的表插入数据 。

insert into语法结构

insert into主要有三种语法结构
1、单行插入
 INSERT INTO table_name (column_list) VALUES (values_list);
2、多行插入
实现方式1:
INSERT INTO table_name (column_list) VALUES (values_list1), (values_list2),......;
实现方式2:多次使用单行插入
INSERT INTO table_name (column_list) VALUES (values_list1);INSERT INTO table_name (column_list) VALUES (values_list2);
3、select查询结果插入
INSERT INTO table_name1 (column_list) SELECT values_list FROM table_name2 WHERE condition;
重点说明
1、当我们指定列名的时候,顺序可以和表中字段名的顺序不一样 , 但是列名和插入数据的顺序必须一 一对应 。
正确写法:
INSERT INTO table_name (column1,column2,column3) VALUES (column_value1,column_value2,column_value3);
错误写法:字段1和字段2的列名和数据值不对应,导致脚本报错或插入结果错误
INSERT INTOtable_name (column1,column2,column3)VALUES (column_value2,column_value1,column_value3);
2、当我们指定列名时,可以只指定部分列,但是未包含的列必须为自增列、有默认值或允许为NULL 。
新建表:新建一张表sales_order_item
CREATE TABLE sales_order_item(id int NOT NULL AUTO_INCREMENT primary key,mall_name varchar(10) NOT NULL,area_name varchar(10) ,seller_name varchar(10) NOT NULL,product_count int NOT NULL,order_status varchar(10) DEFAULT '已付款');
正常插入一条数据:由于id为自增列,area_name允许为空,order_status有默认值,所以该脚本可以正常执行
INSERT INTO sales_order_item (mall_name,seller_name,product_count) VALUES ('城东点','王霞',1);
【INSERT INTO SQL之数据插入的实现】插入数据时报错:由于mall_name不允许为NULL,所以在插入数据时发生了错误
INSERT INTOsales_order_item (area_name,seller_name,product_count,order_status)VALUES ('销售一区','王霞',1,'已付款');
报错内容如下:
INSERT INTO SQL之数据插入的实现

3、当要插入的数据包含表中的所有字段时,可以不指定列名,但是数据的顺序必须要和表中字段名的顺序保持一致 。
对于需要定时运行的脚本,建议显式指定列名;当不指定列名时,后续如果出现插入列或列顺序调整的情况,就会出现问题 。
#SQL##如何学习SQL语言##大数据SQL技巧#

相关经验推荐