用一条insert 插入多行数据的方法
|
admin
2011年1月8日 10:38
本文热度 2781
|
今天需要用一条insert语句来插入多行数据,觉得这个真的挺实用,不用再用程序来for循环一遍一遍的插入了,事物处理也方便,不同数据库有不同的写法,下面我就来给大家分享一下吧! 假设有个表有 学号、姓名、学校 这三列
然后向这个表中插入
040501 孙明 山东大学
040502 李浩 山东师范
040503 王刚 烟台大学
SQL Server数据库:
insert 表名
select '040504','孙明','山东大学' union
select '040502','李浩','山东师范' union
select '040503','王刚','烟台大学'
注意:
如果插入数据没有涵盖所有的数据列,那么就要显式指明插入的数据列。例如对有(学号,姓名,性别,出生日期,学院编码,成绩,照片)这样几个列的表MYTable 2执行如下插入操作的时候,显式指出要插入的数据列。
insert into MyTable2 (学号,姓名,性别,出生日期,学院编码,成绩)
select '05001001','张三玉','女','1987-10-5','01',88 union
select '05001002','李斯','男','1986-4-18','01',76 union
select '03115002','欧阳陈其','男','1986-1-1','02',92
或者以下方法也行:
insert into MyTable2 (学号,姓名,性别,出生日期,学院编码,成绩) values ('05001001','张三玉','女','1987-10-5','01',88);
insert into MyTable2 (学号,姓名,性别,出生日期,学院编码,成绩) values ('05001002','李斯','男','1986-4-18','01',76);
insert into MyTable2 (学号,姓名,性别,出生日期,学院编码,成绩) values ('03115002','欧阳陈其','男','1986-1-1','02',92);
MySqL数据库:
- INSERT DELAYED INTO `newsort` (`sort_id`, `sort_name`, `sort_bz`) VALUES
- (1, 'aas', 'sdsdfsdfsf'),
- (2, 'ffff', 'gggg'),
- (4, '生活类', '要懂得生活才好!'),
- (5, '股票行情', ''),
- (6, '政治类新闻', ''),
- (7, 'IT行业新闻', ''),
- (8, '宗教类新闻', '');
INSERT DELAYED INTO `newsort` (`sort_id`, `sort_name`, `sort_bz`) VALUES
(1, 'aas', 'sdsdfsdfsf'),
(2, 'ffff', 'gggg'),
(4, '生活类', '要懂得生活才好!'),
(5, '股票行情', ''),
(6, '政治类新闻', ''),
(7, 'IT行业新闻', ''),
(8, '宗教类新闻', '');
Oracle数据库:
- insert into codename (cn_id,cn_code,cn_name,cn_type)
- select 8032,21,'内训',76 FROM DUAL
- union
- select 8033,22,'外派',76 FROM DUAL
- union
- select 8034,23,'境外',76 FROM DUAL
insert into codename (cn_id,cn_code,cn_name,cn_type)
select 8032,21,'内训',76 FROM DUAL
union
select 8033,22,'外派',76 FROM DUAL
union
select 8034,23,'境外',76 FROM DUAL
该文章在 2011/1/8 10:53:40 编辑过
|
|