NULL和唯一約束UNIQUE的對應關係
NULL和唯一約束UNIQUE的對應關係
在資料庫中,NULL表示列值為空。唯一約束UNIQUE規定指定列的值必須是唯一的,值和值之間都不能相同。這個時候,就出現一個問題,NULL和NULL算是相同,還是不同。由於SQL語法沒有明確規定,所以各個資料庫廠商的處理方式不同。
(1)PostgreSQL和Oracle認為NULL表示沒有指定資料,所以資料有多種可能,所以UNIQUE約束列中允許存在任意個NULL。
(2)Informix和SQL Server認為NULL就表示空,是一種唯一的狀態。所以UNIQUE約束列中只能有一個NULL。
(3)DB2、SQLAnyWhere和InterBase認為NULL存在不確定性,無法比較,所以UNIQUE約束列中不允許有NULL。
而SQLite遵循了PostgreSQL和Oracle的策略,允許UNIQUE約束列中有任意個NULL。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2138162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中的 UNIQUE約束和UNIQUE索引MySql索引
- Oracle唯一約束中NULL的處理OracleNull
- 【SQL】15 SQL 約束(Constraints)、NOT NULL 約束、UNIQUE 約束、PRIMARY KEY 約束、FOREIGN KEY 約束、CHECK 約束、DEFAULT約束SQLAINull
- Unique約束,Primary Key約束與索引的關係學習與測試_20091213.doc索引
- Oracle主鍵約束、唯一鍵約束、唯一索引的區別(轉)Oracle索引
- 唯一性約束和唯一性索引的區別索引
- not-null約束對執行計劃的影響Null
- SQL Server唯一約束的使用SQLServer
- 在 SQL Server 中,建立表時可以直接為欄位新增唯一約束(UNIQUE)SQLServer
- 很多人比較糾結的約束和索引的關係索引
- set unused column和檢視,約束,同義詞和索引的關係索引
- CHECK約束中的NULL條件Null
- PostgreSQL唯一約束如何使用?SQL
- 關於外來鍵約束和對應主鍵資訊的查詢指令碼指令碼
- TreeSet的null值與元素型別的約束Null型別
- Oracle外來鍵約束中NULL的處理OracleNull
- Android和SQLite版本對應關係AndroidSQLite
- PyTorch和CUDA版本對應關係PyTorch
- 關於 Service Worker 和 Web 應用對應關係的討論Web
- MySQL·捉蟲動態·唯一鍵約束失效MySql
- 【INDEX】Oracle中主鍵、唯一約束與唯一索引之區別IndexOracle索引
- [20170516]nvl與非NULL約束.txtNull
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- 【唯一】DISTINCT與UNIQUE的“區別”
- 建立Oracle唯一約束,忽略已有的重複值Oracle
- Mysql-基本練習(06-唯一約束、外來鍵約束、新增、刪除單列)MySql
- Entity Framework Code First關係對映約定Framework
- in,exists和not exists ,not in與null的一些關係記載Null
- Flutter Key的原理和使用 (二) Widget 和 Element 的對應關係Flutter
- RabbitMQ與Erlang的版本對應關係MQ
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- oracle 約束的novalidate 應用Oracle
- Oracle字符集 - 超集和子集對應關係Oracle
- Servlet和JSP規範及版本對應關係ServletJS
- mysql啟動和關閉外來鍵約束MySql
- 支援向量機(SVM)的約束和無約束優化、理論和實現優化
- SAP中關聯工廠和公司的對應關係的表是哪個?
- c#版本與vs的對應關係C#