# SQL 語法查詢入門 ## 備註 SQL ➡️ 資料庫的查詢語言,算一種程式語言 ANSI SQL ➡️ 標準版 SQL pgAdmin - PostgreSQL Tools ➡️ 本書用 SQL ## 基本語法 ### CREATE TABLE ``` CREATE TABLE teachers ( id bigserial, first_name varchar(25), last_name varchar(50), school varchar(50), hire_date date, salary numeric ); ``` ### INSERT ``` INSERT INTO teachers (first_name, last_name, school, hire_date, salary) VALUES ('Janet', 'Smith', 'F.D. Roosevelt HS', '2011-10-30', 36200), ('Lee', 'Reynolds', 'F.D. Roosevelt HS', '1993-05-22', 65000); ``` ### SELECT #### 查詢表的所有欄位 ``` SELECT * FROM teachers; ``` #### 查詢表的部分欄位 ``` SELECT first_name, last_name, salary FROM teachers; ``` ### ORDER BY #### 排序單一欄位 ``` SELECT first_name, last_name, salary FROM teachers ORDER BY salary DESC; ``` > DESC: 遞減(大到小)排序 > ASC: 遞增(小到大)排序 #### 排序多個欄位 ``` SELECT last_name, school, hire_rate FROM teachers; ORDER BY school ASC hire_rate DESC; ``` ### WHERE #### 篩選資料 ##### eg. 撈取【特定學校名稱】的資料 ``` SELECT last_name, school, hire_date FROM teachers WHERE school = "Myers Middle School"; ``` ##### eg. 撈取【日期在指定日期之前】的資料 ``` SELECT first_name, last_name, hire_date FROM teachers WHERE school hire_date < '2000-01-01'; ``` ### LIKE #### 模糊搜尋 * 百分比符號(%):代表一或多個萬用字元 * 底線符號(_):代表一個萬用字元 ##### example LIKE 'b%' LIKE '%ak%' LIKE '_aker' LIKE 'ba_er' ### 全部兜起來 ``` SELECT * FROM teachers WHERE hire_date > '2024-01-01' AND salary > '30000' ORDER BY salary; ``` ## 匯入與匯出資料 ### COPY ➡️ 處理 CSV 檔:PostgreSQL 專有的指令 ### 匯入資料 ``` COPY table_name FROM 'C:\directoey\target_file.csv' WITH (FORMAT CSV, HEADER) ``` > HEADER ➡️ 把標題列排除,不予匯入 ### 匯出資料 ``` COPY us_counties_2010 TO 'C:\directoey\target_file.csv' WITH (FORMAT CSV, DELIMITER=',') ``` ### 利用 pgAdmin 做檔案處理 1. 找到 pgAdmin 內建的匯入匯出精靈 2. 左半窗框為【物件瀏覽框】 3. 點選【Databases > analysis > Schemas > public > Tables】