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。

NULL和唯一约束UNIQUE的对应关系的更多相关文章

  1. 唯一约束 UNIQUE KEY

    目录 什么是唯一约束 与主键的区别 创建唯一约束 唯一性验证 什么是唯一约束 Unique Key:它是 MySQL 中的唯一约束,是指在所有记录中字段的值不能重复出现.例如,为 id 字段加上唯一性 ...

  2. [mysql] 删除唯一约束unique

    alter table ot_document drop index title

  3. MySql -- unique唯一约束

    3.UNIQUE 约束 约束唯一标识数据库表中的每条记录. 创建一张测试表 CREATE TABLE `test`.`info`( `id` ) UNSIGNED NOT NULL AUTO_INCR ...

  4. Sql Server约束的学习一(主键约束、外键约束、唯一约束)

    一.约束的分类 1.实体约束 实体约束是关于行的,比如某一行出现的值不允许出现在其他行,例如主键约束. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如检查约束. 3.参照完整性约束 ...

  5. hibernate中怎样配置两个联合属性为唯一约束(非联合主键)

    Annotation中配置: @Table元素包括了一个schema和一个catalog属性,如果需要可以指定相应的值. 结合使用@UniqueConstraint注解可以定义表的唯一约束(uniqu ...

  6. 如何在EF CodeFirst中使用唯一约束(Unique)

    一直用EF Fluent Api 做MapConfiguration 所以遇到了唯一约束这个瓶颈 使用唯一约束的两种方式: 方式1 自定义唯一约束 [AttributeUsage(AttributeT ...

  7. db2 将原表列notnull属性修改为null属性的方法 (查看主键约束,唯一约束去syscat.tabconst)

    好久没机会写点东西了,今天把自己遇到的一个小问题跟大家分享一下如何修改db2数据库表中列的属性--将列的非空属性改为允许空的属性,修改数据表的某一列属性其实很简单但是里面有需要细节需要dba注意,毕竟 ...

  8. 约束Constraints--主键约束、外键约束、唯一约束、检查约束、默认约束、NOT NULL约束、列约束与表约束、创建约束、删除约束

    约束   Including Constraints 以下内容转自:https://www.cnblogs.com/wcl2017/p/7043939.html和http://blog.csdn.ne ...

  9. 约束4:唯一约束,Check约束和null

    大家知道,关系型数据库的逻辑运算的结果是三值型的,TRUE,FALSE和UNKNOWN,特别是,NULL值和任何值都不相等,任何值和NULL的比较,返回的逻辑结果都是unknown.而NULL值在唯一 ...

随机推荐

  1. 在F12 控制台输入,可执行jquery操作

    <!-- 控制台执行jquery -->var importJs=document.createElement('script') //在页面新建一个script标签importJs.se ...

  2. 01-Flutter移动电商实战-项目学习记录

    一直想系统性的学习一下 Flutter,正好看到该课程<Flutter移动电商实战>的百度云资源,共 69 课时,由于怕自己坚持不下去(经常学着学着就不学了),故采用博客监督以记之. 1. ...

  3. Python接口测试之封装requests

    首先安装requests库: pip install requests test_requests.py 首先在TestRequest类中封装get与post方法, import requests i ...

  4. loj2063 「HAOI2016」字符合并

    ref #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...

  5. mvc-自定义Route

    public class CustomerRoute : RouteBase { //从路径中解析出controller.action以及其他参数,创建RouteData(其中包括HttpHandle ...

  6. Linux 的软件管理及配置 - 安装、卸载、升级、依赖

    1. 对比:Windows 和 Linux 上软件的安装与卸载 大部分 Linux 使用者都是从 Windows 转过来的,先对这俩做个对比,有助理解. 就像在 Windows 下,很多软件也有安装版 ...

  7. [oldboy-django][2深入django]学生管理(Form)-- 编辑(设置input标签属性,设置input标签默认显示值,设置input的类型)

    1 django 后台实现设置input标签属性,设置input标签默认显示值,设置input输入框类型 # Form生成html标签 a. 通过Form生成Input输入框,Form标签,以及sub ...

  8. TOJ 3750: 二分查找

    3750: 二分查找   Time Limit(Common/Java):3000MS/9000MS     Memory Limit:65536KByteTotal Submit: 1925     ...

  9. VS2015 +.NETMVC5 +EF实践

    -- 当做笔记,以上图片按照顺序来的. 跟着 http://www.cnblogs.com/sanshi/ 一步步来的

  10. C# 泛型的入门理解(来自网络)

    using System.Collections; class Program { //做个比较 static void Main(string[] args) { //new对象 Cls a1 = ...