INSERT INTO 語法 (SQL INSERT INTO Syntax)
1 | INSERT INTO table_name (column1, column2, column3...) |
1 | INSERT INTO customers (C_Id, Name, City, Address, Phone) |
1 | INSERT INTO table_name (column1, column2, column3...) |
1 | INSERT INTO customers (C_Id, Name, City, Address, Phone) |
相對於 UNION 像是 OR (聯集),INTERSECT 運算子則像是 AND (交集),如果紀錄存在於第一個查詢結果集內同時亦存在於第二個查詢結果集內時,才會被取出。
1 | SELECT column_name(s) FROM table_name1 |
查出在台灣地區及中國大陸地區皆有銷售的產品類別的資料
1 | SELECT P_Name FROM `products_taiwan` |
*MySQL 目前還不支援 INTERSECT。
LEFT JOIN 可以用來建立左外部連接,查詢的 SQL 敘述句 LEFT JOIN 左側資料表 (table_name1) 的所有記錄都會加入到查詢結果中,即使右側資料表 (table_name2) 中的連接欄位沒有符合的值也一樣。
1 | SELECT table_column1, table_column2... |
Example
1 | SELECT customers.C_Id,customers.Name,customers.Address,customers.Phone,customers.Salary,orders.Order_No,orders.Product,orders.Product,orders.Quantity |
LEFT JOIN 會返回左側資料表中所有資料列,就算沒有符合連接條件,而右側資料表中如果沒有匹配的資料值就會顯示為 NULL。
LIKE 運算子搭配 WHERE 子句可以依一特定模式 (Pattern) 為條件來搜尋資料表中的特定資料。
1 | SELECT table_column1, table_column2, table_column3... |
例如,找住在台北市的客戶:
1 | SELECT * FROM `customers` WHERE City LIKE '台北%'; |
相反的,NOT LIKE 就是不包含在條件裡的的資料我通通要了,如上例多加上 NOT:
1 | SELECT * FROM `customers` WHERE City NOT LIKE '台北%'; |
當 MINUS 運算子結合了兩個 SELECT 查詢語句,它會將 (第一個查詢結果集) 減去 (同時存在於第一個查詢結果集與第二個查詢結果集的資料紀錄),然後返回其結果。
1 | SELECT column_name(s) FROM table_name1 |
1 | SELECT P_Name FROM `products_taiwan` MINUS SELECT P_Name FROM `products_china`; |
**MySQL 目前還不支援 MINUS。
我們可以將 SELECT 取得的資料集依某欄位來作排序,而排序分別可以由小至大 (ascending; 預設),或由大至小 (descending)。
ORDER BY 語法 (SQL ORDER BY Syntax)
1 | SELECT table_column1, table_column2... |
Example 舉例
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone` FROM `customers` ORDER BY `Name`; |
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone` FROM `customers` ORDER BY `City`; |
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone` FROM `customers` ORDER BY `Address`; |
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone` FROM `customers` ORDER BY `Address`; |
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone` FROM `customers` ORDER BY `Phone`; |
ORDER BY 查詢用法 (Example)
從下面的 employees 資料表中取出所有員工的資料並依職稱來作排序 (即字母順序):
1 | SELECT * FROM `customers` ORDER BY `City`; |
若語句中沒加上 ASC 或 DESC 關鍵字,預設默認為 ASC。
RIGHT JOIN 可以用來建立左外部連接,查詢的 SQL 敘述句 RIGHT JOIN 左側資料表 (table_name1) 的所有記錄都會加入到查詢結果中,即使右側資料表 (table_name2) 中的連接欄位沒有符合的值也一樣。
1 | SELECT table_column1, table_column2... |
Example
1 | SELECT customers.C_Id,customers.Name,customers.Address,customers.Phone,customers.Salary,orders.Order_No,orders.Product,orders.Product,orders.Quantity |
LEFT JOIN 會返回左側資料表中所有資料列,就算沒有符合連接條件,而右側資料表中如果沒有匹配的資料值就會顯示為 NULL。
取得整張資料表裡所有的資料我們可以在 SELECT 語句裡用 * 這個特殊符號
1 | SELECT * FROM `customers`; |
### SELECT 語法 (SQL SELECT Syntax)
1 | SELECT table_column1, table_column2, table_column3... |
1 | SELECT `C_Id`, `Name`, `City`, `Address`, `Phone`, `Salary` FROM `customers` |
不同於 IN 運算子是依不連續的值作為 WHERE 查詢子句的篩選條件,BETWEEN 則是用來限定依某範圍內連續的值作為條件來搜尋資料表中的特定資料。
作為查詢範圍條件的欄位型態可為數值、日期或字串,其中字串是依照字母排列順序來界定範圍。
1 | SELECT table_column1, table_column2, table_column3... |
從下面的 customers 資料表中查詢Salary介於 10000~30000 的顧客資料
1 | SELECT * FROM `customers` WHERE `Salary` BETWEEN 10000 AND 30000; |