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

下載本文檔

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

文檔簡介

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

目錄

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

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

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

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

數(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ù)類型Decimal/Numeric、Floact、Realdecimal和numeric這兩種數(shù)據(jù)類型是等效的。都有兩個參數(shù):p(精度)和s(小數(shù)位數(shù))。指定小數(shù)點左邊和右邊可以存儲的十進制數(shù)字的最大個數(shù),p必須是從1到38之間的值。s指定小數(shù)點右邊可以存儲的十進制數(shù)字的最大個數(shù),s必須是從0到p之間的值,默認小數(shù)位數(shù)是0。float和realfloat:從-1.79^308到1.79^308之間的浮點數(shù)字數(shù)據(jù)。

real:從-3.40^38到3.40^38之間的浮點數(shù)字數(shù)據(jù)。在SQLServer中,real的同義詞為float(24)。

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

FROM{<table_source>}[,…n]

WHERE<search_condition>PartialSyntax1SELECTStatementSelectListWHEREFROM指定列employeeidlastnamefirstnametitle1DavolioNancySalesRepresentative2FullerAndrewVicePresident,Sales3LeverlingJanetSalesRepresentative4PeacockMargaretSalesRepresentative5BuchananStevenSalesManager6SuyamaMichaelSalesRepresentative7KingRobertSalesRepresentative8CallahanLauraInsideSalesCoordinator9DodsworthAnneSalesRepresentativeUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesGOWHERE———過濾濾行employeeidlastnamefirstnametitle5BuchananStevenSalesManagerUSEnorthwindSELECTemployeeid,lastname,firstname,titleFROMemployeesWHEREemployeeid=5GO修改列名名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)SELECTa.*fromauthorsasa2)SELECTa.*fromauthorsa3)selectb.*from(select*fromauthors)asbInsert單行數(shù)據(jù)據(jù)INSERT……VALUES多行數(shù)據(jù)據(jù)INSERT……SELECTSELECTINTO插入部分數(shù)據(jù)據(jù)使用默認插入入數(shù)據(jù)插入單行數(shù)據(jù)據(jù)語法INSERTINTO表名[列名序列列]VALUES(值序列列)例子USEnorthwind

INSERTINTOorders

(ID,quantity,note))VALUES(1,10,’NewOrder’)GODELETE語法DELETEFROM表名[WHERE刪除條條件]例子USEnorthwind

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

SELECT語句句中使用ALL或DISTINCT選項來顯示示表中符合條條件的所有行行或刪除其中中重復(fù)的數(shù)據(jù)據(jù)行,默認為為ALL。使用DISTINCT選選項時,對于于所有重復(fù)的的數(shù)據(jù)行在SELECT返回的結(jié)果果集合中只保保留一行。2、限制制返回的行數(shù)數(shù)

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

表示示一百分數(shù),,指定返回的的行數(shù)等于總總行數(shù)的百分分之幾。例例如:

SELECTTOP2*

FROMtesttable

SELECTTOP20PERCENT*

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

空值值判斷符(判判斷表達式是是否為空)::ISNULL、NOTISNULL邏邏輯運算符符(用于多條條件的邏輯連連接):NOT、AND、OR1、范圍運算算符例:ageBETWEEN10AND30相相當于age>=10ANDage<=30

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

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

varchar、text、ntext、datetime和smalldatetime等等類型查詢。??罩蹬袛喾齏HEREageISNULL邏輯運算符::優(yōu)先級為NOT、AND、OR(四)查詢結(jié)結(jié)果排序使用ORDERBY子子句對查詢返返回的結(jié)果按按一列或多列列排序。ORDERBY子句的語語法格式為::ORDERBY{column_name[ASC|DESC]}[,…n]其中ASC表表示升序,為為默認值,DESC為降降序。例如::SELECT*

FROMusertable

ORDERBYagedesc,useridASC

另外,,可以根據(jù)表表達式進行排排序。ISNULL(check_expression,replacement_value)參數(shù)

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

replacement_value

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

注釋釋

如果check_expression不為NULL,那那么返回該表表達式的值;;否則返回replacement_value。示示例A.將將ISNULL與AVG一一起使用下下面的示例查查找所有書的的平均價格,,用值$10.00替替換titles表表的price列列中的所有NULL條條目。USEpubsGOSELECTAVG(ISNULL(price,$10.00))FROMtitlesGO

下面是結(jié)結(jié)果集:--------------------------14.24(1row(s)affected)

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

USEpubsGOSELECTSUBSTRING(title,1,15)ASTitle,typeASType,ISNULL(price,0.00)ASPriceFROMtitlesGO二、聯(lián)合查詢詢內(nèi)連接左連接右連接關(guān)鍵詞innerjoin、leftjoin、rightjoinJoin用途:當你要從兩個個或者以上的的表中選取結(jié)結(jié)果集時,你你就會用到JOIN。例:“Employees””表中的數(shù)據(jù)據(jù)如下,(其其中ID為主主鍵):IDName01Hansen,Ola02Svendson,Tove03Svendson,Stephen04Pettersen,Kari“Orders”表中的的數(shù)據(jù)如下::IDProduct01Printer03Table03Chair用Employees的的ID和Orders的的ID相關(guān)聯(lián)聯(lián)選取數(shù)據(jù)::SELECTEmployees.Name,Orders.ProductFROMEmployees,OrdersWHEREEmployees.ID=Orders.ID返回結(jié)果:NameProductHansen,OlaPrinterSvendson,StephenTableSvendson,StephenChair或者你也可以以用JOIN關(guān)鍵字來完完成上面的操操作:SELECTEmployees.Name,Orders.ProductFROMEmployeesINNERJOINOrdersONEmployees.ID=Orders.IDINNERJOIN的的語法:SELECTfield1,field2,field3FROMfirst_tableINNERJOINsecond_tableONfirst_table.keyfield=second_table.foreign_keyfield解釋:INNERJOIN返回的的結(jié)果集是兩兩個表中所有有相匹配的數(shù)數(shù)據(jù)。LEFTJOIN的語語法: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”中中沒有相匹配配的數(shù)據(jù)。RIGHTJOIN的的語法: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_ta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論