SQL基礎(chǔ)教程。
注意: SQL 對(duì)大小寫不敏感!
SQL DML 和 DDL
可以把 SQL 分為兩個(gè)部分:數(shù)據(jù)操作語言 (DML)?和?數(shù)據(jù)定義語言 (DDL)。
SQL (結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法。但是 SQL 語言也包含用于更新、插入和刪除記錄的語法。
查詢和更新指令構(gòu)成了 SQL 的 DML 部分:
SELECT 從數(shù)據(jù)庫表中獲取數(shù)據(jù) UPDATE 更新數(shù)據(jù)庫表中的數(shù)據(jù) DELETE 從數(shù)據(jù)庫表中刪除數(shù)據(jù) INSERT INTO 向數(shù)據(jù)庫表中插入數(shù)據(jù)SQL 的數(shù)據(jù)定義語言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格。我們也可以定義索引(鍵),規(guī)定表之間的鏈接,以及施加表間的約束。
SQL 中最重要的 DDL 語句:
CREATE DATABASE 創(chuàng)建新數(shù)據(jù)庫 ALTER DATABASE 修改數(shù)據(jù)庫 CREATE TABLE 創(chuàng)建新表 ALTER TABLE 變更(改變)數(shù)據(jù)庫表 DROP TABLE 刪除表 CREATE INDEX 創(chuàng)建索引(搜索鍵) DROP INDEX 刪除索引SQL SELECT 語句
SELECT 語句用于從表中選取數(shù)據(jù)。
結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱為結(jié)果集)。
SQL SELECT 語法
SELECT 列名稱 FROM 表名稱以及:
SELECT * FROM 表名稱注釋:SQL 語句對(duì)大小寫不敏感。SELECT 等效于 select。
SQL SELECT DISTINCT 語句
在表中,可能會(huì)包含重復(fù)值。這并不成問題,不過,有時(shí)您也許希望僅僅列出不同(distinct)的值。
關(guān)鍵詞 DISTINCT 用于返回唯一不同的值。
語法:
SELECT DISTINCT 列名稱 FROM 表名稱
WHERE 子句
如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語句。
語法
SELECT 列名稱 FROM 表名稱 WHERE 列 運(yùn)算符 值
下面的運(yùn)算符可在 WHERE 子句中使用:
操作符描述 =等于 <>不等于 大于 <小于 =大于等于 <=小于等于 BETWEEN在某個(gè)范圍內(nèi) LIKE搜索某種模式 注釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。AND 和 OR 運(yùn)算符
AND 和 OR 可在 WHERE 子語句中把兩個(gè)或多個(gè)條件結(jié)合起來。
如果第一個(gè)條件和第二個(gè)條件都成立,則 AND 運(yùn)算符顯示一條記錄。
如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則 OR 運(yùn)算符顯示一條記錄。
原始的表 (用在例子中的):
LastNameFirstNameAddressCity
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing
AND 運(yùn)算符實(shí)例
使用 AND 來顯示所有姓為 “Carter” 并且名為 “Thomas” 的人:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
結(jié)果:
LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing
ORDER BY 語句
ORDER BY 語句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。
ORDER BY 語句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序。
如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用 DESC 關(guān)鍵字。
原始的表 (用在例子中的):
Orders 表:
CompanyOrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953
以字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
結(jié)果:
CompanyOrderNumber
Apple 4698
IBM 3532
W3School 6953
W3School 2356
INSERT INTO 語句
INSERT INTO 語句用于向表格中插入新的行。
語法
INSERT INTO 表名稱 VALUES (值1, 值2,....)
我們也可以指定所要插入數(shù)據(jù)的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
Update 語句
Update 語句用于修改表中的數(shù)據(jù)。
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
DELETE 語句
DELETE 語句用于刪除表中的行。
語法
DELETE FROM 表名稱 WHERE 列名稱 = 值