該文章使用 Google 翻譯處理。
該文章由 Hiyoung 編寫,翻譯自 yexca
1.SQL ORDER BY 關鍵字
ORDER BY 關鍵字用於對結果集按照一個列或者多個列進行排序。
ORDER BY 關鍵字默認按照升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用 DESC 關鍵字
SQL ORDER BY 語法
SELECT *column\_name*,*column\_name*
FROM *table\_name*
ORDER BY *column\_name*1,*column\_name*2 ASC|DESC;
–ASC 表示升序,DESC 表示降序
–使用 order by 語句時應放在所有語句的最後使用,並且排序多個列時先排 column\_name1
再 column\_name2…
2.刪除所有數據(delete 和 drop table)
您可以在不刪除表的情況下,刪除表中所有的行。這表示表格結構、屬性、索引將保持不變:DELETE FROM table\_name
;
或
DELETE * FROM table\_name;
**註釋:**在刪除記錄時要格外小心!因為您不能重來!
DROP TABLE 語句
DROP TABLE 語句用於刪除表。DROP TABLE table\_name
**註釋:**與 elete 不同的是 drop table 會刪除表數據和結果,也是不可逆的!
DROP DATABASE 語句
DROP DATABASE 語句用於刪除數據庫。DROP DATABASE database\_name
TRUNCATE TABLE 語句
如果我們僅僅需要刪除表內的數據,但並不刪除表本身,那麼我們該如何做呢?
請使用 TRUNCATE TABLE 語句:TRUNCATE TABLE table\_name
3.SQL join
SQL join 用於把來自兩個或多個表的行結合起來。
下圖展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相關的 7 種用法。
- INNER JOIN:如果表中有至少一個匹配,則返回行(INNER JOIN 與 JOIN 是相同的)
- LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
- RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
- FULL JOIN:只要其中一個表中存在匹配,則返回行
註釋:SQL 中的 join 語句其實對應數據庫理論中的連接概念,left join、right join 和 inner join 對應自然連接,full join 對應笛卡爾積
4.SQL 約束 (Constraints)
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
- NOT NULL – 指示某列不能存儲 NULL 值。
- UNIQUE – 保證某列的每行必須有唯一的值。(一個表可以有多個 UNIQUE 約束但只能有一個 primary key,primary key 自動包含 unique 約束)
- PRIMARY KEY – NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的一個特定的記錄。(主鍵)
- FOREIGN KEY – 保證一個表中的數據匹配另一個表中的值的參照完整性。(外鍵)
- CHECK – 保證列中的值符合指定的條件。
- DEFAULT – 規定沒有給列賦值時的默認值。
5.AUTO INCREMENT 字段
我們通常希望在每次插入新記錄時,自動地創建主鍵字段的值。
我們可以在表中創建一個 auto-increment 字段。
下面的 SQL 語句把 “Persons” 表中的 “ID” 列定義為 auto-increment 主鍵字段:CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
在上面的實例中,IDENTITY 的開始值是 1,每條新記錄遞增 1。
**提示:**要規定 “ID” 列以 10 起始且遞增 5,請把 identity 改為 IDENTITY(10,5)。
要在 “Persons” 表中插入新記錄,我們不必為 “ID” 列規定值(會自動添加一個唯一的值):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
上面的 SQL 語句會在 “Persons” 表中插入一條新記錄。”ID” 列會被賦予一個唯一的值。”FirstName” 列會被設置為 “Lars”,”LastName” 列會被設置為 “Monsen”。