數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程課件_第1頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程課件_第2頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程課件_第3頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程課件_第4頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程課件_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)一、SQLserverSQL語(yǔ)言概要二、如何讀懂?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)圖三、如何使用SQLServer企業(yè)管理器、查詢分析器四、.NET中對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)提供的對(duì)象(熟悉DataSet、DataTable、DataRow對(duì)象)五、使用SqlHelper并創(chuàng)建DBAccess實(shí)現(xiàn)數(shù)據(jù)庫(kù)封裝六、如何使用DBAccess提供的方法

目錄一、SQLserverSQL語(yǔ)言概要目錄

一、SQL語(yǔ)言概要一、數(shù)據(jù)類型二、SQL語(yǔ)句

一、SQL語(yǔ)言概要一、數(shù)據(jù)類型

數(shù)據(jù)類型Char和Varcharchar和varchar的長(zhǎng)度都在1到8000之間,它們的區(qū)別在于char是定長(zhǎng)字符數(shù)據(jù),而varchar是變長(zhǎng)字符數(shù)據(jù)。所謂定長(zhǎng)就是長(zhǎng)度固定的,當(dāng)輸入的數(shù)據(jù)長(zhǎng)度沒(méi)有達(dá)到指定的長(zhǎng)度時(shí)將自動(dòng)以英文空格在其后面填充,使長(zhǎng)度達(dá)到相應(yīng)的長(zhǎng)度;而變長(zhǎng)字符數(shù)據(jù)則不會(huì)以空格填充。text存儲(chǔ)可變長(zhǎng)度的非Unicode數(shù)據(jù),最大長(zhǎng)度為2^31-1(2,147,483,647)個(gè)字符。數(shù)據(jù)類型Char和Varchar

數(shù)據(jù)類型Nchar、Nvarcharnvarchar、nchar從名稱上看只是多了個(gè)字母“n”,它表示存儲(chǔ)的是Unicode數(shù)據(jù)類型的字符。字符中,英文字符只需要一個(gè)字節(jié)存儲(chǔ)就足夠了,但漢字眾多,需要兩個(gè)字節(jié)存儲(chǔ),英文與漢字同時(shí)存在時(shí)容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問(wèn)題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。nchar、nvarchar的長(zhǎng)度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲(chǔ)4000個(gè)字符,不論是英文還是漢字;而char、varchar最多能存儲(chǔ)8000個(gè)英文,4000個(gè)漢字??梢钥闯鍪褂胣char、nvarchar數(shù)據(jù)類型時(shí)不用擔(dān)心輸入的字符是英文還是漢字,較為方便,但在存儲(chǔ)英文時(shí)數(shù)量上有些損失。數(shù)據(jù)類型Nchar、Nvarchar

數(shù)據(jù)類型DateTimedatetime:從1753年1月1日到9999年12月31日的日期和時(shí)間數(shù)據(jù),精確到百分之三秒。數(shù)據(jù)類型DateTime

數(shù)據(jù)類型BigInt、Int、SmallInt、TinyIntbigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數(shù)據(jù)。

int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數(shù)據(jù)。

smallint:從-2^15(-32,768)到2^15-1(32,767)的整數(shù)數(shù)據(jù)。

tinyint:從0到255的整數(shù)數(shù)據(jù)。

Bitbit:1或0的整數(shù)數(shù)據(jù)。數(shù)據(jù)類型BigInt、Int、Smal數(shù)據(jù)類型Decimal/Numeric、Floact、Realdecimal和numeric這兩種數(shù)據(jù)類型是等效的。都有兩個(gè)參數(shù):p(精度)和s(小數(shù)位數(shù))。指定小數(shù)點(diǎn)左邊和右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù),p必須是從1到38之間的值。s指定小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù),s必須是從0到p之間的值,默認(rèn)小數(shù)位數(shù)是0。float和realfloat:從-1.79^308到1.79^308之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。

real:從-3.40^38到3.40^38之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。在SQLServer中,real的同義詞為float(24)。數(shù)據(jù)類型Decimal/Numeric

SQL語(yǔ)句Select語(yǔ)句Insert語(yǔ)句Update語(yǔ)句Delete語(yǔ)句其他常用的SQL語(yǔ)句SQL語(yǔ)句Select語(yǔ)句SELECT[ALL|DISTINCT]<select_list>

FROM{<table_source>}[,…n]

WHERE<search_condition>PartialSyntax1SELECTStatementSelectListWHEREFROMSELECT[ALL|DISTINCT]<selec指定列employeeidlastnamefirstnametitle1DavolioNancySalesRepresentative2FullerAndrewVicePresident,Sales3LeverlingJanetSalesRepresentative4PeacockMargaretSalesRepresentative5BuchananStevenSalesManager6SuyamaMichaelSalesRepresentative7KingRobertSalesRepresentative8CallahanLauraInsideSalesCoordinator9DodsworthAnneSalesRepresentativeUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesGO指定列employeeidlastnaWHERE——過(guò)濾行employeeidlastnamefirstnametitle5BuchananStevenSalesManagerUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesWHEREemployeeid=5GOWHERE——過(guò)濾行employeei修改列名1)SELECTau_fname,au_lname,city,state, phoneASTelephoneFROMauthors--推薦使用2)SELECTau_fname,au_lname,city,state, Telephone=phoneFROMauthors3)SELECTau_fname,au_lname,city,state, phoneTelephoneFROMauthors修改列名1)SELECTau_fnam更改表名1)SELECTa.*fromauthorsasa2)SELECTa.*fromauthorsa3)selectb.*from(select*fromauthors)asb更改表名1)SELECTa.*froInsert單行數(shù)據(jù)INSERT…VALUES多行數(shù)據(jù)INSERT…SELECTSELECTINTO插入部分?jǐn)?shù)據(jù)使用默認(rèn)插入數(shù)據(jù)Insert單行數(shù)據(jù)插入單行數(shù)據(jù)語(yǔ)法INSERTINTO表名[列名序列]VALUES(值序列)例子USEnorthwind

INSERTINTOorders

(ID,quantity,note)VALUES(1,10,’NewOrder’)GO插入單行數(shù)據(jù)語(yǔ)法USEnorthwind

INSERTIDELETE語(yǔ)法DELETEFROM表名[WHERE刪除條件]例子USEnorthwind

DELETEfromordersGODELETE語(yǔ)法USEnorthwind

DELETEfUSEnorthwindUPDATEproducts

SETunitprice=(unitprice*1.1)GOUpdate語(yǔ)法UPDATE表名SET列名=常量值|表達(dá)式[WHERE更新條件]例子USEnorthwindUpdate語(yǔ)法其他有用的SQL刪除重復(fù)行限制返回行數(shù)IN(NOTIN)LIKEISNULL查詢結(jié)果排序ISNULL()函數(shù)聯(lián)合查詢其他有用的SQL刪除重復(fù)行1、刪除重復(fù)行

SELECT語(yǔ)句中使用ALL或DISTINCT選項(xiàng)來(lái)顯示表中符合條件的所有行或刪除其中重復(fù)的數(shù)據(jù)行,默認(rèn)為ALL。 使用DISTINCT選項(xiàng)時(shí),對(duì)于所有重復(fù)的數(shù)據(jù)行在SELECT返回的結(jié)果集合中只保留一行。

2、限制返回的行數(shù)

使用TOPn[PERCENT]選項(xiàng)限制返回的數(shù)據(jù)行數(shù),TOPn說(shuō)明返回n行,而TOPnPERCENT時(shí),說(shuō)明n是

表示一百分?jǐn)?shù),指定返回的行數(shù)等于總行數(shù)的百分之幾。

例如:

SELECTTOP2*

FROMtesttable

SELECTTOP20PERCENT*

FROMtesttable

1、刪除重復(fù)行

SELECT語(yǔ)句中使用ALL或DISTNOTIN(項(xiàng)1,項(xiàng)2……)

模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOTLIKE

空值判斷符(判斷表達(dá)式是否為空):ISNULL、NOTISNULL

邏輯運(yùn)算符(用于多條件的邏輯連接):NOT、AND、OR

1、范圍運(yùn)算符例:ageBETWEEN10AND30相當(dāng)于age>=10ANDage<=30

2、列表運(yùn)算符例:countryIN(‘Germany’,‘China’)

3、模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配??捎糜赾har、

varchar、text、ntext、datetime和smalldatetime等類型查詢。

空值判斷符例WHEREageISNULL

邏輯運(yùn)算符:優(yōu)先級(jí)為NOT、AND、OR

NOTIN(項(xiàng)1,項(xiàng)2……)

(四)查詢結(jié)果排序

使用ORDERBY子句對(duì)查詢返回的結(jié)果按一列或多列排序。ORDERBY子句的語(yǔ)法格式為:

ORDERBY{column_name[ASC|DESC]}[,…n]

其中ASC表示升序,為默認(rèn)值,DESC為降序。例如:

SELECT*

FROMusertable

ORDERBYagedesc,useridASC

另外,可以根據(jù)表達(dá)式進(jìn)行排序。

數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程ISNULL(check_expression,replacement_value)

參數(shù)

check_expression

將被檢查是否為NULL的表達(dá)式。check_expression可以是任何類型的。

replacement_value

在check_expression為NULL時(shí)將返回的表達(dá)式。replacement_value必須與check_expresssion具有相同的類型。

返回類型

返回與check_expression相同的類型。

注釋

如果check_expression不為NULL,那么返回該表達(dá)式的值;否則返回replacement_value。

示例A.將ISNULL與AVG一起使用

下面的示例查找所有書(shū)的平均價(jià)格,用值$10.00替換titles表的price列中的所有NULL條目。

USEpubsGOSELECTAVG(ISNULL(price,$10.00))FROMtitlesGO

下面是結(jié)果集:

--------------------------14.24(1row(s)affected)

B.使用ISNULL

下面的示例為titles表中的所有書(shū)選擇書(shū)名、類型及價(jià)格。如果一個(gè)書(shū)名的價(jià)格是NULL,那么在結(jié)果集中顯示的價(jià)格為0.00。

USEpubsGOSELECTSUBSTRING(title,1,15)ASTitle,typeASType,ISNULL(price,0.00)ASPriceFROMtitlesGO

ISNULL(check_expression二、聯(lián)合查詢內(nèi)連接左連接右連接關(guān)鍵詞innerjoin、leftjoin、rightjoin二、聯(lián)合查詢Join用途:當(dāng)你要從兩個(gè)或者以上的表中選取結(jié)果集時(shí),你就會(huì)用到JOIN。例:“Employees”表中的數(shù)據(jù)如下,(其中ID為主鍵):IDName01Hansen,Ola02Svendson,Tove03Svendson,Stephen04Pettersen,Kari“Orders”表中的數(shù)據(jù)如下:IDProduct01Printer03Table03Chair用Employees的ID和Orders的ID相關(guān)聯(lián)選取數(shù)據(jù):JoinSELECTEmployees.Name,Orders.ProductFROMEmployees,OrdersWHEREEmployees.ID=Orders.ID返回結(jié)果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair或者你也可以用JOIN關(guān)鍵字來(lái)完成上面的操作:SELECTEmployees.Name,Orders.ProductFROMEmployeesINNERJOINOrdersONEmployees.ID=Orders.ID

INNERJOIN的語(yǔ)法:SELECTfield1,field2,field3FROMfirst_tableINNERJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

解釋:INNERJOIN返回的結(jié)果集是兩個(gè)表中所有相匹配的數(shù)據(jù)。SELECTEmployees.Name,Orders.LEFTJOIN的語(yǔ)法:SELECTfield1,field2,field3FROMfirst_tableLEFTJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

用”Employees”表去左外聯(lián)結(jié)”O(jiān)rders”表去找出相關(guān)數(shù)據(jù):SELECTEmployees.Name,Orders.ProductFROMEmployeesLEFTJOINOrdersONEmployees.ID=Orders.ID

返回結(jié)果:NameProductHansen,OlaPrinterSvendson,ToveSvendson,StephenTableSvendson,StephenChairPettersen,Kari

解釋:LEFTJOIN返回”first_table”中所有的行盡管在”second_table”中沒(méi)有相匹配的數(shù)據(jù)。LEFTJOIN的語(yǔ)法:RIGHTJOIN的語(yǔ)法:SELECTfield1,field2,field3FROMfirst_tableRIGHTJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

用”Employees”表去右外聯(lián)結(jié)”O(jiān)rders”表去找出相關(guān)數(shù)據(jù):SELECTEmployees.Name,Orders.ProductFROMEmployeesRIGHTJOINOrdersONEmployees.ID=Orders.ID

返回結(jié)果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair解釋:RIGHTJOIN返回”second_table”中所有的行盡管在”first_table”中沒(méi)有相匹配的數(shù)據(jù)。RIGHTJOIN的語(yǔ)法:

二、數(shù)據(jù)庫(kù)設(shè)計(jì)圖講解

二、數(shù)據(jù)庫(kù)設(shè)計(jì)圖講解數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程

三、使用企業(yè)管理器和查詢分析器(實(shí)例)

三、使用企業(yè)管理器和查詢分析器(

四、ADO.NETDataSetDataSet對(duì)象是支持ADO.NET的斷開(kāi)式、分布式數(shù)據(jù)方案的核心對(duì)象。DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,無(wú)論數(shù)據(jù)源是什么,它都會(huì)提供一致的關(guān)系編程模型。一個(gè)ADO.NETDataSet包含DataTable對(duì)象所表示的零個(gè)或更多個(gè)表的集合。DataTableCollection包含DataSet中的所有DataTable對(duì)象。DataTable在System.Data命名空間中定義,表示內(nèi)存駐留數(shù)據(jù)表。它包含DataColumnCollection所表示的列和ConstraintCollection所表示的約束的集合,這些列和約束一起定義了該表的架構(gòu)。DataTable還包含DataRowCollection所表示的行的集合,而DataRowCollection則包含表中的數(shù)據(jù)。DataTableDataRow(實(shí)例)

四、ADO.NETDataSet

五、使用SqlHelper并創(chuàng)建DBAccess實(shí)現(xiàn)數(shù)據(jù)庫(kù)封裝

實(shí)例

五、使用SqlHelper并創(chuàng)建

六、如何使用DBAccess提供的方法(實(shí)例)DataGrid控件的使用

六、如何使用DBAccess提供學(xué)習(xí)sqlserver有用的網(wǎng)址學(xué)習(xí)sqlserver有用的網(wǎng)址謝謝!

Thanksforyourattention!

謝謝!Thanksforyouratte演講完畢,謝謝觀看!演講完畢,謝謝觀看!數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)一、SQLserverSQL語(yǔ)言概要二、如何讀懂?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)圖三、如何使用SQLServer企業(yè)管理器、查詢分析器四、.NET中對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)提供的對(duì)象(熟悉DataSet、DataTable、DataRow對(duì)象)五、使用SqlHelper并創(chuàng)建DBAccess實(shí)現(xiàn)數(shù)據(jù)庫(kù)封裝六、如何使用DBAccess提供的方法

目錄一、SQLserverSQL語(yǔ)言概要目錄

一、SQL語(yǔ)言概要一、數(shù)據(jù)類型二、SQL語(yǔ)句

一、SQL語(yǔ)言概要一、數(shù)據(jù)類型

數(shù)據(jù)類型Char和Varcharchar和varchar的長(zhǎng)度都在1到8000之間,它們的區(qū)別在于char是定長(zhǎng)字符數(shù)據(jù),而varchar是變長(zhǎng)字符數(shù)據(jù)。所謂定長(zhǎng)就是長(zhǎng)度固定的,當(dāng)輸入的數(shù)據(jù)長(zhǎng)度沒(méi)有達(dá)到指定的長(zhǎng)度時(shí)將自動(dòng)以英文空格在其后面填充,使長(zhǎng)度達(dá)到相應(yīng)的長(zhǎng)度;而變長(zhǎng)字符數(shù)據(jù)則不會(huì)以空格填充。text存儲(chǔ)可變長(zhǎng)度的非Unicode數(shù)據(jù),最大長(zhǎng)度為2^31-1(2,147,483,647)個(gè)字符。數(shù)據(jù)類型Char和Varchar

數(shù)據(jù)類型Nchar、Nvarcharnvarchar、nchar從名稱上看只是多了個(gè)字母“n”,它表示存儲(chǔ)的是Unicode數(shù)據(jù)類型的字符。字符中,英文字符只需要一個(gè)字節(jié)存儲(chǔ)就足夠了,但漢字眾多,需要兩個(gè)字節(jié)存儲(chǔ),英文與漢字同時(shí)存在時(shí)容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問(wèn)題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。nchar、nvarchar的長(zhǎng)度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲(chǔ)4000個(gè)字符,不論是英文還是漢字;而char、varchar最多能存儲(chǔ)8000個(gè)英文,4000個(gè)漢字??梢钥闯鍪褂胣char、nvarchar數(shù)據(jù)類型時(shí)不用擔(dān)心輸入的字符是英文還是漢字,較為方便,但在存儲(chǔ)英文時(shí)數(shù)量上有些損失。數(shù)據(jù)類型Nchar、Nvarchar

數(shù)據(jù)類型DateTimedatetime:從1753年1月1日到9999年12月31日的日期和時(shí)間數(shù)據(jù),精確到百分之三秒。數(shù)據(jù)類型DateTime

數(shù)據(jù)類型BigInt、Int、SmallInt、TinyIntbigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數(shù)據(jù)。

int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數(shù)據(jù)。

smallint:從-2^15(-32,768)到2^15-1(32,767)的整數(shù)數(shù)據(jù)。

tinyint:從0到255的整數(shù)數(shù)據(jù)。

Bitbit:1或0的整數(shù)數(shù)據(jù)。數(shù)據(jù)類型BigInt、Int、Smal數(shù)據(jù)類型Decimal/Numeric、Floact、Realdecimal和numeric這兩種數(shù)據(jù)類型是等效的。都有兩個(gè)參數(shù):p(精度)和s(小數(shù)位數(shù))。指定小數(shù)點(diǎn)左邊和右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù),p必須是從1到38之間的值。s指定小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù),s必須是從0到p之間的值,默認(rèn)小數(shù)位數(shù)是0。float和realfloat:從-1.79^308到1.79^308之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。

real:從-3.40^38到3.40^38之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。在SQLServer中,real的同義詞為float(24)。數(shù)據(jù)類型Decimal/Numeric

SQL語(yǔ)句Select語(yǔ)句Insert語(yǔ)句Update語(yǔ)句Delete語(yǔ)句其他常用的SQL語(yǔ)句SQL語(yǔ)句Select語(yǔ)句SELECT[ALL|DISTINCT]<select_list>

FROM{<table_source>}[,…n]

WHERE<search_condition>PartialSyntax1SELECTStatementSelectListWHEREFROMSELECT[ALL|DISTINCT]<selec指定列employeeidlastnamefirstnametitle1DavolioNancySalesRepresentative2FullerAndrewVicePresident,Sales3LeverlingJanetSalesRepresentative4PeacockMargaretSalesRepresentative5BuchananStevenSalesManager6SuyamaMichaelSalesRepresentative7KingRobertSalesRepresentative8CallahanLauraInsideSalesCoordinator9DodsworthAnneSalesRepresentativeUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesGO指定列employeeidlastnaWHERE——過(guò)濾行employeeidlastnamefirstnametitle5BuchananStevenSalesManagerUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesWHEREemployeeid=5GOWHERE——過(guò)濾行employeei修改列名1)SELECTau_fname,au_lname,city,state, phoneASTelephoneFROMauthors--推薦使用2)SELECTau_fname,au_lname,city,state, Telephone=phoneFROMauthors3)SELECTau_fname,au_lname,city,state, phoneTelephoneFROMauthors修改列名1)SELECTau_fnam更改表名1)SELECTa.*fromauthorsasa2)SELECTa.*fromauthorsa3)selectb.*from(select*fromauthors)asb更改表名1)SELECTa.*froInsert單行數(shù)據(jù)INSERT…VALUES多行數(shù)據(jù)INSERT…SELECTSELECTINTO插入部分?jǐn)?shù)據(jù)使用默認(rèn)插入數(shù)據(jù)Insert單行數(shù)據(jù)插入單行數(shù)據(jù)語(yǔ)法INSERTINTO表名[列名序列]VALUES(值序列)例子USEnorthwind

INSERTINTOorders

(ID,quantity,note)VALUES(1,10,’NewOrder’)GO插入單行數(shù)據(jù)語(yǔ)法USEnorthwind

INSERTIDELETE語(yǔ)法DELETEFROM表名[WHERE刪除條件]例子USEnorthwind

DELETEfromordersGODELETE語(yǔ)法USEnorthwind

DELETEfUSEnorthwindUPDATEproducts

SETunitprice=(unitprice*1.1)GOUpdate語(yǔ)法UPDATE表名SET列名=常量值|表達(dá)式[WHERE更新條件]例子USEnorthwindUpdate語(yǔ)法其他有用的SQL刪除重復(fù)行限制返回行數(shù)IN(NOTIN)LIKEISNULL查詢結(jié)果排序ISNULL()函數(shù)聯(lián)合查詢其他有用的SQL刪除重復(fù)行1、刪除重復(fù)行

SELECT語(yǔ)句中使用ALL或DISTINCT選項(xiàng)來(lái)顯示表中符合條件的所有行或刪除其中重復(fù)的數(shù)據(jù)行,默認(rèn)為ALL。 使用DISTINCT選項(xiàng)時(shí),對(duì)于所有重復(fù)的數(shù)據(jù)行在SELECT返回的結(jié)果集合中只保留一行。

2、限制返回的行數(shù)

使用TOPn[PERCENT]選項(xiàng)限制返回的數(shù)據(jù)行數(shù),TOPn說(shuō)明返回n行,而TOPnPERCENT時(shí),說(shuō)明n是

表示一百分?jǐn)?shù),指定返回的行數(shù)等于總行數(shù)的百分之幾。

例如:

SELECTTOP2*

FROMtesttable

SELECTTOP20PERCENT*

FROMtesttable

1、刪除重復(fù)行

SELECT語(yǔ)句中使用ALL或DISTNOTIN(項(xiàng)1,項(xiàng)2……)

模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOTLIKE

空值判斷符(判斷表達(dá)式是否為空):ISNULL、NOTISNULL

邏輯運(yùn)算符(用于多條件的邏輯連接):NOT、AND、OR

1、范圍運(yùn)算符例:ageBETWEEN10AND30相當(dāng)于age>=10ANDage<=30

2、列表運(yùn)算符例:countryIN(‘Germany’,‘China’)

3、模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配??捎糜赾har、

varchar、text、ntext、datetime和smalldatetime等類型查詢。

空值判斷符例WHEREageISNULL

邏輯運(yùn)算符:優(yōu)先級(jí)為NOT、AND、OR

NOTIN(項(xiàng)1,項(xiàng)2……)

(四)查詢結(jié)果排序

使用ORDERBY子句對(duì)查詢返回的結(jié)果按一列或多列排序。ORDERBY子句的語(yǔ)法格式為:

ORDERBY{column_name[ASC|DESC]}[,…n]

其中ASC表示升序,為默認(rèn)值,DESC為降序。例如:

SELECT*

FROMusertable

ORDERBYagedesc,useridASC

另外,可以根據(jù)表達(dá)式進(jìn)行排序。

數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)培訓(xùn)課程ISNULL(check_expression,replacement_value)

參數(shù)

check_expression

將被檢查是否為NULL的表達(dá)式。check_expression可以是任何類型的。

replacement_value

在check_expression為NULL時(shí)將返回的表達(dá)式。replacement_value必須與check_expresssion具有相同的類型。

返回類型

返回與check_expression相同的類型。

注釋

如果check_expression不為NULL,那么返回該表達(dá)式的值;否則返回replacement_value。

示例A.將ISNULL與AVG一起使用

下面的示例查找所有書(shū)的平均價(jià)格,用值$10.00替換titles表的price列中的所有NULL條目。

USEpubsGOSELECTAVG(ISNULL(price,$10.00))FROMtitlesGO

下面是結(jié)果集:

--------------------------14.24(1row(s)affected)

B.使用ISNULL

下面的示例為titles表中的所有書(shū)選擇書(shū)名、類型及價(jià)格。如果一個(gè)書(shū)名的價(jià)格是NULL,那么在結(jié)果集中顯示的價(jià)格為0.00。

USEpubsGOSELECTSUBSTRING(title,1,15)ASTitle,typeASType,ISNULL(price,0.00)ASPriceFROMtitlesGO

ISNULL(check_expression二、聯(lián)合查詢內(nèi)連接左連接右連接關(guān)鍵詞innerjoin、leftjoin、rightjoin二、聯(lián)合查詢Join用途:當(dāng)你要從兩個(gè)或者以上的表中選取結(jié)果集時(shí),你就會(huì)用到JOIN。例:“Employees”表中的數(shù)據(jù)如下,(其中ID為主鍵):IDName01Hansen,Ola02Svendson,Tove03Svendson,Stephen04Pettersen,Kari“Orders”表中的數(shù)據(jù)如下:IDProduct01Printer03Table03Chair用Employees的ID和Orders的ID相關(guān)聯(lián)選取數(shù)據(jù):JoinSELECTEmployees.Name,Orders.ProductFROMEmployees,OrdersWHEREEmployees.ID=Orders.ID返回結(jié)果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair或者你也可以用JOIN關(guān)鍵字來(lái)完成上面的操作:SELECTEmployees.Name,Orders.ProductFROMEmployeesINNERJOINOrdersONEmployees.ID=Orders.ID

INNERJOIN的語(yǔ)法:SELECTfield1,field2,field3FROMfirst_tableINNERJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

解釋:INNERJOIN返回的結(jié)果集是兩個(gè)表中所有相匹配的數(shù)據(jù)。SELECTEmployees.Name,Orders.LEFTJOIN的語(yǔ)法:SELECTfield1,field2,field3FROMfirst_tableLEFTJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield

用”Employees”表去左外聯(lián)結(jié)”O(jiān)rders”表去找出相關(guān)數(shù)據(jù):SELECTEmployees.Name,Orders.ProductFROMEmployeesLEFTJOINOrdersONEmployees.ID=Orders.ID

返回結(jié)果:Name

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論