日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server的空值處理策略

瀏覽:192日期:2023-10-29 07:48:36
數(shù)據(jù)完整性是任何數(shù)據(jù)庫系統(tǒng)要保證的重點。不管系統(tǒng)計劃得有多好,空數(shù)據(jù)值的問題總是存在。本文探討了在SQL Server中處理這些值時涉及的3個問題:計數(shù)、使用空表值以及外鍵處理。 用COUNT(*)處理空值

大多數(shù)集合函數(shù)都能在計算時消除空值;COUNT函數(shù)則屬于例外。對包含空值的一個列使用COUNT函數(shù),空值會從計算中消除。但假如COUNT函數(shù)使用一個星號,它就計算所有行,而不管是否存在空值。

如果希望COUNT函數(shù)對給定列的所有行(包括空值)進行計數(shù),請使用ISNULL函數(shù)。ISNULL函數(shù)會將空值替換成有效的值。

事實上,對集合函數(shù)來說,如果空值可能導(dǎo)致錯誤結(jié)果,ISNULL函數(shù)就非常有用。記住在使用一個星號時,COUNT函數(shù)會對所有行進行計算。下例演示了空值在AVG和COUNT集合函數(shù)中的影響: SET NOCOUNT ON GO CREATE TABLE xCount (pkey1 INT IDENTITY NOT NULL ;CONSTRAINT pk_xCount PRIMARY KEY, Col1 int NULL) GO INSERT xCount (Col1) VALUES (10) GO INSERT xCount (Col1) VALUES (15) GO INSERT xCount (Col1) VALUES (20) GO INSERT xCount (Col1) VALUES (NULL) GO SELECT AVG(Col1) AvgWithoutIsNullFunctionOnCol1, AVG(ISNULL(Col1,0)) AvgWithIsNullFunctionOnCol1, COUNT(Col1) NoIsNullFunctionOnCol1 , COUNT(ISNULL(Col1,0)) UsingIsNullFunctionOnCol1, Count(*) UsingAsterisk FROM xCount GO DROP TABLE xCount GOOUTPUT:AvgWOIsNullFnctnCol1 AvgWIsNullFnctnCol1 WOIsNullFnctnCol1WIsNullFnctnCol1 UsingAsterisk ---------------- ------------- -------------- ------------ ---------15;;;;;1134;4

恰當(dāng)使用空表值

SQL Server可能出現(xiàn)一種特殊情況:在引用父表的一個表中,因為不允許空值,所以“聲明引用完整性”(DRI)可能不會得到強制。即使父表不包含空值,在子表引用了父表主鍵約束或惟一約束的列中,也可能包含空值。

假如來自父表的值目前未知,就不會有任何問題。例如,父表可能是一個地址表,而子表可能包含聯(lián)系信息。由于許多原因,可能暫時不知道要傳給父表的聯(lián)系地址。這是一種基于時間的問題,空值在其中或許是合適的。

如下例所示,我們創(chuàng)建父表,并在其中插入兩個值。

SET NOCOUNT ON GOCREATE TABLE Parent(pkey1 INT IDENTITY NOT NULL;CONSTRAINT pkParent PRIMARY KEY,col1 INT NULL)GOINSERT Parent (col1) VALUES (284)GOINSERT Parent (col1) VALUES (326)GO

以下代碼則創(chuàng)建子表,并在引用父表的列中插入一個空值。

CREATE TABLE Child (pkey1 INT IDENTITYCONSTRAINT pkChild PRIMARY KEY,Parentpkey1 INT NULLCONSTRAINT fkChildParent FOREIGN KEYREFERENCES Parent(pkey1),col1 INT NULL)GOINSERT Child (Parentpkey1, col1) VALUES (null,2)GO但在以下代碼中,要同時從父表和子表選擇值。雖然父表不包含空值,但在子表引用了父表的那個列中,將允許一個空值。

然后丟棄所有表,清除這個演示所用的數(shù)據(jù)庫對象。

SELECT * FROM ChildGOSELECT * FROM ParentGODROP TABLE Child, ParentGO

在可以為空的外鍵中檢查數(shù)據(jù)的有效性

如果由兩個列共同組成主鍵,而且一個子表將主鍵作為可為空值的外鍵來繼承,就可能得到錯誤的數(shù)據(jù)??稍谝粋€外鍵列中插入有效的值,但在另一個外鍵列中插入空值。然后,可添加一個數(shù)據(jù)表檢查約束,在可為空的外鍵中檢查數(shù)據(jù)的有效性。

任何多列外鍵都可能遇到同樣的問題。所以,你需要添加一個檢查約束來檢測異常。最初,檢查約束將檢查構(gòu)成外鍵的所有列中可能為空的值。檢查約束還要檢查這些列中不能為空的值。如兩個檢查都通過,問題就解決了。

以下示范腳本展示了這樣的一個異常,以及如何用檢查約束來糾正它。

SET NOCOUNT ONGOCREATE TABLE parent (pkey1 INT IDENTITY NOT NULL, pkey2 INTNOT NULL, col1 INT NULL,CONSTRAINT pk_parent PRIMARY KEY NONCLUSTERED ( pkey1, pkey2))GOINSERT parent (pkey2) VALUES ( 2 )INSERT parent (pkey2) VALUES ( 85 )INSERT parent (pkey2) VALUES ( 41 )INSERT parent (pkey2) VALUES ( 11 )GOSELECT * FROM parentGOCREATE TABLE child (cpkey1 INT IDENTITY NOT NULLCONSTRAINT pk_child PRIMARY KEY NONCLUSTERED (cpkey1),pkey1 INT NULL, pkey2 INT NULL, col1 INT NULL,CONSTRAINT fk_parent_child FOREIGN KEY (pkey1, pkey2)REFERENCES parent (pkey1, pkey2))GOINSERT child (pkey1, pkey2) VALUES ( null, 85 )GOSELECT * FROM childGODELETE childGOALTER TABLE child WITH NOCHECKADD CONSTRAINT ck_fk_parent_child CHECK((pkey1 IS NOT NULL AND pkey2 IS NOT NULL) OR(pkey1 IS NULL AND pkey2 IS NULL) )GOINSERT child (pkey1, pkey2) VALUES ( null, 11 )GODROP TABLE child, parentGO

空值是所有數(shù)據(jù)庫開發(fā)者和管理員都要遇到的。所以,要想開發(fā)成功的應(yīng)用程序,必須知道如何處理這些值。本文和你分享了空值處理的一些技巧和技術(shù)。

標(biāo)簽: Sql Server 數(shù)據(jù)庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人欧美一区二区三区的电影| 亚洲欧美视频| a日韩av网址| 国产欧美日韩精品一区二区三区| 一区二区国产在线| 久久国产欧美| 婷婷综合六月| 亚洲啊v在线| 久久午夜视频| 欧美羞羞视频| 国产精品亚洲综合在线观看| 国产精品试看| 99久久久久国产精品| 免费视频一区三区| 国产91在线播放精品| 欧美日韩日本国产亚洲在线 | 久久国产精品美女| 亚洲视频二区| 在线亚洲激情| 亚洲欧美日韩高清在线| 国产日产精品_国产精品毛片| 欧美日韩国产高清| 欧美日韩亚洲国产精品| 日本成人手机在线| 奇米亚洲欧美| 免费成人av在线播放| 亚洲男女av一区二区| 99国产精品免费视频观看| 中文字幕在线视频久| 特黄毛片在线观看| 欧美不卡高清| 美国欧美日韩国产在线播放| 免费欧美日韩| 日韩精品91亚洲二区在线观看| 欧美搞黄网站| 国产成人精品一区二区免费看京 | 亚洲精品国产偷自在线观看| 99在线精品免费视频九九视| 婷婷视频一区二区三区| 精品一区二区三区亚洲| 日韩精品成人| 精品中文字幕一区二区三区| 你懂的国产精品| 美女久久一区| 久久中文字幕二区| 国产午夜一区| 久久国产主播| 欧美日韩在线观看视频小说| 日韩av有码| 亚洲人成高清| 蜜桃精品在线| 中文字幕人成乱码在线观看| 日本中文字幕不卡| 免费黄网站欧美| 亚洲精品三级| 免费精品视频在线| 亚洲综合另类| 欧美日韩第一| 午夜亚洲精品| 999久久久精品国产| av中文资源在线资源免费观看| 麻豆国产欧美一区二区三区| 精品美女在线视频| 99热精品久久| 国产精品美女在线观看直播| 欧美激情另类| 久久只有精品| 久久激情一区| 精品视频黄色| 尤物精品在线| 亚洲精品福利电影| 国产毛片精品久久| 97精品国产| 精品欧美视频| 日韩av一二三| 欧美视频久久| 久久久久久久欧美精品| 不卡av一区二区| 久久久久一区| 欧洲激情综合| 久久一区欧美| 亚洲麻豆一区| 亚洲有吗中文字幕| 欧美一级全黄| 麻豆精品国产91久久久久久| 精品一区视频| 麻豆视频久久| 国产欧美日韩一级| 日韩精品一区二区三区中文字幕| 国产精品欧美日韩一区| 精品视频高潮| 伊人精品一区| 国产精品久久久免费| 亚洲欧美日韩国产综合精品二区| 国产va免费精品观看精品视频| 久久精品国产成人一区二区三区| 97久久精品| 婷婷成人av| 精品一区二区三区的国产在线观看| 日本成人在线网站| 精品视频一区二区三区四区五区 | 美女精品久久| 国产亚洲欧美日韩在线观看一区二区 | 亚洲精品一区二区在线看| 国产高潮在线| 欧美专区一区| 国产日本亚洲| 国产乱子精品一区二区在线观看| 美女网站久久| 国产精品久久久久久久免费软件| 麻豆成人在线| 久久尤物视频| 国产精品午夜一区二区三区| 激情婷婷综合| 亚洲制服欧美另类| 只有精品亚洲| 亚洲精品伦理| 88久久精品| 国产欧美日韩视频在线| 免费视频一区二区三区在线观看| 97久久精品| 日韩午夜一区| 麻豆国产精品| 免费视频一区二区| 午夜精品福利影院| 激情久久久久久久| 日本激情一区| 日本aⅴ亚洲精品中文乱码 | 欧美亚洲二区| 亚洲字幕久久| 青青伊人久久| 激情欧美日韩一区| 亚洲神马久久| 亚洲视频二区| 日韩精品免费一区二区夜夜嗨| 亚洲日本国产| 欧美日韩国产综合网| 久久九九电影| 久久久久国产精品一区二区| 日韩av免费大片| 亚州精品视频| 国产情侣一区| 亚洲日本国产| 99精品在线观看| 九九久久电影| 日韩欧乱色一区二区三区在线| 欧美精品导航| 国语精品一区| 黑丝一区二区三区| 亚洲精品影视| 裤袜国产欧美精品一区| 91一区二区| 日韩在线网址| 亚洲综合不卡| 日韩精品一区第一页| av资源亚洲| 五月天久久网站| 国产精品www.| 综合欧美精品| 精品视频99| 久久精品不卡| 一本一本久久| 日本免费新一区视频| 久久免费大视频| 亚洲激情另类| 色爱av综合网| 麻豆精品视频在线观看| 亚洲精品第一| 婷婷中文字幕一区| 久久裸体视频| 国产精品久久久久久久免费观看| 亚欧成人精品| 好看的亚洲午夜视频在线| 精品欠久久久中文字幕加勒比| 国产成人精品一区二区三区免费| 婷婷成人综合| 免费一级欧美在线观看视频 | 精品视频国产| 久久久久97| 国产精品porn| 日本 国产 欧美色综合| 欧美成人精品三级网站| 精品国产黄a∨片高清在线| 神马久久午夜| 久久久久久自在自线| 国产九一精品| 精品一区二区三区的国产在线观看| 日韩精品一区二区三区中文字幕| 日韩毛片网站| 中文一区一区三区免费在线观| 欧美精品影院| 国产伦精品一区二区三区千人斩| 日韩在线视频精品| 欧美天堂一区| 日韩国产欧美视频| 国产免费播放一区二区| 麻豆亚洲精品| 91亚洲精品在看在线观看高清| 在线一区二区三区视频| 国产高清精品二区|