SQL基礎(chǔ)語句 2SQL 簡介 什么是 SQL,?2 SQL 能做什么?2 SQL 是一種標準 - 但是...2 在您的網(wǎng)站中使用 SQL2 RDBMS2 SQL SELECT 語句3 SQL SELECT 語句3 SQL SELECT 實例3 SQL SELECT * 實例4 在結(jié)果集(result-set)中導(dǎo)航4 SQL SELECT DISTINCT 語句4 SQL SELECT DISTINCT 語句4 使用 DISTINCT 關(guān)鍵詞4 WHERE 子句5 使用 WHERE 子句6 引號的使用7 SQL AND & OR 運算符7 AND 和 OR 運算符7 原始的表 (用在例子中的):7 AND 運算符實例8 OR 運算符實例8 結(jié)合 AND 和 OR 運算符8 SQL ORDER BY 子句8 ORDER BY 語句8 SQL INSERT INTO 語句10 INSERT INTO 語句10 插入新的行11 在指定的列中插入數(shù)據(jù)11 SQL UPDATE 語句11 Update 語句11 Person:12 更新某一行中的一個列12 更新某一行中的若干列12 SQL DELETE 語句12 DELETE 語句12 Person:12 刪除某行13 刪除所有行13 SQL 簡介 SQL 是用于訪問和處理數(shù)據(jù)庫的標準的計算機語言,。 什么是 SQL,? · SQL 指結(jié)構(gòu)化查詢語言 · SQL 使我們有能力訪問數(shù)據(jù)庫 · SQL 是一種 ANSI 的標準計算機語言 編者注:ANSI,美國國家標準化組織 SQL 能做什么,? · SQL 面向數(shù)據(jù)庫執(zhí)行查詢 · SQL 可從數(shù)據(jù)庫取回數(shù)據(jù) · SQL 可在數(shù)據(jù)庫中插入新的紀錄 · SQL 可更新數(shù)據(jù)庫中的數(shù)據(jù) · SQL 可從數(shù)據(jù)庫刪除記錄 · SQL 可創(chuàng)建新數(shù)據(jù)庫 · SQL 可在數(shù)據(jù)庫中創(chuàng)建新表 · SQL 可在數(shù)據(jù)庫中創(chuàng)建存儲過程 · SQL 可在數(shù)據(jù)庫中創(chuàng)建視圖 · SQL 可以設(shè)置表,、存儲過程和視圖的權(quán)限 SQL 是一種標準 - 但是... SQL 是一門 ANSI 的標準計算機語言,用來訪問和操作數(shù)據(jù)庫系統(tǒng),。SQL 語句用于取回和更新數(shù)據(jù)庫中的數(shù)據(jù)。SQL 可與數(shù)據(jù)庫程序協(xié)同工作,比如 MS Access,、DB2,、Informix、MS SQL Server,、Oracle,、Sybase 以及其他數(shù)據(jù)庫系統(tǒng)。 不幸地是,,存在著很多不同版本的 SQL 語言,,但是為了與 ANSI 標準相兼容,,它們必須以相似的方式共同地來支持一些主要的關(guān)鍵詞(比如 SELECT、UPDATE,、DELETE,、INSERT、WHERE 等等),。 注釋:除了 SQL 標準之外,,大部分 SQL 數(shù)據(jù)庫程序都擁有它們自己的私有擴展! 在您的網(wǎng)站中使用 SQL 要創(chuàng)建發(fā)布數(shù)據(jù)庫中數(shù)據(jù)的網(wǎng)站,,您需要以下要素: · RDBMS 數(shù)據(jù)庫程序(比如 MS Access, SQL Server, MySQL) · 服務(wù)器端腳本語言(比如 PHP 或 ASP) · SQL · HTML / CSS RDBMS RDBMS 指的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),。 RDBMS 是 SQL 的基礎(chǔ),同樣也是所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)的基礎(chǔ),,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access,。 RDBMS 中的數(shù)據(jù)存儲在被稱為表(tables)的數(shù)據(jù)庫對象中。 表是相關(guān)的數(shù)據(jù)項的集合,,它由列和行組成,。 SQL SELECT 語句 本章講解 SELECT 和 SELECT * 語句。 SQL SELECT 語句 SELECT 語句用于從表中選取數(shù)據(jù),。 結(jié)果被存儲在一個結(jié)果表中(稱為結(jié)果集),。 SQL SELECT 語法 SELECT 列名稱 FROM 表名稱 以及: SELECT * FROM 表名稱 注釋:SQL 語句對大小寫不敏感。SELECT 等效于 select,。 SQL SELECT 實例 如需獲取名為 'LastName' 和 'FirstName' 的列的內(nèi)容(從名為 'Persons' 的數(shù)據(jù)庫表),,請使用類似這樣的 SELECT 語句: SELECT LastName,FirstName FROM Persons 'Persons' 表: 結(jié)果: SQL SELECT * 實例 現(xiàn)在我們希望從 'Persons' 表中選取所有的列。 請使用符號 * 取代列的名稱,,就像這樣: SELECT * FROM Persons 提示:星號(*)是選取所有列的快捷方式,。 結(jié)果: 在結(jié)果集(result-set)中導(dǎo)航 由 SQL 查詢程序獲得的結(jié)果被存放在一個結(jié)果集中。大多數(shù)數(shù)據(jù)庫軟件系統(tǒng)都允許使用編程函數(shù)在結(jié)果集中進行導(dǎo)航,,比如:Move-To-First-Record,、Get-Record-Content、Move-To-Next-Record 等等,。 類似這些編程函數(shù)不在本教程講解之列,。如需學(xué)習通過函數(shù)調(diào)用訪問數(shù)據(jù)的知識,請訪問我們的 和 ,。 SQL SELECT DISTINCT 語句 本章講解 SELECT DISTINCT 語句,。 SQL SELECT DISTINCT 語句 在表中,可能會包含重復(fù)值,。這并不成問題,,不過,有時您也許希望僅僅列出不同(distinct)的值,。 關(guān)鍵詞 DISTINCT 用于返回唯一不同的值,。 語法: SELECT DISTINCT 列名稱 FROM 表名稱 使用 DISTINCT 關(guān)鍵詞 如果要從 'Company' 列中選取所有的值,,我們需要使用 SELECT 語句: SELECT Company FROM Orders 'Orders'表: 結(jié)果: 請注意,在結(jié)果集中,,W3School 被列出了兩次,。 如需從 Company' 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語句: SELECT DISTINCT Company FROM Orders 結(jié)果: 現(xiàn)在,,在結(jié)果集中,,'W3School' 僅被列出了一次。 WHERE 子句用于規(guī)定選擇的標準,。 WHERE 子句 如需有條件地從表中選取數(shù)據(jù),,可將 WHERE 子句添加到 SELECT 語句。 語法 SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值 下面的運算符可在 WHERE 子句中使用: 注釋:在某些版本的 SQL 中,,操作符 <> 可以寫為 !=,。 使用 WHERE 子句 如果只希望選取居住在城市 'Beijing' 中的人,我們需要向 SELECT 語句添加 WHERE 子句: SELECT * FROM Persons WHERE City='Beijing' 'Persons' 表 結(jié)果: 引號的使用 請注意,,我們在例子中的條件值周圍使用的是單引號,。 SQL 使用單引號來環(huán)繞文本值(大部分數(shù)據(jù)庫系統(tǒng)也接受雙引號)。如果是數(shù)值,,請不要使用引號,。 文本值: 這是正確的: SELECT * FROM Persons WHERE FirstName='Bush' 這是錯誤的: SELECT * FROM Persons WHERE FirstName=Bush 數(shù)值: 這是正確的: SELECT * FROM Persons WHERE Year>1965 這是錯誤的: SELECT * FROM Persons WHERE Year>'1965' SQL AND & OR 運算符 AND 和 OR 運算符用于基于一個以上的條件對記錄進行過濾,。 AND 和 OR 運算符 AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結(jié)合起來,。 如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄,。 如果第一個條件和第二個條件中只要有一個成立,,則 OR 運算符顯示一條記錄。 原始的表 (用在例子中的): AND 運算符實例 使用 AND 來顯示所有姓為 'Carter' 并且名為 'Thomas' 的人: SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' 結(jié)果: OR 運算符實例 使用 OR 來顯示所有姓為 'Carter' 或者名為 'Thomas' 的人: SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter' 結(jié)果: 結(jié)合 AND 和 OR 運算符 我們也可以把 AND 和 OR 結(jié)合起來(使用圓括號來組成復(fù)雜的表達式): SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter' 結(jié)果: SQL ORDER BY 子句 ORDER BY 語句用于對結(jié)果集進行排序,。 ORDER BY 語句 ORDER BY 語句用于根據(jù)指定的列對結(jié)果集進行排序,。 ORDER BY 語句默認按照升序?qū)τ涗涍M行排序。 如果您希望按照降序?qū)τ涗涍M行排序,,可以使用 DESC 關(guān)鍵字,。 原始的表 (用在例子中的): Orders 表: 實例 1 以字母順序顯示公司名稱: SELECT Company, OrderNumber FROM Orders ORDER BY Company 結(jié)果: 實例 2 以字母順序顯示公司名稱(Company),并以數(shù)字順序顯示順序號(OrderNumber): SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber 結(jié)果: 實例 3 以逆字母順序顯示公司名稱: SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC 結(jié)果: 實例 4 以逆字母順序顯示公司名稱,,并以數(shù)字順序顯示順序號: SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC 結(jié)果: 注意:在以上的結(jié)果中有兩個相等的公司名稱 (W3School),。只有這一次,在第一列中有相同的值時,,第二列是以升序排列的,。如果第一列中有些值為 nulls 時,情況也是這樣的,。 SQL INSERT INTO 語句 INSERT INTO 語句 INSERT INTO 語句用于向表格中插入新的行,。 語法 INSERT INTO 表名稱 VALUES (值1, 值2,....) 我們也可以指定所要插入數(shù)據(jù)的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 插入新的行 'Persons' 表: SQL 語句: INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') 結(jié)果: 在指定的列中插入數(shù)據(jù) 'Persons' 表: SQL 語句: INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') 結(jié)果: SQL UPDATE 語句 Update 語句 Update 語句用于修改表中的數(shù)據(jù),。 語法: UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值 Person: 更新某一行中的一個列 我們?yōu)?lastname 是 'Wilson' 的人添加 firstname: UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 結(jié)果: 更新某一行中的若干列 我們會修改地址(address),并添加城市名稱(city): UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' 結(jié)果: SQL DELETE 語句 DELETE 語句 DELETE 語句用于刪除表中的行,。 語法 DELETE FROM 表名稱 WHERE 列名稱 = 值 Person: 刪除某行 'Fred Wilson' 會被刪除: DELETE FROM Person WHERE LastName = 'Wilson' 結(jié)果: 刪除所有行 可以在不刪除表的情況下刪除所有的行,。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的: DELETE FROM table_name 或者: DELETE * FROM table_name |
|
來自: 昵稱11935121 > 《未命名》