使用 SQL [charlist] 通配符
MySQL 中使用 REGEXP 或 NOT REGEXP 運算符 (或 RLIKE 和 NOT RLIKE) 來操作正規表達式。
下面的 SQL 語句選取 name 以 "G"、"F" 或 "s" 開始的所有網站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
SQL SELECT DISTINCT 語句
在表中,一個列可能會包含多個重複值,有時您也許希望僅僅列出不同(distinct)的值。
DISTINCT 關鍵詞用于傳回唯一不同的值。
SELECT DISTINCT country FROM Websites;
SQL BETWEEN 操作符
BETWEEN 操作符選取介于兩個值之間的資料範圍内的值。這些值可以是數值、文本或者日期。
SQL BETWEEN 文法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
WHERE name BETWEEN 'A' AND 'H';
SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';
列的 SQL 别名文法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名文法
FROM table_name AS alias_name;
SELECT w.name, w.url, a.count, a.date
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="菜鳥教程";
"Websites" 表中的 "id" 列指向 "access_log" 表中的字段 "site_id"。上面這兩個表是通過 "site_id" 列聯系起來的。
然後,如果我們運作下面的 SQL 語句(包含 INNER JOIN):
執行個體
SELECT Websites.id, Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id;
INNER JOIN 與 JOIN 是相同的。
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
或:
JOIN table2
LEFT JOIN table2
LEFT OUTER JOIN table2
SQL FULL OUTER JOIN 關鍵字
FULL OUTER JOIN 關鍵字隻要左表(table1)和右表(table2)其中一個表中存在比對,則傳回行.
FULL OUTER JOIN 關鍵字結合了 LEFT JOIN 和 RIGHT JOIN 的結果。
SQL FULL OUTER JOIN 文法
FULL OUTER JOIN table2
MySQL中不支援 FULL OUTER JOIN
SQL UNIQUE 限制
UNIQUE 限制唯一辨別資料庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 限制均為列或列集合提供了唯一性的保證。
PRIMARY KEY 限制擁有自動定義的 UNIQUE 限制。
請注意,每個表可以有多個 UNIQUE 限制,但是每個表隻能有一個 PRIMARY KEY 限制。
CREATE TABLE 時的 SQL UNIQUE 限制
下面的 SQL 在 "Persons" 表建立時在 "P_Id" 列上建立 UNIQUE 限制:
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
ALTER TABLE 時的 SQL UNIQUE 限制
當表已被建立時,如需在 "P_Id" 列建立 UNIQUE 限制,請使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
如需命名 UNIQUE 限制,并定義多個列的 UNIQUE 限制,請使用下面的 SQL 文法:
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
撤銷 UNIQUE 限制
如需撤銷 UNIQUE 限制,請使用下面的 SQL:
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
DROP CONSTRAINT uc_PersonID
如需命名 PRIMARY KEY 限制,并定義多個列的 PRIMARY KEY 限制,請使用下面的 SQL 文法:
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
ALTER TABLE 時的 SQL PRIMARY KEY 限制
當表已被建立時,如需在 "P_Id" 列建立 PRIMARY KEY 限制,請使用下面的 SQL:
ADD PRIMARY KEY (P_Id)
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
注釋:如果您使用 ALTER TABLE 語句添加主鍵,必須把主鍵列聲明為不包含 NULL 值(在表首次建立時)。
DROP PRIMARY KEY
DROP CONSTRAINT pk_PersonID
CREATE TABLE 時的 SQL FOREIGN KEY 限制
下面的 SQL 在 "Orders" 表建立時在 "P_Id" 列上建立 FOREIGN KEY 限制:
CREATE TABLE Orders
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
如需命名 FOREIGN KEY 限制,并定義多個列的 FOREIGN KEY 限制,請使用下面的 SQL 文法:
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
ALTER TABLE 時的 SQL FOREIGN KEY 限制
當 "Orders" 表已被建立時,如需在 "P_Id" 列建立 FOREIGN KEY 限制,請使用下面的 SQL:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
撤銷 FOREIGN KEY 限制
如需撤銷 FOREIGN KEY 限制,請使用下面的 SQL:
DROP FOREIGN KEY fk_PerOrders
DROP CONSTRAINT fk_PerOrders
本文轉自 matengbing 51CTO部落格,原文連結:http://blog.51cto.com/matengbing/1875769