首页 > 试题广场 >

批量插入数据

[编程题]批量插入数据
  • 热度指数:158914 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
对于表actor批量插入如下数据
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime('now','localtime')))
actor_id first_name last_name last_update
1 PENELOPE GUINESS 2006-02-15 12:34:33
2 NICK WAHLBERG 2006-02-15 12:34:33
示例1

输入

drop table if exists actor;
CREATE TABLE actor (
   actor_id  smallint(5)  NOT NULL PRIMARY KEY,
   first_name  varchar(45) NOT NULL,
   last_name  varchar(45) NOT NULL,
   last_update  DATETIME NOT NULL)

输出

1|PENELOPE|GUINESS|2006-02-15 12:34:33
2|NICK|WAHLBERG|2006-02-15 12:34:33
insert into actor
values(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
       (2,'NICK','WAHLBERG','2006-02-15 12:34:33');
发表于 2021-06-04 18:15:09 回复(0)
insert into actor values(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),(2,'NICK','WAHLBERG','2006-02-15 12:34:33');
发表于 2018-04-27 21:41:26 回复(0)
insert into  actor values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33');
values后面 的内容用逗号隔开,可以添加多条信息
发表于 2017-12-13 10:48:08 回复(0)

一次插入多条数据:

INSERT INTO test(username, passwd) VALUES

('qmf2', 'qmf2'),('qmf3', 'qmf3'),
('qmf4', 'qmf4'),('qmf5', 'qmf5')


所以

insert into actor values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33');
编辑于 2017-11-08 19:05:57 回复(1)
本题的批量插入数据要求在一条语句内完成,以下有两种方法供参考:
方法一:利用VALUES(value1, value2, ...), (value1, value2, ...), ...(value1, value2, ...),
INSERT INTO actor 
VALUES (1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'),
(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33')
方法二:利用 UNION SELECT 批量插入
INSERT INTO actor
SELECT 1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'
UNION SELECT 2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33'
编辑于 2017-07-19 20:21:15 回复(5)
insert into actor(actor_id,first_name,last_name,last_update)
values (1,'PENELOPE','GUINESS','2006-02-15 12:34:33'), (2,'NICK','WAHLBERG','2006-02-15 12:34:33');
发表于 2017-07-10 21:34:16 回复(1)
哎,学的是MySQL,在sqllite环境中刷题真心累

insert into actor
values (1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
 (2,'NICK','WAHLBERG','2006-02-15 12:34:33');

发表于 2020-04-15 23:04:06 回复(6)
insert into actor values(1,"PENELOPE","GUINESS","2006-02-15 12:34:33"),(2,"NICK","WAHLBERG","2006-02-15 12:34:33");

insert into 表名 values(数据1),(数据2)
发表于 2017-08-30 15:38:30 回复(2)
如果是针对所有列插入,可以不用指定列。
【易错点】values后面不需要再用括号把所有行的记录再括一遍。

insert into actor 
values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33');


发表于 2021-01-24 01:01:11 回复(0)
insert into actor
(actor_id,first_name,last_name,last_update)
values
(1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'),
(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33')
发表于 2022-04-16 14:41:24 回复(0)
insert into actor(
actor_id,
first_name,
last_name,
last_update
)
values(
1,
'PENELOPE',
'GUINESS',
'2006-02-15 12:34:33'
),
(2,
'NICK',
'WAHLBERG',
'2006-02-15 12:34:33'
)

发表于 2021-12-18 10:56:07 回复(0)
-- 方法一
INSERT INTO actor
VALUES (1,'PENELOPE','GUINESS','2006-02-15 12:34:33')
       ,(2,'NICK','WAHLBERG','2006-02-15 12:34:33')

-- 方法二
INSERT INTO actor
SELECT 1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'
UNION SELECT 2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33'

发表于 2021-07-20 19:52:33 回复(0)
inserT into actor 
values('1','PENELOPE','GUINESS','2006-02-15 12:34:33'),
('2','NICK','WAHLBERG','2006-02-15 12:34:33')
发表于 2021-05-07 11:38:13 回复(0)
insert into actor(actor_id,first_name,last_name,last_update) 
values(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),(2,'NICK','WAHLBERG','2006-02-15 12:34:33')

这里默认应该是不用插入id的,id本身就是自增长策略 
发表于 2018-07-19 20:57:37 回复(3)

解法一 常规解法

insert into actor 
(actor_id, first_name, last_name, last_update)
values
(1, "PENELOPE", "GUINESS", "2006-02-15 12:34:33"),
(2, "NICK", "WAHLBERG", "2006-02-15 12:34:33")

解法二 评论区黑魔法

insert into actor
select 1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'
union select 2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33'


发表于 2021-05-22 22:31:14 回复(0)
批量插入行数据:
  • insert into 表名(列名1,列名2,……)
  • values
  • (值1,值2,……),(值1,值2,……),……
  • 空值用null代替
  • 值和列名顺序对应
     

insert into actor(actor_id,first_name,last_name,last_update)
values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),(2,'NICK','WAHLBERG','2006-02-15 12:34:33')


发表于 2025-05-14 14:55:10 回复(2)
insert into  actor values
(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33');
发表于 2025-03-05 04:43:09 回复(0)
drop table
if exists actor;

CREATE TABLE
actor (
actor_id smallint (5) NOT NULL PRIMARY KEY auto_increment,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update DATETIME NOT NULL
);

Insert into actor(first_name, last_name,last_update) values ('PENELOPE','GUINESS','2006-02-15 12:34:33');
Insert into actor(first_name, last_name,last_update) values ('NICK','WAHLBERG','2006-02-15 12:34:33');


别忘记加封号
发表于 2025-02-16 16:25:53 回复(0)
insert into actor values(1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33');
insert into actor values(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33');
发表于 2025-01-21 11:00:51 回复(0)
INSERT INTO actor
VALUES(1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'),
    (2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33')
发表于 2024-10-24 15:46:50 回复(0)

问题信息

SQL
难度:
143条回答 15959浏览

热门推荐

通过挑战的用户

查看代码
批量插入数据