SQL 查詢語句範例
本文件依「建、讀、更、刪」排序(CRUD)
Create
-- 新增資料表
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
column3 data_type
);
-- 資料表插入新記錄
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Read
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Update
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Delete
-- 刪除所有記錄
DELETE FROM table_name; -- 注意!這會無條件刪除資料表內所有記錄,一定要小心使用!
DELETE FROM table_name WHERE condition;
先讀再建
-- 使用 subquery(比 join 易讀但效能較差)
INSERT INTO table_1 (column1, referenced_colum, column2, ...)
VALUES (value1,
(SELECT column_A FROM table_2 WHERE column_for_reference = referenced_value),
value2, ...);
-- 使用 inner join(效能佳,但語法不如 subquery 容易上手)
INSERT INTO table_1 (column1, referenced_colum, column2, ...)
SELECT value1, joined_table.column, value2, ...
FROM table_2 AS joined_table
WHERE joined_table.column = value;
先讀再刪
-- 僅可透過 subquery 執行
DELETE FROM table_1
WHERE column_1 IN (
SELECT t.column
FROM table_2 AS t
WHERE t.column condition
);
Isolation Level
-- 在 PostgreSQL 檢視隔離層級
show transaction isolation level;
-- PostgreSQL 在單一交易中設定隔離層級
BEGIN;
set transaction isolation level read uncommitted; -- 設為 read uncommitted
時間相關指令
-- 顯示、檢視、查詢現在時間
SELECT now();
-- 顯示、檢視、查詢時區
SHOW VARIABLES LIKE '%time_zone%';
-- 設定時區(以設定為 UTC+8 台灣時區為例)
SET time_zone = "+8:00";
友站連結