用一條insert 插入多行數據的方法
|
admin
2011年1月8日 10:38
本文熱度 3048
|
今天需要用一條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 編輯過
|
|