首页技术insert多条语句,用insert语句向表中添加多条记录

insert多条语句,用insert语句向表中添加多条记录

编程之家2026-07-03816次浏览

各位老铁们,大家好,今天由我来为大家分享insert多条语句,以及用insert语句向表中添加多条记录的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

insert多条语句,用insert语句向表中添加多条记录

如何一次插入多条记录的SQL语句

在使用SQL数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用SQL语句来实现,该语句具体如下:

--添加一条记录

INSERT INTO tableName(col1,col2,col3) VALUES(1,2,3)

--添加多条记录

INSERT INTO tableName(col1,col2,col3)

SELECT 3,4,5

insert多条语句,用insert语句向表中添加多条记录

UNION ALL

SELECT 6,7,8

--从另外的一张表中读取多条数据添加到新表中

INSERT INTO tableName(col1,col2,col3)

SELECT a,b,c FROM tableA

--从其他的多张表中读取数据添加到新表中

insert多条语句,用insert语句向表中添加多条记录

INSERT INTO tableName(col1,col2,col3)

SELECT a,b,c FROM tableA WHERE a=1

UNION ALL

SELECT a,b,c FROM tableB WHERE a=2

上边代码中的into都可以省略!

上边代码中的union all如果换成union,则相同记录只插入一次,不会重复插入。

另外一种方法是SQL Server2008特有的,所以,如果你不是SQL Server2008,就不能使用这种方法了。

INSERT INTO MyTable(ID,NAME)VALUES(7,'003'),(8,'004'),(9,'005')

create table [TEST]

(

[NUM_ID] int primary key

)

go

declare@temp int

set@temp=1;

while@temp<=1000000

begin

insert into [TEST]([NUM_ID]) values(@temp)

set@temp=@temp+1;

end

go

----------------------------------------------------------

--试试下面的方法

--2005

DECLARE@n AS BIGINT;

SET@n= 1000000;

WITH Base AS

(

SELECT 1 AS n

UNION ALL

SELECT n+ 1 FROM Base WHERE n< CEILING(SQRT(@n))

),

Expand AS

(

SELECT 1 AS c

FROM Base AS B1, Base AS B2

),

Nums AS

(

SELECT ROW_NUMBER() OVER(ORDER BY c) AS n

FROM Expand

)

SELECT n FROM Nums WHERE n<=@n

OPTION(MAXRECURSION 0);

--2

CREATE FUNCTION dbo.fn_nums(@n AS BIGINT) RETURNS TABLE

AS

RETURN

WITH

L0 AS(SELECT 1 AS c UNION ALL SELECT 1),

L1 AS(SELECT 1 AS c FROM L0 AS A, L0 AS B),

L2 AS(SELECT 1 AS c FROM L1 AS A, L1 AS B),

L3 AS(SELECT 1 AS c FROM L2 AS A, L2 AS B),

L4 AS(SELECT 1 AS c FROM L3 AS A, L3 AS B),

L5 AS(SELECT 1 AS c FROM L4 AS A, L4 AS B),

Nums AS(SELECT ROW_NUMBER() OVER(ORDER BY c) AS n FROM L5)

SELECT n FROM Nums WHERE n<=@n;

GO

--2000这个会比前两个慢,但是前两个2000不能用

CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);

DECLARE@max AS INT,@rc AS INT;

SET@max= 1000000;

SET@rc= 1;

INSERT INTO Nums VALUES(1);

WHILE@rc* 2<=@max

BEGIN

INSERT INTO dbo.Nums SELECT n+@rc FROM dbo.Nums;

SET@rc=@rc* 2;

END

INSERT INTO dbo.Nums

SELECT n+@rc FROM dbo.Nums WHERE n+@rc<=@max;

--------------------------------------------------------------------------------------------------------

怎样在sql中用insert语句往表中插入多行

如果数据很多的话建议可以用别的方法特别是数据量比较多的时候

ORACLE有一个SQLLODER功能

1.生成百万级的sql,保存SQL文件为getobject.sql

select a.owner||',"'||a.object_name||'",'||a.object_id||','||to_char(a.created,'yyyy-mm-dd hh24:mi:ss')||','||a.status

from dba_objects a,(select rownum from dual connect by rownum<= 20);

2.sql数据转换成数据文件,保存脚本为call.sql

set echo off

set term off

set trimout on

set trimspool on

set pagesize 0

set feedback off

set heading off

spool c:\getobject.csv

@c:\getobject.sql

set spool off

set heading on

set feedback on

set trimspool off

set trimout off

set term on

set echo on

注释:

set colsep'';//-域输出分隔符

set echo off;//显示start启动的脚本中的每个sql命令,缺省为on

set echo on//设置运行命令是是否显示语句

set feedback on;//设置显示“已选择XX行”

set feedback off;//回显本次sql命令处理的记录条数,缺省为on

set heading off;//输出域标题,缺省为on

set pagesize 0;//输出每页行数,缺省为24,为了避免分页,可设定为0。

set linesize 80;//输出一行字符个数,缺省为80

set numwidth 12;//输出number类型域长度,缺省为10

set termout off;//显示脚本中的命令的执行结果,缺省为on

set trimout on;//去除标准输出每行的拖尾空格,缺省为off

set trimspool on;//去除重定向(spool)输出每行的拖尾空格,缺省为off

set serveroutput on;//设置允许显示输出类似dbms_output

set timing on;//设置显示“已用时间:XXXX”

set autotrace on-;//设置允许对执行的sql进行分析

set verify off//可以关闭和打开提示确认信息old 1和new 1的显示.

3.运行call.sql生成数据文件

sqlplus hxadmin/secret as sysdba;

@c:\call.sql

4.初始化环境,创建导入表OBjects

create table OBJECTS

(

OWNER VARCHAR2(50),

OBJECT_NAME VARCHAR2(50),

OBJECT_ID NUMBER,

STATUS VARCHAR2(10),

CREATED DATE

)

5.生成导入控制文件,保存控制文件为ldr_object.ctl

LOAD DATA

INFILE getobject.csv

TRUNCATE INTO TABLE OBJECTS

FIELDS TERMINATED BY"," OPTIONALLY ENCLOSED BY'"' TRAILING NULLCOLS

(OWNER,

OBJECT_NAME,

OBJECT_ID,

CREATED date'yyyy-mm-dd hh24:mi:ss',

STATUS)

6.执行sqlldr命令

C:> sqlldr hxadmin/secret control= ldr_object.ctl direct= true

7.查看ldr_object.log日志文件

这个例子是我自己做的一个100W行的数据插入也只要10几秒。希望你能用到。

python怎么用insert函数插入多个值

一条insert语句批量插入多条记录

常见的insert语句,向数据库中,一条语句只能插入一条数据:

insertintopersons

(id_p,lastname,firstName,city)

values(204,'haha','deng','shenzhen');

(如上,仅插入了一条记录)

怎样一次insert插入多条记录呢?

使用示例:

insertintopersons

(id_p,lastname,firstName,city)

values

(200,'haha','deng','shenzhen'),

(201,'haha2','deng','GD'),

(202,'haha3','deng','Beijing');

这样就批量插入数据了,遵循这样的语法,就可以批量插入数据了。

执行成功,截图:

据说,在程序开发中,一次插入多条数据,比逐次一条一条的插入数据,效率高很多

所以在程序开发的时候,使用此批量插入,也是比较不错的。

此语句在MySQL5,postgreSQL9.3执行通过。

OK,关于insert多条语句和用insert语句向表中添加多条记录的内容到此结束了,希望对大家有所帮助。

lookup函数的作用,lookup函数精确查找反函数基本公式?导函数运算法则公式