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

您的位置:首頁技術文章
文章詳情頁

SQL Server的空值處理策略

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

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

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

事實上,對集合函數來說,如果空值可能導致錯誤結果,ISNULL函數就非常有用。記住在使用一個星號時,COUNT函數會對所有行進行計算。下例演示了空值在AVG和COUNT集合函數中的影響: 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

恰當使用空表值

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

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

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

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

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

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但在以下代碼中,要同時從父表和子表選擇值。雖然父表不包含空值,但在子表引用了父表的那個列中,將允許一個空值。

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

SELECT * FROM ChildGOSELECT * FROM ParentGODROP TABLE Child, ParentGO

在可以為空的外鍵中檢查數據的有效性

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

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

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

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

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

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费看av不卡| 日韩欧美精品一区| 国产精品人人爽人人做我的可爱| 日韩av片子| 久久免费福利| 日韩在线黄色| 日韩激情av在线| 日韩成人一级| 久久精品xxxxx| 国产精品久久久久久模特| 国产欧美精品久久| 国产精品va视频| 加勒比视频一区| 岛国av在线播放| 999久久久国产精品| 久久久久蜜桃| 夜夜嗨一区二区| 最新国产精品视频| 97se亚洲| 精品国产精品国产偷麻豆 | 国产精品99一区二区| 午夜日韩福利| 国产精品普通话对白| 中文字幕一区二区三区四区久久| 久久国产尿小便嘘嘘| 成年男女免费视频网站不卡| 激情婷婷亚洲| 午夜亚洲福利| 国产一区二区三区四区五区| 激情综合自拍| 久久精品xxxxx| 国产一区二区久久久久| 久久精品欧美一区| 自拍自偷一区二区三区| 免费亚洲婷婷| 国产中文一区| 亚洲精品黄色| 国产69精品久久| 99国产精品| 国产精品高清一区二区| 亚洲第一精品影视| 色8久久久久| 国产成人在线中文字幕| 在线国产一区| 欧美片第1页综合| 久久精品电影| 亚洲精品女人| 福利一区和二区| 久久午夜精品| 国产成人精品亚洲线观看| 不卡视频在线| 国产精品天堂蜜av在线播放| 一区二区三区视频免费观看| 欧美一区久久| 欧美综合另类| 国产精品嫩模av在线| 色吊丝一区二区| 婷婷亚洲成人| 成人久久一区| 欧美一区二区性| 国产视频久久| 超碰成人av| 国产精品最新自拍| 午夜欧美精品久久久久久久| 国产精品久久久久久av公交车| 亚洲综合电影| 日韩区欧美区| 国内在线观看一区二区三区| 欧美伊人久久| 日本免费新一区视频| 久久青草久久| 91视频一区| 国产伦精品一区二区三区在线播放| 久久福利一区| 欧美日韩精品免费观看视欧美高清免费大片 | 国产日韩中文在线中文字幕| 日本不卡视频在线观看| 麻豆精品蜜桃视频网站| 亚洲成av人片一区二区密柚| 精品视频久久| 精品国产麻豆| 精品一区二区三区在线观看视频| 欧美xxxx中国| 亚洲综合国产| 久久男人av资源站| 亚洲欧美一级| 日韩欧美一区二区三区在线观看| 视频一区中文字幕国产| yellow在线观看网址| 久久精品97| 久久不射网站| 国产99亚洲| 超级白嫩亚洲国产第一| 国产精品白丝一区二区三区| 婷婷视频一区二区三区| 久久精品国产福利| 亚洲日本久久| 欧美午夜精品一区二区三区电影| 日韩精品一区二区三区免费视频| 激情综合亚洲| 在线观看精品| 国产精品成人a在线观看| 亚洲精品韩国| 亚洲女同中文字幕| 久久久9色精品国产一区二区三区| 激情中国色综合| 欧美激情 亚洲a∨综合| 久久国内精品| 国产日韩高清一区二区三区在线| 亚洲最大av| 男女激情视频一区| 国产精品婷婷| 性欧美长视频| 中文日韩在线| 999在线观看精品免费不卡网站| 激情欧美日韩一区| 国产一区二区中文| 免费av一区二区三区四区| 成人高清一区| 久久久久久久欧美精品| 欧美一级精品| 日韩视频免费| 欧美日韩国产综合网| 欧美高清不卡| 99久久精品网| 久久久久中文| 国产精品91一区二区三区| 激情五月综合| 夜久久久久久| 亚洲精品一区二区在线播放∴| 男女性色大片免费观看一区二区| 综合一区二区三区| 69堂精品视频在线播放| 久久av影视| 福利视频一区| 91精品推荐| 狠狠操综合网| 蜜桃视频一区二区| 日韩成人午夜精品| 国产精品天天看天天狠| 精品免费av| 91精品国产调教在线观看| 国产在线日韩| 亚洲午夜国产成人| 国产日韩精品视频一区二区三区| 麻豆国产欧美日韩综合精品二区| 激情不卡一区二区三区视频在线| 特黄毛片在线观看| 婷婷丁香综合| 综合亚洲视频| 国产精品一区二区精品视频观看| 卡一精品卡二卡三网站乱码| av最新在线| 激情久久久久久久| 蜜桃久久av| 欧美欧美黄在线二区| 精品一二三区| 99久精品视频在线观看视频| 午夜在线一区二区| 国产精品v日韩精品v欧美精品网站 | 亚洲日本免费电影| 国产精品久久国产愉拍| 亚洲风情在线资源| 亚洲福利精品| 亚洲精品在线国产| 精品国产一区二区三区2021| 欧美综合另类| 91精品福利观看| 欧美韩日一区| 免费视频久久| 日本强好片久久久久久aaa| 欧美精品1区| 一区二区三区四区在线看| 婷婷视频一区二区三区| 精品一区二区三区中文字幕视频 | 久久婷婷激情| 免费成人在线影院| 久久不见久久见国语| 国产一区观看| 国产麻豆一区| 激情婷婷欧美| 欧美国产中文高清| 亚洲一区国产一区| 精品久久在线| 免费看欧美美女黄的网站| 免费日韩成人| 久久成人一区| 国产精品国产一区| 亚洲毛片在线免费| 久久久久久免费视频| 日韩一二三区在线观看| 国产va免费精品观看精品视频| 亚洲欧美视频| 久久毛片亚洲| 日韩成人午夜精品| 亚洲成人精品| 欧美aaaaaa午夜精品| 免费视频最近日韩| 97欧美在线视频| 涩涩涩久久久成人精品|