1.TOP 子句
TOP 子句用於規定要返回的記錄的數目。
對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。
SELECT TOP number|percent column_name(s)
FROM table_name
例如:SELECT TOP 2 * FROM Persons
2.LIKE 操作符
LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
例:SELECT * FROM PersonsWHERE City NOT LIKE '%lon%'
SELECT * FROM PersonsWHERE City NOT LIKE '%lon'
SELECT * FROM PersonsWHERE City NOT LIKE 'lon%'
3.SQL 通配符
在搜索數據庫中的數據時,SQL 通配符可以替代一個或多個字符。
SQL 通配符必須與 LIKE 運算符一起使用。
通配符 | 描述 |
---|---|
% | 替代一個或多個字符 |
_ | 僅替代一個字符 |
[charlist] | 字符列中的任何單一字符 |
[^charlist] 或者 [!charlist] |
不在字符列中的任何單一字符 |
例:SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'
SELECT * FROM PersonsWHERE City LIKE '[ALN]%'
4.IN 操作符
IN 操作符允許我們在 WHERE 子句中規定多個值。
SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)
例:SELECT * FROM PersonsWHERE LastName IN ('Adams','Carter')
5.BETWEEN 操作符
操作符 BETWEEN ... AND 會選取介於兩個值之間的數據範圍。這些值可以是數值、文本或者日期。
SQL BETWEEN 語法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
例:SELECT * FROM PersonsWHERE LastNameBETWEEN 'Adams' AND 'Carter'
6.Alias
通過使用 SQL,可以爲列名稱和表名稱指定別名(Alias)。
表的 SQL Alias 語法
SELECT column_name(s)
FROM table_name
AS alias_name
列的 SQL Alias 語法
SELECT column_name AS alias_name
FROM table_name
例 :SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
7.Join 和 Key
有時爲了得到完整的結果,我們需要從兩個或更多的表中獲取結果。我們就需要執行 join。
數據庫中的表可通過鍵將彼此聯繫起來。主鍵(Primary Key)是一個列,在這個列中的每一行的值都是唯一的。在表中,每個主鍵的值都是唯一的。這樣做的目的是在不重複每個表中的所有數據的情況下,把表間的數據交叉捆綁在一起。
例子:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P
或者 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_PORDER BY Persons.LastName
8.SQL INNER JOIN 關鍵字
在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。
INNER JOIN 關鍵字語法
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
註釋:INNER JOIN 與 JOIN 是相同的。
9.SQL LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那裏返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
LEFT JOIN 關鍵字語法
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
10.SQL RIGHT JOIN 關鍵字
RIGHT JOIN 關鍵字會右表 (table_name2) 那裏返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。
RIGHT JOIN 關鍵字語法
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
註釋:在某些數據庫中, RIGHT JOIN 稱爲 RIGHT OUTER JOIN。
11.SQL FULL JOIN 關鍵字
只要其中某個表存在匹配,FULL JOIN 關鍵字就會返回行。
FULL JOIN 關鍵字語法
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
註釋:在某些數據庫中, FULL JOIN 稱爲 FULL OUTER JOIN。
12. SQL UNION 操作符
UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
註釋:默認地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。
SQL UNION ALL 語法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。
13.SELECT INTO 語句
SELECT INTO 語句從一個表中選取數據,然後把數據插入另一個表中。
SELECT INTO 語句常用於創建表的備份復件或者用於對記錄進行存檔。
SQL SELECT INTO 語法
您可以把所有的列插入新表:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
或者只把希望的列插入新表:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
14.CREATE DATABASE 語句
CREATE DATABASE 用於創建數據庫。
SQL CREATE DATABASE 語法
CREATE DATABASE database_name
15.CREATE TABLE 語句
CREATE TABLE 語句用於創建數據庫中的表。
SQL CREATE TABLE 語法
CREATE TABLE 表名稱
(
列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型,
....
)
16.SQL 約束
約束用於限制加入表的數據的類型。
可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之後也可以(通過 ALTER TABLE 語句)。
我們將主要探討以下幾種約束:
-
NOT NULL
-
UNIQUE
-
PRIMARY KEY
-
FOREIGN KEY
-
CHECK
-
DEFAULT
17.SQL NOT NULL 約束
NOT NULL 約束強制列不接受 NULL 值。
NOT NULL 約束強制字段始終包含值。這意味着,如果不向字段添加值,就無法插入新記錄或者更新記錄。
下面的 SQL 語句強制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
18.SQL UNIQUE 約束
UNIQUE 約束唯一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均爲列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
例:CREATE TABLE Persons
(Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P))
19.SQL PRIMARY KEY 約束
PRIMARY KEY 約束唯一標識數據庫表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含 NULL 值。
每個表都應該有一個主鍵,並且每個表只能有一個主鍵。
CREATE TABLE Persons
( Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)