1、firebird的数据类型
firebird支持如下的几类数据类型: 
数字类型(整数:包括Integer,Smallint;
浮点数:包括Float,Double Precision;
定点数:包括Numeric,Decimal) 
日期时间类型(包括Date,Time,Timestamp) 
字符类型(包括Char,Varchar) 
布尔类型(Boolean) 
二进制类型(Blob)。
 此外,firebird还支持上述除了blob外的所有数据类型的数组形式,维数可以从1维到16维。数组既可以作为一个整体处理,也可以按照其中包含的元素一个一个的处理。不过使用数组需要一些额外的工作,因为一般的sql语句无法处理数组。

名称 大小 范围/精度 描述

Blob 变长 blob段大小限于64K 动态变长度二进制类型,可用于存放大量数据的情况,如图片、音乐、视频、多媒体等。其基本结构单位为段,它的子类型描述了存储数据的详细信息

Boolean 16位 True False Unkown 代表了逻辑上的真、假或不确定。必须是ODS11或以上版本,与Dialect无关。

Char(N) n个字符 1到32767个字节。字符集决定了其能容纳的最大字符数 固定长度的字符或字符串

Date 64位 从公元后100年一月一日到32768年二月29日 日期类型。只有年月日,不带时间

Decimal(P,S) 变长(16、32或64位) 精度p从1到18:指定数字的总长度;标度s从0到18:指定小数点后的位数。s<=p 定点小数。例如decimal(5,3)可以存储的数字形式为:pp.sss

Double Precision 64位 从2.225×10的-308次方到1.797×10的308次方 IEEE双精度浮点数,15位长度

Float 32位 从1.175×10的-38次方到3.402×10的38次方 IEEE单精度浮点数,7位长度

Integer 32位 从-2147483648到2147483647 整数

Numeric(P,S) 变长(16、32或64位) 精度p从1到18:指定数字的总长度;标度s从0到18:指定小数点后的位数。s<=p 定点小数。例如decimal(10,3)可以存储的数字形式为:ppppppp.sss

Smallint 16位 从-32768到32767 短整数

Time 64位 从0:00 AM到23:59.9999 PM 时间类型

Timestamp 64位 从公元后100年一月一日到32768年二月29日 带有时间的日期类型

Varchar(N) n个字符 1到32767个字节。字符集决定了其能容纳的最大字符数 变长字符或字符串类型

2、数据类型详解
2、1、定点数字类型 InterBase7.0支持两种定点数字类型:numeric和decimal。这两种类型的格式是:numeric[(p[,s])] 、decimal[(p[,s])]。其中:p为精度,也就是数字的总长度,范围从1到18;s为标度,指小数点后的位数,范围从0到p。注意:精度和标度是可选的,你可以两者均不指定,也可以只指定精度,或者全部指定。
2、2、BLOB类型
对于不能用标准SQL数据类型存储的数据,firebird提供了动态变长度二进制数据类型BLOB,专门用来存储大量变长度数据,如图像、声音、视频、多媒体、文档等。由于BLOB能存储多种信息而且数据量比较大,因而其读写操作需要特别的处理。BLOB类型可以充分享受数据库管理系统的好处,包括事务控制、数据维护、使用select、update、delete等语句。使用BLOB类型,可以避免存储指向非数据库文件的指针,因为和其他数据库系统不同,InterBase将BLOB数据存储在数据库中,而一般数据库系统将这类数据放在数据库之外的文件中。在InterBase7.0的表中,BLOB列只存储BLOB ID,不存储BLOB实际数据,BLOB实际数据存储在数据库的其他地方(通过后面的知识我们知道是存储在BLOB页面上)
(1)、BLOB段及长度 
从上述我们可以知道,BLOB类型其读写、存储的基本结构单位是段。通常情况下要为段指定一个大小。实际上,对select、update、insert语句来说,段大小是可以变长的,例如一个插入操作,它读入3个段,第一个段大小为30,第二个段大小为300,第三个段大小为3。指定段的大小用segment size语法
例如下面的表创建了两个BLOB列:
 Create Table Table2 (Blob1 Blob, Blob2 Blob Segment Size 512); 
第一个BLOB列为BLOB1,大小为缺省值80;第二个段大小为512。
(2)、BLOB子类型 在定义BLOB数据时,你可以进一步指明其子类型。子类型是用一个正数或负数表示的。正数是系统保留使用的,所有的用户自定义子类型必须用负数表示。
下面的表格说明了firebird保留的子类型:

子类型

描述

1

文本数据

2

二进制语言表示(BLR)

3

访问控制列表

4

预留

5

数据表当前元数据的编码描述

6

对不规则结束的多数据库事务的描述

用sub_type子句指定子类型。最常用的子类型是0、1。 例如:

Create Table Table2 (Blob1 Blob, Blob2 Blob Sub_Type 1, Blob3 Blob Sub_Type -1);

上面的语句创建了一个含有三个BLOB类型的数据表。第一个是缺省子类型0,代表无类型二进制数据;第二个子类型为1,代表是文本数据;第三个子类行为-1,代表用户自定义类型。

2、3、Boolean数据类型

Boolean有三种可能的取值:True、False、Unknown,分别相当于逻辑上的真、假、不确定。

2、4、定义数组类型

使用数组的好处是可以将多个相关的数据项放到一个列中存储。你既可以把数组作为一个整体进行处理,也可以按照其中的数据项一个一个进行处理。可以在下列情形下可以考虑使用数组:

1、数据项呈现为自然的集合特性。

2、列中的多个相关值必须作为一个单元整体看待而不是把它们分散在多个列中。

3、整体中的每个元素必须能被单独标示、访问。

数组中所有元素的数据类型必须一致,不能定义数组的数组。

数组可以使用create table,create domain定义,定义数组列和定义其它列并没有什么特别之处,唯一的是你要为数组指定维数。例如:

Create Table Table1 (Name Char(10), Char_Arr Char(10)[4]);

上面的语句定义了一个char_arr的列,它是一个包含4个元素的一维数组,每个元素是固定长度为10的字符类型。

数组的维数必须放在方括号中,紧跟在数组元素数据类型的后面。

(1)、多维数组 InterBase7.0支持多维数组,维数可达16维。 例如:

Create Table Table1 (Int_Arr2 Integer[4,5], Int_Arr3 Integer[4,5,6], Int_Arr6 Integer[4,5,6,7]);

(2)、指定数组维数的上下界

默认情况下,数组的维数是从1开始的。例如: Create Table Table1 (Int_Arr Integer[4]); 列INT_ARR数组的维数从1到4,下界为1,上界为4。 你也可以改变下界的值,使其从0或其它值开始。格式是:

下界:上界

例如:

Create Table Table1(Int_Arr Integer[0:3, 0:3]);

上面的2维数组的下界都从0开始,上界为3。

3、数据类型转换

cast函数的语法是:

CAST ( value AS datatype)

其中:

value为要转换的值,datatype是目标类型。

cast函数可进行如下类型的转换:

1、将日期时间类型(date、time、timestamp)转换为字符类型。

2、将字符类型转换为日期时间类型。

3、将timestamp类型转换为date或time类型。

4、date 或time类型转换为timestamp类型。

例如:

Where Hire_Date = Cast(Interview_Date As Date);

将字符类型INTERVIEW_DATE转换为日期类型进行比较

firebird的数据类型(datatype)相关推荐

  1. python datatype函数_python 数据类型 datatype

    python 数据类型 datatype 列表list 元组tuple 集合set 字典dictionary 字符串string 一.列表list list :python的一种数据类型.是可变的,有 ...

  2. oracle 赋值表数据类型,PL/SQL数据类型及操作符

    标量(scalar)数据类型 标量(scalar)数据类型没有内部组件,他们大致可分为以下四类: . number . character . date/time . boolean 表1显示了数字数 ...

  3. opencv: dataType

    转载于:https://blog.csdn.net/room08304/article/details/77995179 cv::DataType<_Tp>在C++中作为一个类,有两种构造 ...

  4. sql 更改列数据类型_SQL查询更改列数据类型

    sql 更改列数据类型 Datatype of the column in SQL can be changed using the ALTER TABLE command. It can also ...

  5. SpringMVC——通俗易懂讲讲Ajax~

    聊聊Ajax 一.什么是Ajax 二.iframe标签简单伪造Ajax 三.Ajax的实现 1. 基本概念的了解 Ajax的核心是什么? XMLHttpRequest是什么? Ajax数据传输的数据格 ...

  6. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  7. C# GDAL 学习一

    最近一直琢磨如何用C#+GDAL读取栅格数据(.tif或.img),运气不错的在GDAL 的官网上找到一部分源码.经过本人测试,效果还不错.学习还将继续深入下去. 参考网址:http://trac.o ...

  8. 史上最全ajax全套讲解

    博客好久没有更新文章,主要最近在做一个聊天的功能,虽然不是很尽人意,但是最起码实现了功能.其中里面用到最多的就是数据交互问题了.所以ajax自然是最好的选择了. 话说我从没有有系统的学习Ajax过,每 ...

  9. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析

    InfluxDB 的存储机制解析 本文介绍了InfluxDB对于时序数据的存储/索引的设计.由于InfluxDB的集群版已在0.12版就不再开源,因此如无特殊说明,本文的介绍对象都是指 InfluxD ...

最新文章

  1. Windows Phone开发(36):动画之DoubleAnimation 转:http://blog.csdn.net/tcjiaan/article/details/7521388...
  2. python常用函数-python常用函数与用法示例
  3. php中的__call调用
  4. mysql savepoint是什么_Mysql中的隐式COMMIT以及Savepoints的作用
  5. ANTLR入门:构建一种简单的表达语言
  6. 深度概览卷积神经网络全景图,没有比这更全的了!
  7. MAC OS 烧录ISO文件到U盘
  8. ubuntu 9.04 更新源_ubuntu更换中国源
  9. asp.net怎么实现按条件查询_Display Posts : 按条件显示WordPress文章的最强插件
  10. python计算传入数字参数的和_Python基础_6
  11. 大数据为什么需要安全分析
  12. Java实例分析:宠物商店
  13. Sublime Text3 插件集合
  14. linux刷新解析,如何在Linux(和FreeBSD)上刷新DNS解析器缓存
  15. 【模拟器】Android Studio模拟器运行自己的编译的Android源码镜像
  16. 归宿 - 写给无处安放的内心
  17. 【数据库系统概论】基础知识总结
  18. 红红火火恍恍惚惚(bfs_plus.2)(知道吉米你很急!)
  19. Flask session详细用法
  20. 做为网络管理中的重中之重、IT运维网管软件如何选择?

热门文章

  1. 搬:Linux的任督二脉:进程调度和内存管理
  2. 全球及中国润喉糖行业消费需求与品牌竞争动态研究报告2022-2028年
  3. java多线程实现动态效果_java多线程实现礼花绽放的效果,
  4. 2022 年工业工程、人工智能、计算机和应用科学前沿国际会议RTIACA2022征稿通知
  5. busybox 的insmod can't insert operation not permitted 错误解决
  6. 无需在线攻击-通过时间块利用 S7-1500 PLC
  7. Huffman编码的Matlab实现--用于单导联ECG数据的压缩和解压缩
  8. 【Unity3D日常开发】生成预制体,并且预制体自动销毁
  9. OpenCV4学习笔记(30)——透视变换(投影变换)
  10. 央视《对话》实录:生死盛大陈天桥