首页 / 知识
Oracle中的布尔字段
2023-04-13 08:35:00

Boolean Field in Oracle昨天我想在Oracle表中添加一个布尔字段。但是,Oracle中实际上没有布尔数据类型。这里有人知道模拟布尔值的最佳方法吗?谷歌搜索这个主题发现了几种方法 使用一个整数,只需不为它分配除0或1以外的任何东西。 使用带有"y"或"n"的char字段作为仅有的两个值。 使用带有check约束的枚举。 经验丰富的Oracle开发人员是否知道首选/规范的方法? 我发现这个链接很有用。 这是一段重点介绍了每种方法的一些优缺点。
基本上,他们提倡方法2,为了效率,使用
他们的例子是:
Oracle本身使用y/n作为布尔值。为了完整性起见,应该注意pl/sql有一个布尔类型,只有表没有。 如果使用字段指示是否需要处理记录,则可以考虑使用y和null作为值。这使得索引非常小(读取速度快),占用的空间非常小。 若要使用最少的空间量,应使用约束为"y"或"n"的char字段。Oracle不支持布尔、位或tinyint数据类型,因此char的单字节尽可能小。 最好的选择是0和1(作为数字-另一个答案建议0和1作为字符以提高空间效率,但这对我来说有点扭曲),使用非空值和检查约束将内容限制为这些值。(如果您需要列可以为空,那么它不是您要处理的布尔值,而是一个具有三个值的枚举…) 0/1的优点:
‘Y’/N’的优点:
另一张海报建议"Y"(零)以提高性能。如果您已经证明您需要性能,那么就足够公平,但要避免这样做,因为它会使查询变得不自然( 1/0或是带有检查约束的Y/N。乙醚路很好。我个人更喜欢1/0,因为我在Perl中做了很多工作,这使得在数据库字段上执行Perl布尔操作非常容易。 如果你想和一个神谕首领霍克斯深入讨论这个问题,看看汤姆·基特在这里要说些什么。 我在数据库上做的大部分工作都是将"y"/"n"用作布尔值。通过这种实现,您可以获得一些技巧,例如: 计算为真的行数:从x中选择SUM(布尔值_flag='y'时为1,否则为0) 分组行时,强制执行"如果一行为真,则全部为真"逻辑:从y中选择max(布尔值_标志)相反,如果一行为假,则使用min强制分组为假。 通过将"布尔"列添加到Oracle数据库中的现有表(使用
这将在 在我们的数据库中,我们使用一个枚举来确保传递它是真的还是假的。如果您使用前两种方法中的任何一种,那么很容易要么开始向整数添加新的含义,而不进行适当的设计,要么结束时使用具有y、y、n、n、t、t、f、f值的char字段,并且必须记住代码的哪个部分使用哪个表以及使用哪个版本的true。 |
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc用Python爬取百度搜索结果
用Python爬取百度搜索结果,百度,项目,分析,软件,网址,广告,时间,培训,粮食,标题,一、前言众所周知,百度上直接搜索关键字会出来一大堆东西,时常Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文Python变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python 多线程死锁问题的巧妙解决
Python 多线程死锁问题的巧妙解决方法,异常,持有,代码,情况,信息,管理,数据,包装,策略,预期,死锁死锁的原理非常简单,用一句话就可以描述完。python模块搜索路径
python模块搜索路径,标准,路径,模块,位置,系统,培训,通用,新增,文件,环境变量,在a.py中导入模块b的时候,python会做一系列的模块文件路径搜索列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_使用Python执行系统命令方法
使用Python执行系统命令方法,系统,信息,培训,标准,命令,方法,模块,操作,终端,中文,Python是一款操作简单的编程语言,内置丰富的库,能够很容易的Python 类的私有属性和方法
Python 类的私有属性和方法,私有化,培训,开头,变量,函数,模块,属性,目的,方法,更多,在Python中,通过单下划线”_”来实现模块级别的私有化,一般关于 Python 配置文件的使用方法
关于 Python 配置文件的使用方法,代码,灵活,项目,名字,培训,模块,程序,方式,内容,用户,很多项目对配置文件的使用做法是:配置文件写在一个或