跳至主要内容

簡單卻強大的 SQL 陳述句

Database Design

Database Design Process
設計資料庫前先思考以下三點:

  • What kind of thing are we storing?
  • What properties does this thing have?
  • What type of data does each of those properties contain?

Creating Tables

線上 PostgreSQL 模擬工具
pg-sql.com

建立資料表

CREATE TABLE cities (
name VARCHAR(50),
country VARCHAR(50),
population INTEGER,
area INTEGER
);

Analyzing CREATE TABLE

上個範例中,以大寫輸入的部分是 SQL Keyword,以小寫輸入的部分是 Identifier(識別子)。
VARCHAR(n) 表示該欄位用以儲存 50 個字元以內的字串。
INTEGER 表示該欄位用以儲存整數。INTEGER 的儲存範圍約為正負二十億之間。

-- 插入單筆記錄
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

-- 插入多筆記錄
INSERT INTO table_name (column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...), -- 第一筆記錄
(value1, value2, value3, ...), -- 第二筆記錄
(value1, value2, value3, ...); -- 最後一筆記錄以分號結尾

Calculated Columns

讀取資料時可讓數字型別的欄位做數學運算

SELECT column1 + column2 AS column_alia FROM table_name;

String Operators and Functions

連接不同欄位的值

-- 使用 ||
SELECT column1 || 'string' || column2... AS column_alia FROM table_name;
-- 使用 CONCAT 函式
SELECT CONCAT(column1, 'string', column2) AS column_alia FROM table_name;

轉換大小寫

SELECT UPPER(column_name) FROM table_name;
SELECT LOWER(column_name) FROM table_name;

取得字串長度

SELECT LENGTH(column_name) FROM table_name;

函式內可調用其他函式

SELECT LENGTH(CONCAT(column1, column2,...)) FROM table_name;