1.SQL select 語句
SELECT 語句用於從表中選取數據。
結果被存儲在一個結果表中(稱為結果集)。
SELECT 列名稱 FROM 表名稱
實例:
SELECT username,password FROM user
或者:
SELECT * FROM user
2.SQL SELECT DISTINCT 語句
在表中,可能會包含重復值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。
關鍵詞 DISTINCT 用於返回唯一不同的值。
SELECT DISTINCT 列名稱 FROM 表名稱
實例:從order表中查詢所有的Company,僅選取唯一不同的值
SELECT DISTINCT Company FROM Orders
3.SQL WHERE 條件語句
WHERE 語句用於規定選擇的標准。
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
where運算符條件:
操作符 | 描述 |
---|---|
= | 等於 |
<> | 不等於 |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
BETWEEN | 在某個范圍內 |
LIKE | 搜索某種模式 |
例:
SELECT * FROM Persons WHERE id=1
4.SQL AND & OR 運算符
AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。
AND表示:如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。
OR表示:如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。
AND實例:
SELECT * FROM Persons WHERE FirstName='T' AND LastName='C'
OR實例:
SELECT * FROM Persons WHERE firstname='T' OR lastname='C'
AND和OR聯合使用
SELECT * FROM Persons WHERE (FirstName='T' OR FirstName='W') AND LastName='C'
5.SQL ORDER BY 語句
ORDER BY 語句用於對結果集進行排序。
ORDER BY 語句用於根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
例:
SELECT Company, OrderNumber FROM Orders ORDER BY id
例:
SELECT Company, OrderNumber FROM Orders ORDER BY id DESC
6.SQL INSERT INTO 語句
INSERT INTO 語句用於向表格中插入新的行。
語法:
INSERT INTO 表名稱 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
7.SQL UPDATE 語句
Update 語句用於修改表中的數據。
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
例:
UPDATE Person SET FirstName = 'F' WHERE LastName = 'W'
8.SQL DELETE 語句
DELETE 語句用於刪除表中的行。
語法:
DELETE FROM 表名稱 WHERE 列名稱 = 值
例:
DELETE FROM Person WHERE LastName = 'W'
9.SQL TOP 子句
TOP 子句用於規定要返回的記錄的數目。
對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。
例:
SELECT TOP number|percent column_name(s) FROM table_name
例:從persons表中,查詢前兩條數據
SELECT TOP 2 * FROM Persons
10.SQL LIKE 操作符
LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。
LIKE 操作符語法:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
例:
SELECT * FROM Persons WHERE City LIKE '%lon%'
例:NOT LIKE
SELECT * FROM Persons WHERE City NOT LIKE '%lon%'
11.SQL 通配符
在搜索數據庫中的數據時,SQL 通配符可以替代一個或多個字符。
SQL 通配符必須與 LIKE 運算符一起使用。
通配符 | 描述 |
---|---|
% | 替代一個或多個字符 |
_ | 僅替代一個字符 |
[charlist] | 字符列中的任何單一字符 |
[^charlist] 或者 [!charlist] |
不在字符列中的任何單一字符 |
例:使用 % 通配符
SELECT * FROM Persons WHERE City LIKE '%lond%'
例:使用 _ 通配符: 從表中選取名字的第一個字符之后是 "eorge" 的人:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'
例:使用 [charlist] 通配符: 從表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
例:從表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
12.SQL IN 操作符
IN 操作符允許我們在 WHERE 子句中規定多個值。
IN語法:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
實例:從表中選取姓氏為 Adams 和 Carter 的人:
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')
13.SQL BETWEEN 操作符
操作符 BETWEEN ... AND 會選取介於兩個值之間的數據范圍。這些值可以是數值、文本或者日期。
語法:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
實例: BETWEEN ... AND
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
實例:NOT BETWEEN ... AND
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'
14.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.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John'
15.SQL JOIN
SQL join 用於根據兩個或多個表中的列之間的關系,從這些表中查詢數據。
用法:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName
16.SQL 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 是相同的。
17.SQL LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
語法:
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
18.SQL RIGHT JOIN 關鍵字
RIGHT JOIN 關鍵字會右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。
語法:
SELECT 字段 FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
19.SQL FULL JOIN 關鍵字
只要其中某個表存在匹配,FULL JOIN 關鍵字就會返回行。
語法:
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
20.SQL UNION 和 UNION ALL 操作符
SQL UNION 操作符:UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。(UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。)
語法:(默認地,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。)
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
UNION ALL 語法:(UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名)
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
21.SQL SELECT INTO 語句
SELECT INTO 語句從一個表中選取數據,然后把數據插入另一個表中。
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
SELECT INTO 實例 - 制作備份復件:
SELECT *INTO Persons_backup FROM Persons
IN 子句可用於向另一個數據庫中拷貝表:
SELECT *INTO Persons IN 'Backup.mdb' FROM Persons
22.SQL CREATE DATABASE 語句
CREATE DATABASE 用於創建數據庫。
語法:
CREATE DATABASE database_name
23.SQL CREATE TABLE 語句
CREATE TABLE 語句用於創建數據庫中的表。
語法:
CREATE TABLE 表名稱 ( 列名稱1 數據類型, 列名稱2 數據類型, 列名稱3 數據類型, .... )
24.SQL 約束 (Constraints)
約束用於限制加入表的數據的類型。
可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之后也可以(通過 ALTER TABLE 語句)。
24.1 NOT NULL 約束
NOT NULL 約束強制列不接受 NULL 值。
NOT NULL 約束強制字段始終包含值。這意味着,如果不向字段添加值,就無法插入新記錄或者更新記錄。
實例:強制 "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) )
24.2 UNIQUE 約束
UNIQUE 約束唯一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
實例:創建表時在 "Id_P" 列創建 UNIQUE 約束:
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) )
24.3 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) )
一般都是對id這種字段添加PRIMARY KEY主鍵索引,可以再查詢時加快查詢速度;