




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQL基礎(chǔ)簡(jiǎn)介2SQL簡(jiǎn)介2SQL語(yǔ)法3SQL select5SQL distinct6SQL where7SQL AND &OR9SQL ORDER BY 子句10SQL INSERT INTO 語(yǔ)句12SQL UPDATE 語(yǔ)句14SQL DELETE 語(yǔ)句15SQL 高級(jí)教程15SQL TOP 子句15SQL LIKE 操作符17SQL 通配符19SQL IN 操作符22SQL BETWEEN 操作符23SQL Alias(別名)24SQL JOIN26SQL INNER JOIN 關(guān)鍵字28SQL LEFT JOIN 關(guān)鍵字29SQL RIGHT JOIN 關(guān)鍵字30SQL F
2、ULL JOIN 關(guān)鍵字32SQL UNION 和 UNION ALL 操作符33SQL SELECT INTO 語(yǔ)句36SQL CREATE DATABASE 語(yǔ)句37SQL CREATE TABLE 語(yǔ)句37SQL 約束 (Constraints)39SQL NOT NULL 約束39SQL UNIQUE 約束40SQL PRIMARY KEY 約束42SQL FOREIGN KEY 約束43SQL CHECK 約束46SQL DEFAULT 約束48SQL CREATE INDEX 語(yǔ)句49SQL 撤銷索引、表以及數(shù)據(jù)庫(kù)50SQL ALTER TABLE 語(yǔ)句51SQL AUTO INC
3、REMENT 字段53SQL VIEW(視圖)55SQL Date 函數(shù)58SQL NULL 值60SQL NULL 函數(shù)61SQL 數(shù)據(jù)類型63SQL 服務(wù)器 - RDBMS68SQL 函數(shù)68SQL AVG 函數(shù)71SQL COUNT() 函數(shù)72SQL FIRST() 函數(shù)74SQL LAST() 函數(shù)75SQL MAX() 函數(shù)76SQL MIN() 函數(shù)77SQL SUM() 函數(shù)77SQL GROUP BY 語(yǔ)句78SQL HAVING 子句80SQL UCASE() 函數(shù)81SQL LCASE() 函數(shù)82SQL MID() 函數(shù)83SQL LEN() 函數(shù)84SQL ROUND
4、() 函數(shù)85SQL NOW() 函數(shù)86SQL FORMAT() 函數(shù)87SQL 快速參考88SQL基礎(chǔ)簡(jiǎn)介SQL簡(jiǎn)介SQL 是用于訪問(wèn)和處理數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)的計(jì)算機(jī)語(yǔ)言。什么是 SQL?· SQL 指結(jié)構(gòu)化查詢語(yǔ)言· SQL 使我們有能力訪問(wèn)數(shù)據(jù)庫(kù)· SQL 是一種 ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語(yǔ)言編者注:ANSI,美國(guó)國(guó)家標(biāo)準(zhǔn)化組織SQL 能做什么?· SQL 面向數(shù)據(jù)庫(kù)執(zhí)行查詢(select)· SQL 可從數(shù)據(jù)庫(kù)取回?cái)?shù)據(jù)· SQL 可在數(shù)據(jù)庫(kù)中插入新的記錄(insert)· SQL 可更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)(update)
5、83; SQL 可從數(shù)據(jù)庫(kù)刪除記錄(delete)· SQL 可創(chuàng)建新數(shù)據(jù)庫(kù)· SQL 可在數(shù)據(jù)庫(kù)中創(chuàng)建新表· SQL 可在數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過(guò)程· SQL 可在數(shù)據(jù)庫(kù)中創(chuàng)建視圖· SQL 可以設(shè)置表、存儲(chǔ)過(guò)程和視圖的權(quán)限(實(shí)現(xiàn)了最基本的增刪改查)SQL 是一種標(biāo)準(zhǔn) - 但是.SQL 是一門(mén) ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語(yǔ)言,用來(lái)訪問(wèn)和操作數(shù)據(jù)庫(kù)系統(tǒng)。SQL 語(yǔ)句用于取回和更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。SQL 可與數(shù)據(jù)庫(kù)程序協(xié)同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他數(shù)據(jù)庫(kù)系統(tǒng)。不
6、幸地是,存在著很多不同版本的 SQL 語(yǔ)言,但是為了與 ANSI 標(biāo)準(zhǔn)相兼容,它們必須以相似的方式共同地來(lái)支持一些主要的關(guān)鍵詞(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。注釋:除了 SQL 標(biāo)準(zhǔn)之外,大部分 SQL 數(shù)據(jù)庫(kù)程序都擁有它們自己的私有擴(kuò)展!在您的網(wǎng)站中使用 SQL要?jiǎng)?chuàng)建發(fā)布數(shù)據(jù)庫(kù)中數(shù)據(jù)的網(wǎng)站,您需要以下要素:· RDBMS 數(shù)據(jù)庫(kù)程序(比如 MS Access, SQL Server, MySQL)· 服務(wù)器端腳本語(yǔ)言(比如 PHP 或 ASP)· SQL· HTML / CSSRDBMSRDBMS 指
7、的是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。RDBMS 是 SQL 的基礎(chǔ),同樣也是所有現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ),比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。RDBMS 中的數(shù)據(jù)存儲(chǔ)在被稱為表(tables)的數(shù)據(jù)庫(kù)對(duì)象中。表是相關(guān)的數(shù)據(jù)項(xiàng)的集合,它由列和行組成。SQL語(yǔ)法數(shù)據(jù)庫(kù)表一個(gè)數(shù)據(jù)庫(kù)通常包含一個(gè)或多個(gè)表。每個(gè)表由一個(gè)名字標(biāo)識(shí)(例如“客戶”或者“訂單”)。表包含帶有數(shù)據(jù)的記錄(行)。下面的例子是一個(gè)名為 "Persons" 的表:IdLastNameFirstNameAddressCity1AdamsJohnOx
8、ford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing上面的表包含三條記錄(每一條對(duì)應(yīng)一個(gè)人)和五個(gè)列(Id、姓、名、地址和城市)。SQL 語(yǔ)句您需要在數(shù)據(jù)庫(kù)上執(zhí)行的大部分工作都由 SQL 語(yǔ)句完成。下面的語(yǔ)句從表中選取 LastName 列的數(shù)據(jù):SELECT LastName FROM Persons (Select 列名 from 表名)結(jié)果集類似這樣:LastNameAdamsBushCarter在本教程中,我們將為您講解各種不同的 SQL 語(yǔ)句。重要事項(xiàng)一定要記住,SQL 對(duì)
9、大小寫(xiě)不敏感!某些數(shù)據(jù)庫(kù)系統(tǒng)要求在每條 SQL 命令的末端使用分號(hào)。在我們的教程中不使用分號(hào)。分號(hào)是在數(shù)據(jù)庫(kù)系統(tǒng)中分隔每條 SQL 語(yǔ)句的標(biāo)準(zhǔn)方法,這樣就可以在對(duì)服務(wù)器的相同請(qǐng)求中執(zhí)行一條以上的語(yǔ)句。如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL 語(yǔ)句之后使用分號(hào),不過(guò)某些數(shù)據(jù)庫(kù)軟件要求必須使用分號(hào)。SQL DML 和 DDL可以把 SQL 分為兩個(gè)部分:數(shù)據(jù)操作語(yǔ)言 (DML) 和 數(shù)據(jù)定義語(yǔ)言 (DDL)。SQL (結(jié)構(gòu)化查詢語(yǔ)言)是用于執(zhí)行查詢的語(yǔ)法。但是 SQL 語(yǔ)言也包含用于更新、插入和刪除記錄的語(yǔ)法。查詢和更新指令構(gòu)成了 SQL 的 D
10、ML 部分:· SELECT - 從數(shù)據(jù)庫(kù)表中獲取數(shù)據(jù)· UPDATE - 更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)· DELETE - 從數(shù)據(jù)庫(kù)表中刪除數(shù)據(jù)· INSERT INTO - 向數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)SQL 的數(shù)據(jù)定義語(yǔ)言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格。我們也可以定義索引(鍵),規(guī)定表之間的鏈接,以及施加表間的約束。SQL 中最重要的 DDL 語(yǔ)句:· CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫(kù)· ALTER DATABASE - 修改數(shù)據(jù)庫(kù)· CREAT
11、E TABLE - 創(chuàng)建新表· ALTER TABLE - 變更(改變)數(shù)據(jù)庫(kù)表· DROP TABLE - 刪除表· CREATE INDEX - 創(chuàng)建索引(搜索鍵)· DROP INDEX - 刪除索引SQL select本章講解 SELECT 和 SELECT * 語(yǔ)句。SQL SELECT 語(yǔ)句SELECT 語(yǔ)句用于從表中選取數(shù)據(jù)。結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱為結(jié)果集)。SQL SELECT 語(yǔ)法SELECT 列名稱 FROM 表名稱 (查詢某一表格中的某一列)以及:SELECT * FROM 表
12、名稱 (從一張表中查詢所有列)注釋:SQL 語(yǔ)句對(duì)大小寫(xiě)不敏感。SELECT 等效于 select。SQL SELECT 實(shí)例如需獲取名為 "LastName" 和 "FirstName" 的列的內(nèi)容(從名為 "Persons" 的數(shù)據(jù)庫(kù)表),請(qǐng)使用類似這樣的 SELECT 語(yǔ)句:SELECT LastName,FirstName FROM Persons (查詢一張表中多列內(nèi)容,可以將列名稱用”,”隔開(kāi))"Persons" 表:IdLastNameFirstNameAddressCity1AdamsJohnOxf
13、ord StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing結(jié)果:LastNameFirstNameAdamsJohnBushGeorgeCarterThomasSQL SELECT * 實(shí)例現(xiàn)在我們希望從 "Persons" 表中選取所有的列。請(qǐng)使用符號(hào) * 取代列的名稱,就像這樣:SELECT * FROM Persons提示:星號(hào)(*)是選取所有列的快捷方式。結(jié)果:IdLastNameFirstNameAddressCity1AdamsJohnOxford Stree
14、tLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing在結(jié)果集(result-set)中導(dǎo)航由 SQL 查詢程序獲得的結(jié)果被存放在一個(gè)結(jié)果集中。大多數(shù)數(shù)據(jù)庫(kù)軟件系統(tǒng)都允許使用編程函數(shù)在結(jié)果集中進(jìn)行導(dǎo)航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。SQL distinct本章講解 SELECT DISTINCT 語(yǔ)句。SQL SELECT DISTINCT 語(yǔ)句在表中,可能會(huì)包含重復(fù)值。這并不成問(wèn)題,不過(guò),有時(shí)您也許希望
15、僅僅列出不同(distinct)的值。關(guān)鍵詞 DISTINCT 用于返回唯一不同的值。語(yǔ)法:SELECT DISTINCT 列名稱 FROM 表名稱使用 DISTINCT 關(guān)鍵詞如果要從 "Company" 列中選取所有的值,我們需要使用 SELECT 語(yǔ)句:SELECT Company FROM Orders"Orders"表:CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953結(jié)果:CompanyIBMW3SchoolAppleW3School請(qǐng)注意,在結(jié)果集中,W3School 被列出
16、了兩次。如需從 Company" 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語(yǔ)句:SELECT DISTINCT Company FROM Orders 結(jié)果:CompanyIBMW3SchoolApple現(xiàn)在,在結(jié)果集中,"W3School" 僅被列出了一次。SQL whereWHERE 子句用于規(guī)定選擇的標(biāo)準(zhǔn)。WHERE 子句如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語(yǔ)句。語(yǔ)法SELECT 列名稱 FROM 表名稱 WHERE 列 運(yùn)算符 值下面的運(yùn)算符可在 WHERE 子句中使用:操作符描述=等于&l
17、t;>不等于>大于<小于>=大于等于<=小于等于BETWEEN在某個(gè)范圍內(nèi)LIKE搜索某種模式注釋:在某些版本的 SQL 中,操作符 <> 可以寫(xiě)為 !=。使用 WHERE 子句如果只希望選取居住在城市 "Beijing" 中的人,我們需要向 SELECT 語(yǔ)句添加 WHERE 子句:SELECT * FROM Persons WHERE City='Beijing'"Persons" 表LastNameFirstNameAddressCityYearAdamsJohnOxford StreetL
18、ondon1970BushGeorgeFifth AvenueNew York1975CarterThomasChangan StreetBeijing1980GatesBillXuanwumen 10Beijing1985結(jié)果:LastNameFirstNameAddressCityYearCarterThomasChangan StreetBeijing1980GatesBillXuanwumen 10Beijing1985引號(hào)的使用請(qǐng)注意,我們?cè)诶又械臈l件值周圍使用的是單引號(hào)。SQL 使用單引號(hào)來(lái)環(huán)繞文本值(大部分?jǐn)?shù)據(jù)庫(kù)系統(tǒng)也接受雙引號(hào))。如果是數(shù)值,請(qǐng)不要使用引號(hào)。文本值:這是正確的
19、:SELECT * FROM Persons WHERE FirstName='Bush'這是錯(cuò)誤的:SELECT * FROM Persons WHERE FirstName=Bush數(shù)值:這是正確的:SELECT * FROM Persons WHERE Year>1965這是錯(cuò)誤的:SELECT * FROM Persons WHERE Year>'1965'SQL AND &OR SQL AND 和OR 運(yùn)算符AND 和 OR 可在 WHERE 子語(yǔ)句中把兩個(gè)或多個(gè)條件結(jié)合起來(lái)。如果第一個(gè)條件和第二個(gè)條件都成立,則 AND 運(yùn)算符顯示
20、一條記錄。如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則 OR 運(yùn)算符顯示一條記錄。原始的表 (用在例子中的):LastNameFirstNameAddressCityAdamsJohnOxford StreetLondonBushGeorgeFifth AvenueNew YorkCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10BeijingAND 運(yùn)算符實(shí)例使用 AND 來(lái)顯示所有姓為 "Carter" 并且名為 "Thomas" 的人:SELECT * FROM Persons W
21、HERE FirstName='Thomas' AND LastName='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingOR 運(yùn)算符實(shí)例使用 OR 來(lái)顯示所有姓為 "Carter" 或者名為 "Thomas" 的人:SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'結(jié)果:LastNameFirstNameAddr
22、essCityCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10Beijing結(jié)合 AND 和 OR 運(yùn)算符我們也可以把 AND 和 OR 結(jié)合起來(lái)(使用圓括號(hào)來(lái)組成復(fù)雜的表達(dá)式):SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')AND LastName='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBei
23、jingCarterWilliamXuanwumen 10BeijingSQL ORDER BY 子句ORDER BY 語(yǔ)句用于對(duì)結(jié)果集進(jìn)行排序。ORDER BY 語(yǔ)句ORDER BY 語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。ORDER BY 語(yǔ)句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序。如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用 DESC 關(guān)鍵字。原始的表 (用在例子中的):Orders 表:CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953實(shí)例 1以字母順序顯示公司名稱:SELECT Company, OrderNumber FROM Or
24、ders ORDER BY Company結(jié)果:CompanyOrderNumberApple4698IBM3532W3School6953W3School2356實(shí)例 2以字母順序顯示公司名稱(Company),并以數(shù)字順序顯示順序號(hào)(OrderNumber):SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber結(jié)果:CompanyOrderNumberApple4698IBM3532W3School2356W3School6953實(shí)例 3以逆字母順序顯示公司名稱:SELECT Company, Order
25、Number FROM Orders ORDER BY Company DESC結(jié)果:CompanyOrderNumberW3School6953W3School2356IBM3532Apple4698實(shí)例 4以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC(如company相同的話,ordernumber按遞增排列 )結(jié)果:CompanyOrderNumberW3School2356W3School6953IBM3532Apple469
26、8注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時(shí),第二列是以升序排列的。如果第一列中有些值為 nulls 時(shí),情況也是這樣的。SQL INSERT INTO 語(yǔ)句INSERT INTO 語(yǔ)句INSERT INTO 語(yǔ)句用于向表格中插入新的行。語(yǔ)法INSERT INTO 表名稱 VALUES (值1, 值2,.)我們也可以指定所要插入數(shù)據(jù)的列:INSERT INTO table_name (列1, 列2,.) VALUES (值1, 值2,.)插入新的行"Persons" 表:LastNameFirstNameAddress
27、CityCarterThomasChangan StreetBeijingSQL 語(yǔ)句:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingGatesBillXuanwumen 10Beijing在指定的列中插入數(shù)據(jù)"Persons" 表:LastNameFirstNameAddressCityC
28、arterThomasChangan StreetBeijingGatesBillXuanwumen 10BeijingSQL 語(yǔ)句:語(yǔ)法:Insert into 表名稱 (列名1,列名2) values(列值1,列值2,.)INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingGatesBillXuanwumen 10BeijingWils
29、on Champs-Elysees SQL UPDATE 語(yǔ)句Update 語(yǔ)句Update 語(yǔ)句用于修改表中的數(shù)據(jù)。語(yǔ)法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值Person:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilson Champs-Elysees更新某一行中的一個(gè)列我們?yōu)?lastname 是 "Wilson" 的人添加 firstname:UPDATE Person SET FirstName = 'Fred
30、9; WHERE LastName = 'Wilson' 結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredChamps-Elysees 更新某一行中的若干列我們會(huì)修改地址(address),并添加城市名稱(city):UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'結(jié)果:LastNameFirstNameAddr
31、essCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23NanjingSQL DELETE 語(yǔ)句DELETE 語(yǔ)句DELETE 語(yǔ)句用于刪除表中的行。語(yǔ)法DELETE FROM 表名稱 WHERE 列名稱 = 值Person:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23Nanjing刪除某行"Fred Wilson" 會(huì)被刪除:DELETE FROM Person WHERE LastName = '
32、;Wilson' 結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10Beijing刪除所有行k可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:DELETE FROM table_name或者: 888888888iiiiiiiiiiiiii FROM table_nameSQL Top 子句Top 子句 TOP 子句用于規(guī)定要返回的記錄的數(shù)目。對(duì)于擁有數(shù)千條記錄的大型表來(lái)說(shuō),TOP 子句是非常有用的。注釋:并非所有的數(shù)據(jù)庫(kù)系統(tǒng)都支持 TOP 子句。SQL Server 的語(yǔ)法:SELECT TOP num
33、ber|percent column_name(s)FROM table_nameMySQL 和 Oracle 中的 SQL SELECT TOP 是等價(jià)的MySQL 語(yǔ)法SELECT column_name(s)FROM table_nameLIMIT number例子SELECT *FROM PersonsLIMIT 5Oracle 語(yǔ)法SELECT column_name(s)FROM table_nameWHERE ROWNUM <= number例子SELECT *FROM PersonsWHERE ROWNUM <= 5原始的表 (用在例子中的):Persons 表:I
34、dLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4ObamaBarackPennsylvania AvenueWashingtonSQL TOP 實(shí)例現(xiàn)在,我們希望從上面的 "Persons" 表中選取頭兩條記錄。我們可以使用下面的 SELECT 語(yǔ)句:SELECT TOP 2 * FROM Persons結(jié)果:IdLastNameFirstNameAddressCity1Ada
35、msJohnOxford StreetLondon2BushGeorgeFifth AvenueNew YorkSQL TOP PERCENT 實(shí)例現(xiàn)在,我們希望從上面的 "Persons" 表中選取 50% 的記錄。我們可以使用下面的 SELECT 語(yǔ)句:SELECT TOP 50 PERCENT * FROM Persons結(jié)果:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew YorkSQL LIKE 操作符LIKE 操作符用于在 WHERE 子句
36、中搜索列中的指定模式。LIKE 操作符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SQL LIKE 操作符語(yǔ)法SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern原始的表 (用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingLIKE 操作符實(shí)例例子 1現(xiàn)在,我們希望從
37、上面的 "Persons" 表中選取居住在以 "N" 開(kāi)始的城市里的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE 'N%'提示:"%" 可用于定義通配符(模式中缺少的字母)。結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下來(lái),我們希望從 "Persons" 表中選取居住在以 "g" 結(jié)尾的城市里的人:我們可以使用下面
38、的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE '%g'結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing例子 3接下來(lái),我們希望從 "Persons" 表中選取居住在包含 "lon" 的城市里的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE '%lon%'結(jié)果集:IdLastNameFirstNameAddressCi
39、ty1AdamsJohnOxford StreetLondon例子 4通過(guò)使用 NOT 關(guān)鍵字,我們可以從 "Persons" 表中選取居住在不包含 "lon" 的城市里的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City NOT LIKE '%lon%'結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingSQL 通配符在搜索數(shù)據(jù)
40、庫(kù)中的數(shù)據(jù)時(shí),您可以使用 SQL 通配符。SQL 通配符在搜索數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),SQL 通配符可以替代一個(gè)或多個(gè)字符。SQL 通配符必須與 LIKE 運(yùn)算符一起使用。在 SQL 中,可使用以下通配符:通配符描述%替代一個(gè)或多個(gè)字符_僅替代一個(gè)字符charlist字符列中的任何單一字符charlist或者!charlist不在字符列中的任何單一字符原始的表 (用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThoma
41、sChangan StreetBeijing使用 % 通配符例子 1現(xiàn)在,我們希望從上面的 "Persons" 表中選取居住在以 "Ne" 開(kāi)始的城市里的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE 'Ne%'結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下來(lái),我們希望從 "Persons" 表中選取居住在包含 "lond" 的城市里的
42、人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE '%lond%'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon使用 _ 通配符例子 1現(xiàn)在,我們希望從上面的 "Persons" 表中選取名字的第一個(gè)字符之后是 "eorge" 的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'結(jié)果集
43、:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下來(lái),我們希望從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開(kāi)頭,然后是一個(gè)任意字符,然后是 "r",然后是任意字符,然后是 "er":我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE LastName LIKE 'C_r_er'結(jié)果集:IdLastNameFirstNameAddressCity3Carter
44、ThomasChangan StreetBeijing使用 charlist 通配符例子 1現(xiàn)在,我們希望從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開(kāi)頭的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE 'ALN%'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew
45、 York例子 2現(xiàn)在,我們希望從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開(kāi)頭的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM PersonsWHERE City LIKE '!ALN%'結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijingSQL IN 操作符IN 操作符IN 操作符允許我們?cè)?WHERE 子句中規(guī)定多個(gè)值。SQL IN 語(yǔ)
46、法SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,.)原始的表 (在實(shí)例中使用:)Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingIN 操作符實(shí)例現(xiàn)在,我們希望從上表中選取姓氏為 Adams 和 Carter 的人:我們可以使用下面的 SELECT 語(yǔ)句:SELECT * FROM
47、PersonsWHERE LastName IN ('Adams','Carter')結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon3CarterThomasChangan StreetBeijingSQL BETWEEN 操作符BETWEEN 操作符在 WHERE 子句中使用,作用是選取介于兩個(gè)值之間的數(shù)據(jù)范圍。BETWEEN 操作符操作符 BETWEEN . AND 會(huì)選取介于兩個(gè)值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期。SQL BETWEEN 語(yǔ)法SELECT colu
48、mn_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2原始的表 (在實(shí)例中使用:)Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10BeijingBETWEEN 操作符實(shí)例如需以字母順序顯示介于 "Adams"(包括)和 "Ca
49、rter"(不包括)之間的人,請(qǐng)使用下面的 SQL:SELECT * FROM PersonsWHERE LastNameBETWEEN 'Adams' AND 'Carter'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York重要事項(xiàng):不同的數(shù)據(jù)庫(kù)對(duì) BETWEEN.AND 操作符的處理方式是有差異的。某些數(shù)據(jù)庫(kù)會(huì)列出介于 "Adams" 和 "Carter" 之間的人,但不
50、包括 "Adams" 和 "Carter" ;某些數(shù)據(jù)庫(kù)會(huì)列出介于 "Adams" 和 "Carter" 之間并包括 "Adams" 和 "Carter" 的人;而另一些數(shù)據(jù)庫(kù)會(huì)列出介于 "Adams" 和 "Carter" 之間的人,包括 "Adams" ,但不包括 "Carter" 。所以,請(qǐng)檢查你的數(shù)據(jù)庫(kù)是如何處理 BETWEEN.AND 操作符的!實(shí)例 2如需使用上面的例子顯示范圍之外的人
51、,請(qǐng)使用 NOT 操作符:SELECT * FROM PersonsWHERE LastNameNOT BETWEEN 'Adams' AND 'Carter'結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10BeijingSQL Alias(別名)通過(guò)使用 SQL,可以為列名稱和表名稱指定別名(Alias)。SQL Alias表的 SQL Alias 語(yǔ)法SELECT column_name(s)FROM table_nameAS
52、alias_name列的 SQL Alias 語(yǔ)法SELECT column_name AS alias_nameFROM table_nameAlias 實(shí)例: 使用表名稱別名假設(shè)我們有兩個(gè)表分別是:"Persons" 和 "Product_Orders"。我們分別為它們指定別名 "p" 和 "po"?,F(xiàn)在,我們希望列出 "John Adams" 的所有定單。我們可以使用下面的 SELECT 語(yǔ)句:SELECT po.OrderID, p.LastName, p.FirstNameFROM P
53、ersons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'不使用別名的 SELECT 語(yǔ)句:SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstNameFROM Persons, Product_OrdersWHERE Persons.LastName='Adams' AND Persons.FirstName='John'從上面兩條 SELECT 語(yǔ)句您可以
54、看到,別名使查詢程序更易閱讀和書(shū)寫(xiě)。Alias 實(shí)例: 使用一個(gè)列名別名表 Persons:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingSQL:SELECT LastName AS Family, FirstName AS NameFROM Persons結(jié)果:FamilyNameAdamsJohnBushGeorgeCarterThomasSQL JOINSQL join 用于根據(jù)兩個(gè)或多個(gè)
55、表中的列之間的關(guān)系,從這些表中查詢數(shù)據(jù)。Join 和 Key有時(shí)為了得到完整的結(jié)果,我們需要從兩個(gè)或更多的表中獲取結(jié)果。我們就需要執(zhí)行 join。數(shù)據(jù)庫(kù)中的表可通過(guò)鍵將彼此聯(lián)系起來(lái)。主鍵(Primary Key)是一個(gè)列,在這個(gè)列中的每一行的值都是唯一的。在表中,每個(gè)主鍵的值都是唯一的。這樣做的目的是在不重復(fù)每個(gè)表中的所有數(shù)據(jù)的情況下,把表間的數(shù)據(jù)交叉捆綁在一起。請(qǐng)看 "Persons" 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing請(qǐng)注意,"Id_P" 列是 Persons 表中的的主鍵。這意味著沒(méi)有兩行能夠擁有相同的 Id_P。即使兩個(gè)人的姓名完全相同,Id_P 也可以區(qū)分他們。接下來(lái)請(qǐng)看 "Orders&qu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石材供應(yīng)合同
- 2025工業(yè)區(qū)倉(cāng)庫(kù)租賃合同模板
- 2025建筑工程包工不包料合同范本
- 2025年的單身公寓租賃合同樣本
- 2025年農(nóng)產(chǎn)品種子購(gòu)銷合同
- 2025標(biāo)準(zhǔn)版簡(jiǎn)單個(gè)人租房合同示例
- 2025年反擔(dān)保抵押合同范本
- 2025標(biāo)準(zhǔn)版城鎮(zhèn)公寓買賣合同
- 2025標(biāo)準(zhǔn)木材采購(gòu)合同范本
- 《我國(guó)氣候特點(diǎn)》課件
- 院感試題100題及答案
- 急性冠脈綜合征診斷及治療課件
- 吹小號(hào)的天鵝試題及答案
- 數(shù)據(jù)庫(kù)開(kāi)發(fā) 試題及答案
- GB/T 45434.3-2025中國(guó)標(biāo)準(zhǔn)時(shí)間第3部分:公報(bào)
- 2024年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 農(nóng)業(yè)合作社管理與運(yùn)營(yíng)模式試題及答案
- Unit 4 Clothes 單元整體(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教精通版(2024)英語(yǔ)三年級(jí)下冊(cè)
- 2025年版中等職業(yè)教育專業(yè)教學(xué)標(biāo)準(zhǔn) 710205 大數(shù)據(jù)技術(shù)應(yīng)用
- 2025年中國(guó)城市軌道交通維修行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 公司轉(zhuǎn)讓租賃合同樣本
評(píng)論
0/150
提交評(píng)論