# 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】