mysql經常使用的函數歸類

咱們常常須要將一個表的數據插入到另一個表,有時還須要指定導入字段,設置只須要導入目標表中不存在的記錄,雖然這些均可以在程序中拆分紅簡單sql來實現,可是用一個sql的話,會節省大量代碼。下面我以mysql數據庫爲例分狀況一一說明:mysql

1.若是2張表的字段一致,而且但願插入所有數據,能夠用這種方法:
INSERT INTO 目標表 SELECT * FROM 來源表;sql

insert into insertTest select * from insertTest2;

2.若是隻但願導入指定字段,能夠用這種方法:數據庫

INSERT INTO 目標表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 來源表;(這裏的話字段必須保持一致)
insert into insertTest2(id) select id from insertTest2;
3.若是您須要只導入目標表中不存在的記錄,能夠使用這種方法:.net

複製代碼
INSERT INTO 目標表
(字段1, 字段2, ...)
SELECT 字段1, 字段2, ...
FROM 來源表
WHERE not exists (select * from 目標表
where 目標表.比較字段 = 來源表.比較字段);
複製代碼
1>.插入多條記錄:code

複製代碼
insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);
複製代碼
2>.插入一條記錄:blog

複製代碼
insert into insertTest
(id, name)
SELECT 100, 'liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);
複製代碼get

SELECTcli

t.NAME,
(
    CASE t.sex
    WHEN 1 THEN
        '男'
    WHEN 2 THEN
        '女'
    ELSE
        '未知'
    END
) 性別

FROMselect


做者:rocling
來源:CSDN
原文:https://blog.csdn.net/rocling...
版權聲明:本文爲博主原創文章,轉載請附上博文連接!程序

相關文章
相關標籤/搜索