SQL數(shù)據(jù)庫學(xué)習(xí)之一_第1頁
SQL數(shù)據(jù)庫學(xué)習(xí)之一_第2頁
SQL數(shù)據(jù)庫學(xué)習(xí)之一_第3頁
SQL數(shù)據(jù)庫學(xué)習(xí)之一_第4頁
SQL數(shù)據(jù)庫學(xué)習(xí)之一_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、SQL是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計(jì)算機(jī)語言。什么是SQL ?« SQL指結(jié)構(gòu)化查詢語言 SQL使我們有能力訪問數(shù)據(jù)庫« SQL是一種ANSI的標(biāo)準(zhǔn)計(jì)算機(jī)語言編者注:ANSI,美國國家標(biāo)準(zhǔn)化組織SQL能做什么? SQL面向數(shù)據(jù)庫執(zhí)行查詢* SQL可從數(shù)據(jù)庫取回?cái)?shù)據(jù)* SQL可在數(shù)據(jù)庫中插入新的紀(jì)錄* SQL可更新數(shù)據(jù)庫中的數(shù)據(jù) SQL可從數(shù)據(jù)庫刪除記錄 SQL可創(chuàng)建新數(shù)據(jù)庫 SQL可在數(shù)據(jù)庫中創(chuàng)建新表 SQL可在數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程 SQL可在數(shù)據(jù)庫中創(chuàng)建視圖 SQL可以設(shè)置表、存儲(chǔ)過程和視圖的權(quán)限SQL是一種標(biāo)準(zhǔn)-但是SQL是一門ANSI的標(biāo)準(zhǔn)計(jì)算機(jī)語言,用來訪問和操作

2、數(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標(biāo)準(zhǔn)相兼容,它們必須以相似的方式共同地來支持一些主要的關(guān)鍵詞(比女口SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。注釋:除了 SQL標(biāo)準(zhǔn)之外,大部分 SQL數(shù)據(jù)庫程序都擁有它們自己的私有擴(kuò)展!在您的網(wǎng)站中使用SQL要?jiǎng)?chuàng)建發(fā)布數(shù)據(jù)庫中數(shù)據(jù)的網(wǎng)站,您需要以下要素:* RDBMS 數(shù)據(jù)庫程序(比如 M

3、S Access, SQL Server, MySQL )服務(wù)器端腳本語言(比如 PHP或ASP) SQLHTML/CSSRDBMSRDBMS指的是關(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ù)存儲(chǔ)在被稱為表(tables )的數(shù)據(jù)庫對(duì)象中。表是相關(guān)的數(shù)據(jù)項(xiàng)的集合,它由列和行組成。數(shù)據(jù)庫表一個(gè)數(shù)據(jù)庫通常包含一個(gè)或多個(gè)表。每個(gè)表由一個(gè)名字標(biāo)識(shí)(例如客戶”或者訂單”。表包含帶有數(shù)據(jù)的記錄(行)。下面的例子是一個(gè)名為"

4、Persons" 的表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing上面的表包含三條記錄(每一條對(duì)應(yīng)一個(gè)人)和五個(gè)列(Id、姓、名、地址和城市)SQL語句您需要在數(shù)據(jù)庫上執(zhí)行的大部分工作都由SQL語句完成。下面的語句從表中選取LastName 列的數(shù)據(jù):SELECT LastName FROM Persons結(jié)果集類似這樣:在本教程中,我們將為您講解各種不同的SQL語句重要事項(xiàng)一定要

5、記住,SQL對(duì)大小寫不敏感!SQL語句后面的分號(hào)?某些數(shù)據(jù)庫系統(tǒng)要求在每條 SQL命令的末端使用分號(hào)。在我們的教程中不使用分號(hào)。分號(hào)是在數(shù)據(jù)庫系統(tǒng)中分隔每條SQL語句的標(biāo)準(zhǔn)方法,這樣就可以在對(duì)服務(wù)器的相同請(qǐng)求中執(zhí)行一條以上的語句。如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL語句之后使用分號(hào),不過某些SQL SELECT 語句SELECT語句用于從表中選取數(shù)據(jù)。數(shù)據(jù)庫軟件要求必須使用分號(hào)。SQL DML 和 DDL可以把SQL分為兩個(gè)部分:數(shù)據(jù)操作語言(DML)和數(shù)據(jù)定義語言(DDL)SQL (結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法。但是SQL語言也

6、包含用于更新、插入和刪除記錄的語法查詢和更新指令構(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 -倉U建新表 ALTER TABLE-變更(改變)數(shù)據(jù)庫表 DROP TA

7、BLE -刪除表* CREATE INDEXDROP INDEX-創(chuàng)建索引(搜索鍵)刪除索引本章講解SELECT 和SELECT * 語句在本教程中,我們將為您講解各種不同的SQL語句。重要事項(xiàng)一定要記住,SQL對(duì)大小寫不敏感!SQL語句后面的分號(hào)?某些數(shù)據(jù)庫系統(tǒng)要求在每條SQL命令的末端使用分號(hào)。在我們的教程中不使用分號(hào)。分號(hào)是在數(shù)據(jù)庫系統(tǒng)中分隔每條SQL語句的標(biāo)準(zhǔn)方法,這樣就可以在對(duì)服務(wù)器的相同請(qǐng)求中執(zhí)行一條以上的語句。如果您使用的是 MS Access 和SQL Server 2000 ,則不必在每條 SQL語句之后使用分號(hào),不過某些 數(shù)據(jù)庫軟件要求必須使用分號(hào)。SQL DML 和 DD

8、L可以把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 DATABAS

9、E-修改數(shù)據(jù)庫CREATE TABLE-創(chuàng)建新表ALTER TABLE -變更(改變)數(shù)據(jù)庫表DROP TABLE -刪除表CREATE INDEX-創(chuàng)建索引(搜索鍵)DROP INDEX -刪除索引本章講解SELECT 和SELECT * 語句SQL SELECT 語句SELECT語句用于從表中選取數(shù)據(jù)。一定要記住,SQL對(duì)大小寫不敏感!SQL語句后面的分號(hào)?某些數(shù)據(jù)庫系統(tǒng)要求在每條SQL命令的末端使用分號(hào)。在我們的教程中不使用分號(hào)。分號(hào)是在數(shù)據(jù)庫系統(tǒng)中分隔每條SQL語句的標(biāo)準(zhǔn)方法,這樣就可以在對(duì)服務(wù)器的相同請(qǐng)求中執(zhí)行一條以上的語句。如果您使用的是 MS Access 和SQL Server

10、 2000 ,則不必在每條 SQL語句之后使用分號(hào),不過某些 數(shù)據(jù)庫軟件要求必須使用分號(hào)。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ī)定表之間的鏈接,以及施

11、加表間的約束。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 -刪除索引本章講解SELECT 和SELECT * 語句CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953結(jié)果:CompanyIBMW3SchoolAppleW3School 請(qǐng)注意,在結(jié)果集中,W3School被列出了兩次。如需

12、從Company" 列中僅選取唯一不同的值,我們需要使用SELECT DISTINCT 語句:FSELECT DISTINCT Company FROM Orders一_-_.一結(jié)果:CompanyIBMW3SchoolApple現(xiàn)在,在結(jié)果集中,"W3School"僅被列出了一次WHERE 子句用于規(guī)定選擇的標(biāo)準(zhǔn)。WHERE 子句如需有條件地從表中選取數(shù)據(jù),可將WHERE子句添加到SELECT語句語法SELECT列名稱FROM表名稱 WHERE列運(yùn)算符值下面的運(yùn)算符可在 WHERE子句中使用:操作符描述=等于<>不等于>大于<小于>

13、=大于等于<=小于等于BETWEEN在某個(gè)范圍內(nèi)LIKE搜索某種模式注釋:在某些版本的 SQL中,操作符 <> 可以寫為!=。使用WHERE 子句如果只希望選取居住在城市"Beijing" 中的人,我們需要向 SELECT語句添加WHERE子句:“!, “! ”“! W”!“,1“1“! “ 1“1,“ “ “IM , I”,1“ ,1,“ 1,11 ” "1,1 “11,“!1“1“11“”1SELECT * FROM Persons WHERE City='Beji ng'"Persons" 表LastNa

14、meFirstNameAddressCityYearAdamsiJohnOxford StreetLondon1970BushGeorgeFifth AvenueNew York19751980CarterThomasChangan StreetBeijing語法SELECT列名稱FROM表名稱 WHERE列運(yùn)算符值下面的運(yùn)算符可在 WHERE子句中使用:描述操作符等于<>不等于BETWEENLIKE大于 小于 大于等于 小于等于 在某個(gè)范圍內(nèi) 搜索某種模式 注釋:在某些版本的 SQL中,操作符 <> 可以寫為!= o使用WHERE 子句如果只希望選取居住在城市&quo

15、t;Beijing" 中的人,我們需要向 SELECT語句添加WHERE子句:select * from Persons WHERE City='Beijing'"Persons" 表LastNameFirstNameAddressCityYearAdamsJohnOxford StreetLondon1970BushGeorgeFifth AvenueNew York1975CarterThomasChangan StreetBeijing1980AND和OR可在WHERE子語句中把兩個(gè)或多個(gè)條件結(jié)合起來。如果第一個(gè)條件和第二個(gè)條件都成立,則AN

16、D運(yùn)算符顯示一條記錄。如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則OR運(yùn)算符顯示一條記錄。原始的表(用在例子中的):LastNameFirstNameAddressCityAdamsJohnOxford StreetLondonBushGeorgeFifth AvenueNew YorkCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10BeijingAND運(yùn)算符實(shí)例AND LastName='Carter'使用AND來顯示所有姓為 "Carter" 并且名為"Thomas"

17、; 的人:SELECT * FROM Persons WHERE FirstName='Thomas'結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingOR運(yùn)算符實(shí)例使用OR來顯示所有姓為"Carter"或者名為"Thomas" 的人:SELECT * FROM Persons WHERE firstname='Thomas'ORIastname='Carter'結(jié)果:LastNameFirstNameAddressCityCar

18、terThomasChangan StreetBeijingCarterWilliamXuanwumen 10Beijing結(jié)合AND 和OR運(yùn)算符我們也可以把 AND和OR結(jié)合起來(使用圓括號(hào)來組成復(fù)雜的表達(dá)式)SELECT * FROM Persons WHERE ( FirstName='Thomas'ORFirstName='William')AND LastName='Carter'結(jié)果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingCarterWilliamX

19、uanwumen 10BeijingPrevious PageNext PageSQL ORDER BY子句«Previous Page«Next PageORDER BY 語句用于對(duì)結(jié)果集進(jìn)行排序。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 表:CompanyOrderNumber1IBM3532W3School2356Apple4698W3School6953我們也可以把 AND和OR結(jié)合起來(使

20、用圓括號(hào)來組成復(fù)雜的表達(dá)式)SELECT * FROM Persons WHERE(FirstName='Thomas'O RFirstName-William'AN D LastName='Carter'結(jié)果:LastNameFirstNameAddressCarterThomasChangan StreetCityBeijingCarterWilliamXuanwumen 10BeijingPrevious PageNext PageSQL ORDER BYF句Previous PageNext PageORDER BY 語句用于對(duì)結(jié)果集進(jìn)行排序。O

21、RDER BY 語句ORDER BY語句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。ORDER BY語句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序。如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用DESC關(guān)鍵字原始的表(用在例子中的):Orders 表:CompanyIBMW3SchoolAppleOrderNumber3532235646986953W3SchoolCompanyOrderNumberW3School6953W3School2356IBM3532Apple4698實(shí)例4ORDER BY Compa ny DESC,以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):SELECT Company, OrderN

22、umber FROM OrdersOrderNumber ASC結(jié)果:CompanyOrderNumber1W3School2356W3School6953IBM3532Apple4698注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱(W3School)。只有這一次,在第一列中有相同的值時(shí),第二列是以升序排列的。如果第一列中有些值為nulls時(shí),情況也是這樣的。Previous PageNext PageSQL INSERT INTO 語句Previous PageNext PageINSERT INTO 語句INSERT INTO 語句用于向表格中插入新的行。語法CompanyOrderNumbe

23、rINSERT INTO 語句用于向表格中插入新的行。語法W3School6953W3School2356IBM3532Apple4698實(shí)例4以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):SELECT Company, OrderNumber FROM OrdersOrderNumber ASCORDER BY Company DESC,結(jié)果:CompanyW3SchoolOrderNumber2356W3SchoolIBM69533532Apple4698注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱二列是以升序排列的。如果第一列中有些值為Previous PageNext Page(W3S

24、chool) o只有這一次,在第一列中有相同的值時(shí),第nulls時(shí),情況也是這樣的。SQL INSERT INTO 語句Previous PageNext PageINSERT INTO 語句W3School6953W3School2356IBM3532Apple4698實(shí)例4以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):SELECT Company, OrderNumber FROM OrdersOrderNumber ASCORDER BY Company DESC,結(jié)果:CompanyW3SchoolOrderNumber2356W3SchoolIBM69533532Apple469

25、8注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱二列是以升序排列的。如果第一列中有些值為Previous PageNext Page(W3School) o只有這一次,在第一列中有相同的值時(shí),第nulls時(shí),情況也是這樣的。SQL INSERT INTO 語句Previous PageNext PageINSERT INTO 語句結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23NanjingPrevious PageNext PageSQL DELETE 語句Previous PageN

26、ext PageDELETE 語句DELETE語句用于刪除表中的行。語法DELETE FROM 表名稱 WHERE列名稱=值Pers on:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23Nanjing刪除某行"Fred Wilson"會(huì)被刪除:DELETE FROM Person WHERE LastName = 'Wilson'結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10Beijing刪除

27、所有行可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23NanjingPrevious PageNext PageSQL DELETE語句Previous PageNext PageDELETE 語句DELETE語句用于刪除表中的行。語法DELETE FROM 表名稱 WHERE列名稱=值Pers on:LastNameFirstNameAddressCityGatesBillXuanwumen 10Beij

28、ingWilson刪除某行"Fred Wilson"會(huì)被刪除:FredZhongshan 23NanjingDELETE FROM Person WHERE LastName = 'Wilson'結(jié)果:LastNameFirstNameAddressGatesBillXuanwumen 10CityBeijing結(jié)果:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonFredZhongshan 23NanjingPrevious PageNext PageSQL DELETE語句Pre

29、vious PageNext PageDELETE 語句DELETE語句用于刪除表中的行。語法DELETE FROM 表名稱 WHERE列名稱=值Pers on:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilson刪除某行"Fred Wilson"會(huì)被刪除:FredZhongshan 23NanjingDELETE FROM Person WHERE LastName = 'Wilson'結(jié)果:LastNameFirstNameAddressGatesBillXuanwumen 10Ci

30、tyBeijing現(xiàn)在,我們希望從上面的"Persons" 表中選取50% 的記錄我們可以使用下面的 SELECT語句:SELECT TOP 50 PERCENT * FROM Persons結(jié)果:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew YorkPrevious Page*Next PageSQL LIKE操作符*Previous PageNext PageLIKE操作符用于在 WHERE子句中搜索列中的指定模式。LIKE操作符LIKE操作符用

31、于在 WHERE子句中搜索列中的指定模式。SQL 口KE 操作符語法Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingLIKE 操作符實(shí)例例子1現(xiàn)在,我們希望從上面的"Persons" 表中選取居住在以"N"開始的城市里的人:我們可以使用下面的SELECT語句:SELECT * FROM PersonsWHERE City LIKE 

32、9;N%'提示:""可用于定義通配符(模式中缺少的字母)結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子2接下來,我們希望從 "Persons" 表中選取居住在以"g"結(jié)尾的城市里的人:我們可以使用下面的 SELECT語句:i SELECT * FROM Persons' WHERE City LIKE '%g'結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan

33、 StreetBeijing例子3接下來,我們希望從"Persons"表中選取居住在包含"lon"的城市里的人:我們可以使用下面的 SELECT語句:SELECT * FROM PersonsIWHERE City LIKE '%lon%'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon例子4通過使用 NOT關(guān)鍵字,我們可以從 "Persons"表中選取居住在不包含"lon"的城市里的人:我們可以使用下面的 SELECT語

34、句:SELECT * FROM PersonsWHERE City NOT LIKE '%lon%'結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing«Previous Page*Next PageSQL通配符Previous PageSQL通配符。Next Page在搜索數(shù)據(jù)庫中的數(shù)據(jù)時(shí),您可以使用SQL通配符在搜索數(shù)據(jù)庫中的數(shù)據(jù)時(shí),SQL通配符可以替代一個(gè)或多個(gè)字符SQL通配符必須與LIKE運(yùn)算符一起使用在SQL中,可

35、使用以下通配符:通配符描述%替代一個(gè)或多個(gè)字符僅替代一個(gè)字符charlist字符列中的任何單一字符Fcharlist不在字符列中的任何單一字符或者!charlist原始的表(用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing使用%通配符例子1現(xiàn)在,我們希望從上面的 "Persons" 表中選取居住在以"Ne"開始的城市里的人

36、:我們可以使用下面的 SELECT語句:SELECT * FROM PersonsWHERE City LIKE 'Ne%'結(jié)果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子2通配符描述替代一個(gè)或多個(gè)字符僅替代一個(gè)字符字符列中的任何單一字符不在字符列中的任何單一字符charlistAcharlist或者icharlist原始的表(用在例子中的):Persons 表:IdLastNameFirstNameAddress1 Adams2 Bush3 Carter使用%通配符例子1現(xiàn)在,我們希望從上面

37、的JohnGeorgeThomas"Persons" 表中選取居住在以O(shè)xford StreetCityLondonFifth AvenueChangan Street"Ne"開始的城市里的人New YorkBeijing我們可以使用下面的 SELECT語句:SELECT * FROM PersonsWHERE City LIKE 'Ne%'結(jié)果集:IdLastNameFirstNameAddress2BushGeorgeFifth AvenueCityNew YorkIdLastNameFirstNameAddressCity3Cart

38、erThomasChangan StreetBeijing使用charlist 通配符例子1現(xiàn)在,我們希望從上面的"Persons" 表中選取居住的城市以"A"或"L"或"N"開頭的人:我們可以使用下面的SELECT語句:SELECT * FROM Persons WHERE City LIKE 'ALN%'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York例子2

39、現(xiàn)在,我們希望從上面的"Persons" 表中選取居住的城市不以"A"或"L"或"N"開頭的人:我們可以使用下面的 SELECT語句:SELECT * FROM PersonsWHERE City LIKE '!ALN%'IL “ 結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijingPrevious PageNext PageSQL IN操作符Previous PageNext PageIN操作符IN操作符允許我們?cè)?/p>

40、 WHERE子句中規(guī)定多個(gè)值。SQL IN 語法SELECT column_name(s)I FROM table nameWHERE column_name IN (value1,value2,.)原始的表(在實(shí)例中使用:)Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingIN操作符實(shí)例現(xiàn)在,我們希望從上表中選取姓氏為Adams 和Carter的人:我們可以使用下面的 SELE

41、CT語句:.SELECT * FROM PersonsiI WHERE LastName IN ('Adams','Carter')結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon3CarterThomasChangan StreetBeijingPrevious PageNext PageSQL BETWEE操作符Previous PageNext PageBETWEEN 操作符在WHERE 子句中使用,作用是選取介于兩個(gè)值之間的數(shù)據(jù)范圍。BETWEEN 操作符操作符BETWEEN

42、. AND 會(huì)選取介于兩個(gè)值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期。SQL BETWEEN 語法SELECT column_name(s)FROM table nameWHERE column nameBETWEEN value1 AND value2原始的表(在實(shí)例中使用:)Persons 表:IdLastNameFirstNameAddressCity1Adams1JohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10

43、BeijingBETWEEN 操作符實(shí)例如需以字母順序顯示介于"Adams"(包括)和"Carter"(不包括)之間的人,請(qǐng)使用下面的 SQL :SELECT * FROM PersonsrWHERE LastNameBETWEENAdams'AND'Carter'結(jié)果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York重要事項(xiàng):不同的數(shù)據(jù)庫對(duì)BETWEEN.AND操作符的處理方式是有差異的。某些數(shù)據(jù)

44、庫會(huì)列出介于"Adams" 和"Carter" 之間的人,但不包括"Adams" 和"Carter"某些數(shù)據(jù)庫會(huì)列出介于"Adams"和"Carter" 之間并包括 "Adams" 和"Carter" 的人;而另一些數(shù)據(jù)庫會(huì)列出介于"Adams" 和"Carter"之間的人,包括 "Adams",但不包括 "Carter"。所以,請(qǐng)檢查你的數(shù)據(jù)庫是如何處理B

45、ETWEEN.AND 操作符的!實(shí)例2如需使用上面的例子顯示范圍之外的人,請(qǐng)使用NOT操作符:SELECT * FROM Personsf WHERE LastNameNOTBETWEEN 'Adams' AND 'Carter'結(jié)果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10Beijing*Previous PageNext PageSQL Alias (別名)Previous PageNext Page通過使用SQL,可以為列名

46、稱和表名稱指定別名( Alias )SQL Alias表的SQL Alias 語法IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York重要事項(xiàng):不同的數(shù)據(jù)庫對(duì) BETWEEN.AND 操作符的處理方式是有差異的。某些數(shù)據(jù)庫會(huì)列出介于"Adams" 和"Carter" 之間的人,但不包括"Adams" 和"Carter"某些數(shù)據(jù)庫會(huì)列出介于 "Adams" 和"

47、Carter" 之間并包括 "Adams" 和"Carter" 的人;而另一些數(shù)據(jù)庫會(huì)列出介于"Adams" 和"Carter" 之間的人,包括 "Adams",但不包括 "Carter"。所以,請(qǐng)檢查你的數(shù)據(jù)庫是如何處理BETWEEN.AND操作符的!實(shí)例2如需使用上面的例子顯示范圍之外的人,請(qǐng)使用NOT操作符:SELECT * FROM PersonsWHERE LastNameNOTBETWEEN 'Adams' AND 'Carter

48、'結(jié)果集:IdLastNameFirstNameAddress3CarterThomasChangan Street4GatesBillXuanwumen 10Previous PageNext PageCityBeijingBeijingSQL Alias (別名)Previous PageNext Page通過使用SQL ,可以為列名稱和表名稱指定別名( Alias )SQL Alias表的SQL Alias 語法SQL:SELECT LastName AS Family , FirstName AS NameFROM Personsii i iiiihi iiiiiai iina

49、i lllll iiiaii niiai iiiiii n iiibii in in iiiiii i in m mi mi in mi mi uni mi mi lima inn mi結(jié)果:FamilyNameAdamsJohnBushGeorgeCarterThomasPrevious PageNext PageSQL JOIN*Previous Page«Next PageSQL join用于根據(jù)兩個(gè)或多個(gè)表中的列之間的關(guān)系,從這些表中查詢數(shù)據(jù)。Join 和 Key有時(shí)為了得到完整的結(jié)果,我們需要從兩個(gè)或更多的表中獲取結(jié)果。我們就需要執(zhí)行join。數(shù)據(jù)庫中的表可通過鍵將彼此聯(lián)系

50、起來。主鍵(Primary Key )是一個(gè)列,在這個(gè)列中的每一行的值都是唯一的。在表中,每個(gè)主鍵的值都是唯一的。這樣做的目的是在不重復(fù)每個(gè)表中的所有數(shù)據(jù)的情況下,把表間的數(shù)據(jù)交叉捆綁在一起。請(qǐng)看"Persons"表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing請(qǐng)注意,"ld_P"列是Persons 表中的的主鍵。這意味著沒有兩行能夠擁有相同的ld_

51、P。即使兩個(gè)人的姓名完全相同,Id_P也可以區(qū)分他們。接下來請(qǐng)看"Orders" 表:Id_OOrderNoId_P177895324467833224561424562153476465請(qǐng)注意,"Id_O" 列是Orders 表中的的主鍵,同時(shí),"Orders" 表中的"Id_P" 列用于引用"Persons" 表中的人,而無需使用他們的確切姓名。請(qǐng)留意,"Id_P"列把上面的兩個(gè)表聯(lián)系了起來。引用兩個(gè)表我們可以通過引用兩個(gè)表的方式,從兩個(gè)表中獲取數(shù)據(jù):誰訂購了產(chǎn)品,并且他們訂購了什么產(chǎn)品?SELECT Persons.LastName, Persons.FirstName, Ord

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論