SQL筆記1:基礎教程
SQL語法
SQL 對大小寫不敏感。
SQL 語句後面的分號
某些資料庫系統要求在每條 SQL 命令的末端使用分號。在我們的教程中不使用分號
SQL DML 和 DDL
可以把 SQL 分為兩個部分:資料操作語言 (DML) 和 資料定義語言 (DDL)。
查詢和更新指令構成了 SQL 的 DML 部分:
- SELECT - 從資料庫表中獲取資料
- UPDATE - 更新資料庫表中的資料
- DELETE - 從資料庫表中刪除資料
- INSERT INTO - 向資料庫表中插入資料
SQL 的資料定義語言 (DDL) 部分使我們有能力建立或刪除表格。我們也可以定義索引(鍵),規定表之間的連結,以及施加表間的約束。
SQL 中最重要的 DDL 語句:
- CREATE DATABASE - 建立新資料庫
- ALTER DATABASE - 修改資料庫
- CREATE TABLE - 建立新表
- ALTER TABLE - 變更(改變)資料庫表
- DROP TABLE - 刪除表
- CREATE INDEX - 建立索引(搜尋鍵)
- DROP INDEX - 刪除索引
SQL SELECT 語句
SELECT 列名稱 FROM 表名稱
SELECT * FROM 表名稱
Eg;
SELECT LastName,FirstName FROM Persons
注:星號(*)是選取所有列的快捷方式。
SQL SELECT DISTINCT 語句
關鍵詞 DISTINCT 用於返回唯一不同的值。
SELECT DISTINCT 列名稱 FROM 表名稱
SQL WHERE 子句
如需有條件地從表中選取資料,可將 WHERE 子句新增到 SELECT 語句。
SELECT 列名稱 FROM 表名稱 WHERE 列 運算子 值
下面的運算子可在 WHERE 子句中使用:
操作符 |
描述 |
= |
等於 |
<> |
不等於 |
> |
大於 |
< |
小於 |
>= |
大於等於 |
<= |
小於等於 |
BETWEEN |
在某個範圍內 |
LIKE |
搜尋某種模式 |
註釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。
Eg:
SELECT * FROM Persons WHERE City='Beijing'
SQL AND & OR 運算子
AND 運算子例項
使用 AND 來顯示所有姓為 "Carter" 並且名為 "Thomas" 的人:
SELECT * FROM Persons WHERE FirstName='Thomas' AND
LastName='Carter'
OR 運算子例項
使用 OR 來顯示所有姓為 "Carter" 或者名為 "Thomas" 的人:
SELECT * FROM Persons WHERE firstname='Thomas' OR
lastname='Carter'
SQL ORDER BY 子句
例項 1
以字母順序顯示公司名稱:
SELECT Company,OrderNumber FROM Orders ORDER BY Company
例項 4
以逆字母順序顯示公司名稱,並以數字順序顯示順序號:
SELECT Company,OrderNumber FROM Orders ORDER BY Company DESC,OrderNumber ASC
SQL INSERT INTO 語句
語法
INSERT INTO 表名稱 VALUES (值1,值2,....)
我們也可以指定所要插入資料的列:
INSERT INTO table_name (列1,列2,...) VALUES (值1,....)
"Persons" 表:
LastName |
FirstName |
Address |
City |
Carter |
Thomas |
Changan Street |
Beijing |
插入新的行
SQL 語句:
INSERT INTO Persons VALUES ('Gates','Bill','Xuanwumen 10','Beijing')
在指定的列中插入資料
SQL 語句:
INSERT INTO Persons (LastName,Address) VALUES ('Wilson','Champs-Elysees')
SQL UPDATE 語句
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
更新某一行中的一個列
我們為 lastname 是 "Wilson" 的人新增 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
更新某一行中的若干列
我們會修改地址(address),並新增城市名稱(city):
UPDATE Person SET Address = 'Zhongshan 23',City = 'Nanjing'
WHERE LastName = 'Wilson'
SQL DELETE 語句
Person:
LastName |
FirstName |
Address |
City |
Gates |
Bill |
Xuanwumen 10 |
Beijing |
Wilson |
Fred |
Zhongshan 23 |
Nanjing |
語法
DELETE FROM 表名稱 WHERE 列名稱 = 值
刪除某行
"Fred Wilson" 會被刪除:
DELETE FROM Person WHERE LastName = 'Wilson'
刪除所有行
可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:
DELETE FROM table_name
或者:
DELETE * FROM table_name