如何用Excel快速生成SQL語句,用過的人都說好

  • 2019 年 10 月 6 日
  • 筆記

導讀:Excel的公式自動生成想必大家都知道了,就是寫好一個公式後直接往下拖,就可以將後面數據的公式自動生成。

今天我們就用這個功能來快速生成SQL語句。

作者:丶平凡世界

來源:SQL資料庫開發(ID:sql_road)

01 導入Excel數據

Excel的數據有多種方式,這裡我們演示用SQL程式碼導入Excel中的數據。

例如我們想把左邊Excel中的數據插入到資料庫中,如下圖:

02 寫好模板語句

我們可以先寫一條插入語句,如下:

INSERT INTO Person VALUES(1,'呂布',25,'男','13500000001')

然後複製這條SQL語句打開Excel,選中表格後的一個單元格,在上方函數位置粘貼剛才的SQL語句並做修改。

="INSERT INTO Person VALUES("&A2&",'"&B2&"',"&C2&",'"&D2&"','"&E2&"')"

注意前面有個= 然後整個SQL用 ""包圍住。

03 生成SQL語句

確認後就可以看到在單元格中會自動生成一條SQL語句。選中單元格下拉,會發現所有的行後面都會生成一條SQL語句。

04 執行SQL

然後我們直接複製這些SQL語句到資料庫的查詢窗口執行。

執行完後我們查詢Person表裡的數據。

這樣就完成了Excel快速生成SQL語句的功能。

05 擴展SQL示例

以上只是一個簡單的示例,運用這種方法我們還可以自動生成很多其他的SQL腳本,比如要查詢資料庫中所有表中的記錄數。

當然我們可以使用循環遍歷系統中的所有表然後再用循環語句執行指定的語句,如下:

--使用循環語句查詢所有表的數量  DECLARE  TNAME VARCHAR2(200);  BEGIN  --獲取系統表中的所有表名    FOR X IN (SELECT TABLE_NAME FROM user_tables where table_name like 'HR_TEMPTABLE%')  --開始循環    LOOP    --循環主體部分        TNAME :=X.TABLE_NAME;    --賦值      EXECUTE IMMEDIATE 'SELECT '''X.TABLE_NAME'''||',COUNT(1) Num FROM '||X.TABLE_NAME;  --執行循環主體    END LOOP;    EXCEPTION      WHEN OTHERS THEN        DBMS_OUTPUT.put_line(TNAME);        RAISE;  END;  END;

06 套用Excel生成SQL方法

但是如果是新手同學,不會寫上面的程式碼,而此時又要我們做這樣的事怎麼辦呢?就可以使用上面的方法了。

可以先從系統表中查詢出所有的表名:

SELECT TABLE_NAME FROM user_tables

將表名複製粘貼到Excel中,然後開始寫查詢語句,如下圖:

然後將這些程式碼複製粘貼到查詢窗口即可查詢出所有表中的記錄數了。

使用此方法還可以應用在很多類似的場景,他們的共同點就是程式碼結構一樣,但是程式碼中的參數不一樣,對於想快速寫出相應的SQL程式碼是非常有效的。

有話要說?

Q: Excel還有哪些神應用?