SQlite 筆記

去年工作需求自學了點資料庫的東西
使用的介面是免費的db browser
算是蠻好入手
介面也算友善的軟體工具
以下是先前做過的一些基本的測試指令

test code

以下為測試的資料表格

1
2
3
4
5
6
# data 
SerialNo,Description,Price,Qty
book,30,25,28
pen,10,30,8
notebook,15,20,15
crayon,20,10,20

計算總額,並且新增一個新的欄位,照總額排序

  • 如果只想顯示某幾個欄位,就打出欄位名稱,
    全部都顯示 , 直接打上 * 就可以囉

  • 計算式,自己的習慣是加上括號 AS 新欄位的名稱

  • 如果要遞增,後面加上 ORDER BY “欄位名稱” ASC
    遞減,則是 ORDER BY “欄位名稱” DESC

1
2
3
SELECT SerialNo,Description,(Price*Qty) AS Total 
FROM test_table_A
ORDER BY TOTAL

當滿足某個條件,執行 A ,不滿足就執行 B

1
2
3
4
5
6
7
8
9
10
SELECT Description,Price,Qty, 
CASE WHEN (QTY > 22)
THEN
(Price -2)
ELSE
Price
END AS N_Price

FROM test_table

列出兩張表不同的地方

假設有A、B兩張 TABLE
想要列出兩張表差異的部分
集合的運用也是相當基本而重要的
後續還有表格的JOIN
都是當初搞了好久的東西

1
2
3
4
5
6
7
SELECT * FROM (SELCT * FROM A 
EXCEPT
SELECT * FROM B)
UNION ALL
SELECT * FROM (SELECT * FROM B
EXCEPT
SELECT * FROM A)

前面的部分取出(A-B),
後面的部分取出(B-A)
最後把兩段結果,取聯集

取兩張表的交集

1
2
3
SELECT * FROM A
INTERSECT
SELECT * FROM B

takeout

一開始學的時候,都很想回去excel
心想說這東西不是excel 就可以做了嗎?
常常花了很多時間找指令
在資料量大的時候
用SQLite其實讀取和抓資料快很多啊
後續還可以結合Python 的 pandas 還有Regular expression
會更靈活

自己目前在這個領域還是很粗淺
多學多看看囉
其他的就後續慢慢補上

Ref