>  做開(kāi)發(fā)三年來(lái)(B/S),發(fā)現(xiàn)基于yTestDB]  GO  /******對(duì)象:Table[dbo].[testNull]腳本日期:10/11/200813:45:14******/SETANSI_N">
sql開(kāi)發(fā)中容易忽視的一些小地方--

sql開(kāi)發(fā)中容易忽視的一些小地方--

ID:22372361

大小:74.00 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2018-10-28

sql開(kāi)發(fā)中容易忽視的一些小地方--_第1頁(yè)
sql開(kāi)發(fā)中容易忽視的一些小地方--_第2頁(yè)
sql開(kāi)發(fā)中容易忽視的一些小地方--_第3頁(yè)
sql開(kāi)發(fā)中容易忽視的一些小地方--_第4頁(yè)
sql開(kāi)發(fā)中容易忽視的一些小地方--_第5頁(yè)
資源描述:

《sql開(kāi)發(fā)中容易忽視的一些小地方--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、SQL開(kāi)發(fā)中容易忽視的一些小地方>>  做開(kāi)發(fā)三年來(lái)(B/S),發(fā)現(xiàn)基于yTestDB]  GO  /******對(duì)象:Table[dbo].[testNull]腳本日期:10/11/200813:45:14******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[testNull]([ID][int]IDENTITY(1,1)NOTNULL,[a][nchar](10)COLLATEChinese_PRC_CI_ASNULL

2、,[b][nchar](10)COLLATEChinese_PRC_CI_ASNULL,CONSTRAINT[PK_testNull]PRIMARYKEYCLUSTERED([ID]ASC)ARY])ON[PRIMARY]  插入相關(guān)測(cè)試值:insertintotestNullvalues('1','')insertintotestNull  values('2',null)  1:普通的值一般都可能進(jìn)行運(yùn)算符操作,例如:ID列為int,所以可以這樣:

3、ID=ID+1等,但如果一列的值為null,null+1=null,就是說(shuō)null與任何運(yùn)算符運(yùn)算后都為null,這就是大家說(shuō)的黑洞,會(huì)吃掉所有的東西.  updatetestNull  setb=b+1  e='張三',如果sUserName的值為null,要想找出所有名字為null的記錄時(shí),不能這樣用:sUserName=null,因?yàn)閚ull不是一個(gè)具體的值,任何值與它比較時(shí)都會(huì)返回false.此時(shí)可借用isnull或者是isnotnull.  示例查詢:  1:select*

4、fromtestNulltestNulltestNull它的返回值為21  2:selectcount(*),count(isnull(b,''))fromtestNull它的返回值為22  結(jié)論:對(duì)于列包含null時(shí),統(tǒng)計(jì)行數(shù)是可用count(*),或者是先把null值轉(zhuǎn)換成對(duì)應(yīng)的值再統(tǒng)計(jì),例如count(isnull(b,''));  4:對(duì)于in的影響不同.  示例查詢:查詢testNull表中b的值包含在null中的記錄.  select*fromtestNu

5、ll  testNull  11''  22NULL  2:select*fromtestNullorderbyb  22NULL  11''  3:select*fromtestNullorderbybdesc  11''  22NULL  6:當(dāng)使用GROUPBY時(shí),所有的NULL值被認(rèn)為是相等的。這時(shí)先多插入幾條數(shù)據(jù),方便查看結(jié)果.insertintotestNullvalues('3',nu123下一頁(yè)>>>>這篇文章來(lái)自..,

6、。ll)values('4','4')select*fromtestNullselectcount(b)fromtestNullgroupbyb  返回結(jié)果:  011  結(jié)論:可見(jiàn)在groupby的時(shí)候,null視為等同.  7:永遠(yuǎn)不會(huì)有什么數(shù)據(jù)等于NULL。1不等于NULL,2也一樣。但NULL也不等于NULL。所以我們只能比較它是或不是?! 】偨Y(jié):SQL中提供了如此眾多的存儲(chǔ)過(guò)程,函數(shù)供我們調(diào)用,而我們又真正的理解幾個(gè)呢?只有真正了解它們,才會(huì)對(duì)開(kāi)發(fā)中出現(xiàn)的種

7、種問(wèn)題迅速找出問(wèn)題所在并解決它.  表聯(lián)接查詢  為了說(shuō)明問(wèn)題,我創(chuàng)建了兩個(gè)表,分別是學(xué)生信息表(student),班級(jí)表(classInfo).相關(guān)字段說(shuō)明本人以SQL創(chuàng)建腳本說(shuō)明:  測(cè)試環(huán)境:SQL2005CREATETABLE[dbo].[student]([ID][int]IDENTITY(1,1)NOTNULL,[sUserName][nchar](10)COLLATEChinese_PRC_CI_ASNULL,--姓名[sAddress][varchar](200)COLLATEChi

8、nese_PRC_CI_ASNULL,--地址[classID][int]NULL,--班級(jí)[create_date][datetime]NULLCONSTRAINT[DF_student_create_date]DEFAULT(getdate())--入班時(shí)間)ON[PRIMARY]  學(xué)生表記錄:插入數(shù)據(jù)999999行.可以說(shuō)的上是一個(gè)不大不小的表.CREATETABLE[dbo].[classInfo]([classID][int]IDENTITY(1,1)NO

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。