web開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,設定只需要匯入目標表中不存在的記錄,雖然這些都可以在程式中拆分成簡單sql來實現,但是用乙個sql的話,會節省大量**。
兩張表:inserttest和inserttest2,前者中有測試資料
create
table inserttest(id int(4),name
varchar(12));
insert
into inserttest values(100,'tom');
insert
into inserttest values(101,'tim');
insert
into inserttest values(102,'sam');
1.如果2張表的字段一致,並且希望插入全部資料,可以用這種方法:
insert into 目標表 select * from **表;
insert
into inserttest1 select * from inserttest2;
2.如果只希望匯入指定字段,可以用這種方法:
insert into 目標表 (欄位1, 欄位2, ...) select 欄位1, 欄位2, ... from **表;
一定要注意: 欄位的順序必須一致
insert
into inserttest1(id,name) select id,nickname from inserttest2;
3.如果您需要只匯入目標表中不存在的記錄,可以使用這種方法:
insert into 目標表
(欄位1, 欄位2, ...)
select 欄位1, 欄位2, ...
from **表
where not exists (select * from 目標表
where 目標表.比較字段 = **表.比較字段);
1>.插入多條記錄:
insert
into inserttest2
(id,name)
select id,name
from inserttest
where
notexists (select * from inserttest2
where inserttest2.id=inserttest.id);
2>.插入一條記錄:
insert
into inserttest
(id, name)
select 100, 'susu'
from test
where
notexists (select * from inserttest
where inserttest.id = 100);
使用 test 作表名,select 語句後面直接跟上要插入的字段的值。
MySQL資料庫中怎麼把表中的整列的字串換格式
資料庫中表的整列資料需要變動時,一條一條的改很麻煩,我們可以一條語句實現整列資料的變動,例如,資料庫表中的date欄位存的是2017 12 12的格式,我們需要變成2017 12 12的格式 需要把date欄位變成2017 12 12的格式 解決辦法 只需要一條sql語句 update indent...
把Excel表中的資料匯入資料庫
需求 在實現競價 時,需要把excel表中的資料週期地有條件地匯入到 位表中。這裡結合資料庫作業實現。步驟 1 生成乙個excel表 工作表名稱 website 包含的列 spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,s...
把Excel表中資料匯入資料庫
這是第二次了,市場部那邊又來要求改資料。他們要改的是資料庫某張表中類似商品 等的資料,需要改的地方又多,我們上次是靠新來的兄弟乙個個給update進去的,這次老大去教了他們update語句,把煩人的皮球踢給他們了。但這樣乙個個更新很明顯不是辦法,我想通過excel直接把資料匯入資料庫應該是可行的吧,...