INSERT
INSERT INTO animals (name, created_at, updated_at)
VALUES ('大黑', now(), now()),
('安娜', '2019-09-11 10:00:00', '2019-09-11 10:00:00');
昨天建立好資料庫 animal ,以及資料表animals,如上SQL 語法插入兩筆動物資料。
提醒
有時候可能你輸入的程式碼有問題,手殘按錯字母,PostgreSQL 會顯示相對應的錯誤,提醒我們錯誤的位置在哪邊,但有時候還是會有點模糊,就要發揮工程師的點滿技能,上網查一下問題的解決方法,可能有人也經歷過一樣的問題,可參考他的解決辦法。
格式化 SQL
減少錯誤的發生 就需要良好的撰寫習慣,工作一兩年來,覺得必須好好培養的部分,SQL 雖然沒有特定的格式就能執行,但建議可以依照下面幾點去撰寫。
- 用大寫表示SQL關鍵字 例如 INSERT INTO
- 避免用駝峰命名,而是使用 小寫與底線組合(lowercaseandunderscores)來定義物件名稱,像是資料表或是欄位名稱
- 縮排子句或程式段落排成2或4個空格,方便閱讀。
第一賞心悅目以外,可以減少漏一個括弧之類的低級錯誤
SELECT
資料庫最主要的功能可以儲存數位資料以外,查詢資料我覺得是門很深的學問,簡單的查詢整張表,查詢包含特定字元的欄位...
資料數量大時,對於這些資料組合分析,變得很有意思,可以預測一個趨勢。
SELECT 查詢內容
SELECT * FROM animals;
最簡單的查詢,回傳整張資料表的資料,可以再由這簡單的SQL語法在衍生更多的變化。
上方程式碼 SELECT 關鍵字後方的字 * 號為萬用字元,萬用字元代表了某一類的資料值他並非特定的事物,使用在上面的程式碼表示 挑出所有欄位值的簡寫,所以他會讀取所有欄位。
查詢一部分資料
SELECT name, updated_at FROM animals;
上面的程式碼只會顯示 name 以及 updated_at 兩個欄位,用逗號去分隔開來 ,可以讓我們專注在於想要看到的資料,雖然使用星號萬用字元十分方便,但實際上通常會限制查詢所得到的欄位範圍
利用 DISTINCT
DISTINCT 作用在於如果欄位內容相同只顯示一次。
如下程式碼如果 animals 的 name 欄位有相同的名稱只會顯次一次。
SELECT DISTINCT name
FROM animals;
這個功能可以用於確認資料正確性,在整理資料很方便。
ORDER BY 排列順序
SELECT name, updated_at
FROM animals
ORDER BY updated_at DESC;
表示查詢所有 animals 資料 並且以updated_at 降序排列