数据插入方式
对数据库中的表进行数据插入时,主要有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 INTO
table_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);
插入数据时报错:由于mall_name不允许为NULL,所以在插入数据时发生了错误
INSERT INTO
sales_order_item (area_name,seller_name,product_count,order_status)
VALUES ('销售一区','王霞',1,'已付款');
报错内容如下:
3、当要插入的数据包含表中的所有字段时,可以不指定列名,但是数据的顺序必须要和表中字段名的顺序保持一致。
对于需要定时运行的脚本,建议显式指定列名;当不指定列名时,后续如果出现插入列或列顺序调整的情况,就会出现问题。
本文暂时没有评论,来添加一个吧(●'◡'●)