Rick's DevNotes
筆記關於我作品集
筆記類別
  • 全部
  • DockerDocker
  • NetworkNetwork
  • RxJSRxJS
  • NginxNginx
  • TypeScriptTypeScript
  • Data_Structure_And_AlgorithmData Structure And Algorithm
  • JavaScriptJavaScript
  • PostgreSQLPostgreSQL
  • ReactReact
  • GitGit

© 2026 Rick's DevNotes. All rights reserved.

# SQL# Type

建立時間:2024/07/31

PostgreSQL 筆記 - 簡介以及基本語法與範例

身為開發者,最近在學習 SQL。為了方便之後查找,也希望能透過整理的過程加深理解,所以特地寫了一些學習筆記。

關於 SQL

SQL 基本上就是我們跟資料庫溝通的「共同語言」。像 Oracle、MS SQL Server、MySQL 和 PostgreSQL 這些常見的資料庫系統,都是靠 SQL 來操作的。

如果以 PostgreSQL 為例,常見的挑戰大概有幾個。首先是怎麼寫出高效能的查詢,讓我們能夠快速抓到需要的資料。再來是資料庫結構(Schema)的設計,這會影響到後續的維護和擴充。除此之外,我們也得知道什麼時候該用進階功能,像索引、視圖或存儲過程,不然可能會讓效能拖慢。等到資料庫真正上線到生產環境後,還會面臨效能調校、安全性設定,以及備份還原等管理工作。

至於資料庫設計的流程,其實可以很直覺地看成三個步驟:先釐清要存哪些「東西」(實體),接著決定這些東西應該有哪些「特徵」(屬性),最後再幫每個屬性選一個合適的資料型態,確保資料能正確又有效率地被處理。

基本範例

建立資料表

  1. CREATE TABLE:關鍵字(Keywords),告訴資料庫我們想要執行的操作。通常以大寫字母書寫。
  2. cities:識別符(Identifier),告訴資料庫我們要操作的對象。通常以小寫字母書寫。
  3. VARCHAR(50):可變長度字元。用於儲存文字!若輸入超過 50 個字元的字串,系統會回傳錯誤。
  4. INTEGER:不含小數點的整數(範圍從 -2,147,483,647 到 +2,147,483,647)。

插入資料到資料表

插入多筆資料

使用 SELECT 查詢資料

取得資料表中的所有欄位

可以選擇特定欄位進行查詢:

  1. 第一個查詢從 cities 表中僅擷取 area 和 name 欄位
  2. 第二個查詢從 cities 表中僅擷取 area 和 population 欄位
  3. 第三個查詢展示了可以多次選擇同一欄位(在這個例子中,name 欄位被選擇了三次)

計算欄位

可以在查詢中進行計算並為計算結果命名:

這個查詢計算了每個城市的人口密度(人口除以面積),並將結果欄位命名為 density。

字串運算子與函數

在 PostgreSQL 中,我們可以使用多種方法處理和操作字串資料:

字串連接

  1. || 運算子:連接兩個或多個字串

輸出結果:

location
Tokyo, Japan
Delhi, India
Shanghai, China
Sao Paulo, Brazil
  1. CONCAT() 函數:連接多個字串,功能與 || 相似

輸出結果:

location
Tokyo, Japan
Delhi, India
Shanghai, China
Sao Paulo, Brazil

字串處理函數

PostgreSQL 提供多種實用的字串處理函數:

  1. LOWER(string) - 將字串轉換為小寫
  2. LENGTH(string) - 計算字串的字元數
  3. UPPER(string) - 將字串轉換為大寫

這些函數可以組合使用:

輸出結果:

locationname_length
TOKYO, JAPAN5
DELHI, INDIA5
SHANGHAI, CHINA8
SAO PAULO, BRAZIL9

其他常用字串函數

  1. TRIM(string) - 移除字串前後的空白
  2. SUBSTRING(string, start, length) - 從指定位置擷取子字串
  3. REPLACE(string, from, to) - 替換字串中的指定文字

範例:

參考資料

  • SQL and PostgreSQL: The Complete Developer's Guide