插入資料、SELECT資料

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 降序排列


發佈留言