亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

SQLite中的空處理與其它數據庫引擎的比較

2024-09-07 00:10:04
字體:
來源:轉載
供稿:網友

我的目標是使SQLite用一種標準和順從的方法來處理空值。但是在SQL標準中關于如何處理空值的描述似乎不太明確。從標準文檔中,我們不太容易弄清楚空值在所有場合下是如何被處理的。

所以標準文檔被取代,各種流行的SQL引擎被用來測試,看它們是如何處理空值的。我的目的是想SQLite像其他引擎一樣工作。志愿者們開發了 SQL的測試腳本并使之在SQL RDBMSes上運行,運用測試的結果來推論空值在各種引擎上是如何被處理的。最初的測試是在2002年5月運行的。測試腳本的副本在這篇文檔的最后。

SQLite最初是這樣編譯的,對于下面表格中的所有問題,它的答案都是"Yes"。 但是在其它SQL引擎上的測試表明沒有一個引擎是這樣工作的。所以SQLite被改進了,改進后它像Oracle, PostgreSQL, and DB2一樣工作。改進后,對于SELECT DISTINCT 語句和SELECT中的UNIQUE操作符,空值是模糊的。在UNIQUE列中空值仍然是清晰的。這看起來有些獨裁的意思,但是使SQLite和其它數據 庫引擎兼容似乎比這個缺陷更重要。

為了SELECT DISTINCT和UNION,使SQLite認為空值是清晰的是有可能的。但是你需要在sqliteInt.h原文件中改變NULL_ALWAYS_DISTINCT #define的值,并重新編譯。

更新于2003-07-13: 這篇文檔寫的很早,一些被測試的數據庫引擎已經被更新,忠實地使用者也發送了一些關于下面表格的修正意見。原始數據顯示了各種不同的狀態,但是隨著時間的 變化,數據的狀態已經逐漸向PostgreSQL/Oracle模式匯合。唯一的突出的不同是Informix and MS-SQL在UNIQUE列中都認為空值是模糊的。

令人迷惑的一點是,NULLs對于UNIQUE列是清晰的,但對于 SELECT DISTINCT和UNION是模糊的??罩祽撌乔逦蚰:伎梢?。但SQL標準文檔建議空值在所有地方都是清晰的。 但在這篇作品中,被測試的SQL引擎認為在SELECT DISTINCT或在UNION中,空值是清晰的。

下面的表格顯示了空處理實驗的結果。

  SQLite PostgreSQL Oracle Informix DB2 MS-SQL OCELOT
Adding anything to null gives null Yes Yes Yes Yes Yes Yes Yes
Multiplying null by zero gives null Yes Yes Yes Yes Yes Yes Yes
nulls are distinct in a UNIQUE column Yes Yes Yes No (Note 4) No Yes
nulls are distinct in SELECT DISTINCT No No No No No No No
nulls are distinct in a UNION No No No No No No No
"CASE WHEN null THEN 1 ELSE 0 END" is 0? Yes Yes Yes Yes Yes Yes Yes
"null OR true" is true Yes Yes Yes Yes Yes Yes Yes
"not (null AND false)" is true Yes Yes Yes Yes Yes Yes Yes

 

  MySQL
3.23.41
MySQL
4.0.16
Firebird SQL
Anywhere
Borland
Interbase
Adding anything to null gives null Yes Yes Yes Yes Yes
Multiplying null by zero gives null Yes Yes Yes Yes Yes
nulls are distinct in a UNIQUE column Yes Yes Yes (Note 4) (Note 4)
nulls are distinct in SELECT DISTINCT No No No (Note 1) No No
nulls are distinct in a UNION (Note 3) No No (Note 1) No No
"CASE WHEN null THEN 1 ELSE 0 END" is 0? Yes Yes Yes Yes (Note 5)
"null OR true" is true Yes Yes Yes Yes Yes
"not (null AND false)" is true No Yes Yes Yes Yes
Notes: 1. Older versions of firebird omits all NULLs from SELECT DISTINCT and from UNION.
2. Test data unavailable.
3. MySQL version 3.23.41 does not support UNION.
4. DB2, SQL Anywhere, and Borland Interbase do not allow NULLs in a UNIQUE column.
5. Borland Interbase does not support CASE expressions.

 

下面的腳本被用來收集關于上面表格的信息。

-- 我認為SQL關于空值的處理是不定的,所以不能靠邏輯來推斷,必須同過實驗來發現結果。為了實現這個目標,我已經準備了下列的腳本來測試不同的SQL數據庫如何處理空值。      
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品网站| 亚洲摸下面视频| 国产精品啪视频| 国产精品香蕉av| 日韩精品久久久久| 亚洲欧美第一页| 久久99国产精品自在自在app| 久久免费观看视频| 国产综合久久久久| 国产精品高清在线观看| 久久久免费精品视频| 91情侣偷在线精品国产| 国产精品第2页| 4444欧美成人kkkk| 欧美日韩中文字幕在线视频| 欧美中文字幕在线视频| 国产69精品久久久久99| 69久久夜色精品国产69| 97久久精品在线| 国产深夜精品福利| 久久影视电视剧凤归四时歌| 欧美日韩一区二区精品| 91精品国产自产在线观看永久| 视频在线观看99| 国产精品视频一区国模私拍| 日本一本a高清免费不卡| 日本精品视频在线播放| 国产一区二区三区视频免费| 国内伊人久久久久久网站视频| 亚洲无限乱码一二三四麻| 中文字幕在线看视频国产欧美在线看完整| 性色av一区二区三区红粉影视| 欧美日韩免费观看中文| 精品成人久久av| 国产精品劲爆视频| 亚洲天堂久久av| 亚洲成人网在线| 亚洲成人av资源网| 久久精品视频在线| 成人中文字幕在线观看| 欧美一级高清免费播放| 国产精品18久久久久久首页狼| 久久久久999| 国产91精品久久久| yw.139尤物在线精品视频| 亚洲精品丝袜日韩| 亚洲一区二区黄| 中文字幕在线观看日韩| 国产精品户外野外| 亚洲女性裸体视频| 亚洲精品日韩久久久| 亚洲国产精品网站| 国产免费久久av| 亚洲综合一区二区不卡| 国产精品一香蕉国产线看观看| 精品国产一区二区三区久久| 亚洲激情电影中文字幕| 在线观看日韩www视频免费| 超碰97人人做人人爱少妇| 不卡中文字幕av| 91久久精品国产91久久性色| 欧美一区二区三区图| 国产91ⅴ在线精品免费观看| 亚洲四色影视在线观看| 欧美老女人在线视频| 欧美日韩xxxxx| 国内精品模特av私拍在线观看| 国产在线视频欧美| 亚洲福利视频专区| 亚洲成人久久一区| 国产精品久在线观看| 亚洲欧美中文日韩在线v日本| 国产精品福利久久久| 国产z一区二区三区| 丝袜亚洲另类欧美重口| 国产午夜精品理论片a级探花| 欧美成人午夜剧场免费观看| 精品magnet| 91在线中文字幕| 欧美在线一区二区三区四| 在线观看精品国产视频| 久久艳片www.17c.com| 亚洲激情中文字幕| 久久影视电视剧免费网站清宫辞电视| 国产日韩中文在线| 国产成人高潮免费观看精品| 97婷婷涩涩精品一区| 91精品国产99| 国产美女精品视频免费观看| 国产精品夜间视频香蕉| 欧美亚洲国产视频小说| 社区色欧美激情 | 在线亚洲男人天堂| 日韩在线观看免费全集电视剧网站| 欧美性生交大片免网| 成人免费直播live| 国产精品高潮呻吟视频| 17婷婷久久www| 亚洲最大福利视频网站| 成人激情视频在线播放| 米奇精品一区二区三区在线观看| 欧美丝袜一区二区三区| 亚洲人a成www在线影院| 国产精品丝袜高跟| 久久久精品中文字幕| 久久人91精品久久久久久不卡| 日韩在线一区二区三区免费视频| 国产精品xxx视频| 午夜精品理论片| 成人中文字幕在线观看| 欧美日韩一区二区精品| 在线亚洲午夜片av大片| 欧美国产中文字幕| www日韩中文字幕在线看| 欧美国产日韩xxxxx| 国内精品久久久久伊人av| 精品一区电影国产| 亚洲国产天堂网精品网站| 亚洲激情第一页| 日韩电影在线观看中文字幕| 亚洲第一视频在线观看| 欧美一级电影免费在线观看| 精品呦交小u女在线| 日韩中文字幕在线播放| 欧美另类在线观看| 欧美疯狂做受xxxx高潮| 国产69精品久久久| 久久精品在线播放| 精品国内亚洲在观看18黄| 久久久999精品免费| 日韩中文字幕精品视频| 中文字幕免费精品一区高清| 国产免费一区视频观看免费| 国产精品视频公开费视频| 国产精品一区av| 国产亚洲欧洲黄色| 日韩美女在线观看一区| 中文字幕在线看视频国产欧美| 国产欧美中文字幕| 亚洲日本aⅴ片在线观看香蕉| 欧美性猛交xxx| 国产精品ⅴa在线观看h| 成人免费在线视频网址| 亚洲人成电影在线播放| 日韩在线视频导航| 亚洲欧美日韩在线一区| 久久久久久久久久国产精品| 日韩精品久久久久| 久久久久久久久亚洲| 俺去亚洲欧洲欧美日韩| 国产欧美欧洲在线观看| 日韩在线观看网址| 日韩精品在线第一页| 久久九九国产精品怡红院| 92福利视频午夜1000合集在线观看| 国产亚洲欧美一区| 中文字幕日韩综合av| 中文国产成人精品久久一| 国产日韩在线看片| 精品日韩美女的视频高清| 自拍偷拍亚洲精品| 久久久久久美女| 精品久久久久久国产| 国产精品视频精品|