📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。 ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞 ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
本篇介绍了openGauss的数据类型及应用
名称
描述
存储空间
范围
TINYINT
微整数,别名为INT1
1字节
0 ~ 255
SMALLINT
小范围整数,别名为INT2
2字节
-32,768 ~ +32,767
INTEGER
常用的整数,别名为INT4
4字节
-2,147,483,648 ~ +2,147,483,647
BINARY_INTEGER
常用的整数INTEGER的别名
4字节
-2,147,483,648 ~ +2,147,483,647
BIGINT
大范围的整数,别名为INT8
8字节
-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
名称
描述
存储空间
范围
NUMERIC[(p[,s])],
DECIMAL[(p[,s])]
精度p取值范围为[1,1000],标度s取值范围为[0,p]。
说明:
p为总位数,s为小数位数。
未指定精度的情况下,小数点前最大131,072位,
小数点后最大16,383位
NUMBER[(p[,s])]
NUMERIC类型的别名
未指定精度的情况下,小数点前最大131,072位,
小数点后最大16,383位
SMALLSERIAL
描述
存储空间
范围
SMALLSERIAL
二字节序列整型
2字节
-32,768 ~ +32,767
SERIAL
四字节序列整型
4字节
-2,147,483,648 ~ +2,147,483,647
BIGSERIAL
八字节序列整型
8字节
-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
LARGESERIAL
十六字节序列整型
16字节
-170,141,183,460,469,231,731,687,303,715,884,105,728
~ +170,141,183,460,469,231,731,687,303,715,884,105,727
案例说明: test=# CREATE TABLE smallserial_tab(a SMALLSERIAL); –插入数据。 openGauss=# INSERT INTO smallserial_tab VALUES(default); –再次插入数据。 openGauss=# INSERT INTO smallserial_tab VALUES(default); test=# INSERT INTO smallserial_tab VALUES(8); test=# INSERT INTO smallserial_tab VALUES(default);
名称
描述
存储空间
范围
REAL,FLOAT4
单精度浮点数,不精准
4字节
-3.402E+38~3.402E+38,6位十进制数字精度
DOUBLE PRECISION,FLOAT8
浮点数,不精准。精度p取值范围为[1,53]
说明:p为精度,表示总位数
4字节或8字节
-1.79E+308~1.79E+308,15位十进制数字精度
FLOAT[§]
常用的整数,别名为INT4
4字节
-2,147,483,648 ~ +2,147,483,647
BINARY_DOUBLE
是DOUBLE PRECISION的别名
8字节
-1.79E+308~1.79E+308,15位十进制数字精度
DEC[(p[,s])]
精度p取值范围为[1,1000],标度s取值范围为[0,p]。
说明:p为总位数,s为小数位位数。
未指定精度的情况下,小数点前最大131,072位,
小数点后最大16,383位。
INTEGER[(p[,s])]
精度p取值范围为[1,1000],标度s取值范围为[0,p]
4字节
-2,147,483,648 ~ +2,147,483,647
名称
描述
存储空间
范围
BOOLEAN
布尔类型
1字节
true:真
false:假
null:未知(unknown)
SMALLSERIAL
描述
存储空间
范围
CHAR(n)
CHARACTER(n)
NCHAR(n)
定长字符串,不足补空格。n是指字节长度,如不带精度n,默认精度为1
最大为10MB。
VARCHAR(n)
CHARACTER VARYING(n)
变长字符串。n是指字节长度
最大为10MB
VARCHAR2(n)
变长字符串。是VARCHAR(n)类型的别名。n是指字节长度
最大为10MB
NVARCHAR2(n)
变长字符串。n是指字符长度
最大为10MB
TEXT
变长字符串
最大为1GB-1
CLOB
文本大对象,是TEXT类型的别名
最大为1GB-1
名称
描述
存储空间
范围
BLOB
二进制大对象
最大为1GB-8203字节
RAW
变长的十六进制类型
最大为1GB-8203字节
BYTEA
变长的二进制字符串
最大为1GB-8203字节
名称
描述
存储空间
范围
DATE
4字节
TIME [§] [WITHOUT TIME ZONE]
p表示小数点后的精度,取值范围为0~6
8字节
TIME [§] [WITH TIME ZONE]
p表示小数点后的精度,取值范围为0~6
12字节
TIMESTAMP[§] [WITHOUT TIME ZONE]
p表示小数点后的精度,取值范围为0~6
8字节
TIMESTAMP[§][WITH TIME ZONE]
p表示小数点后的精度,取值范围为0~6
8字节
SMALLDATETIME
精确到分钟,秒位大于等于30秒进一位
8字节
INTERVAL DAY (l) TO SECOND §
l:天数的精度,取值范围为06<br>p:秒数的精度,取值范围为06
16字节
INTERVAL [FIELDS] [ § ]
fields:可以是YEAR,MONTH,DAY,HOUR,MINUTE,SECOND等
p:秒数的精度,取值范围为0~6,且fields为SECOND,DAY TO SECOND等
12字节
reltime
X years X mons X days XX:XX:XX
4字节
abstime
YYYY-MM-DD hh:mm:ss+timezone
4字节
系统支持按照日、月、年的顺序自定义日期输入。如果把DateStyle参数设置为MDY就按照“月-日-年”解析,设置为DMY就按照“日-月-年”解析,设置为YMD就按照“年-月-日”解析。 日期的文本输入需要加单引号包围,语法如下: type [ ( p ) ] ‘value’ 可选的精度声明中的p是一个整数,表示在秒域中小数部分的位数
reltime的输入方式可以采用任何合法的时间段文本格式,包括数字形式(含负数和小数)及时间形式,其中时间形式的输入支持SQL标准格式、ISO-8601格式、POSTGRES格式等。另外,文本输入需要加单引号。
名称
存储空间
说明
表现形式
point
16字节
平面中的点
(x,y)
lseg
32字节
(有限)线段
((x1,y1),(x2,y2))
box
32字节
矩形
((x1,y1),(x2,y2))
path
16+16n字节
闭合路径(与多边形类似)
((x1,y1),…)
path
16+16n字节
开放路径
[(x1,y1),…]
polygon
40+16n字节
多边形(与闭合路径相似)
((x1,y1),…)
circle
24 字节
<(x,y),r> (圆心和半径)
openGauss提供了一系列的函数和操作符用来进行各种几何计算,如拉伸、转换、旋转、计算相交等。
openGauss提供用于存储IPv4、IPv6、MAC地址的数据类型。 用这些数据类型存储网络地址比用纯文本类型好,因为这些类型提供输入错误检查和特殊的操作和功能。
名称
存储空间
说明
表现形式
cidr
7或19字节
IPv4或IPv6网络
192.168.0.0/24
inet
7或19字节
IPv4或IPv6主机和网络
address/y,address表示IPv4或者IPv6地址
y是子网掩码的二进制位数
macaddr
6字节
MAC地址
‘08:00:2b:01:02:03’
位串就是一串1和0的字符串。它们可以用于存储位掩码。 openGauss支持两种位串类型:bit(n)和bit varying(n),这里的n是一个正整数。 bit类型的数据必须准确匹配长度n,如果存储短或者长的数据都会报错。 bit varying类型的数据是最长为n的变长类型,超过n的类型会被拒绝。一个没有长度的bit等效于bit(1), 没有长度的bit varying表示没有长度限制。
openGauss提供了两种数据类型用于支持全文检索。tsvector类型表示为文本搜索优化的文件格式,tsquery类型表示文本查询。
tsvector类型表示一个检索单元,通常是一个数据库表中一行的文本字段或者这些字段的组合,tsvector类型的值是一个标准词位的有序列表,标准词位就是把同一个词的变型体都标准化成相同的,在输入的同时会自动排序和消除重复。to_tsvector函数通常用于解析和标准化文档字符串。
tsquery类型表示一个检索条件,存储用于检索的词汇,并且使用布尔操作符&(AND),|(OR)和!(NOT)来组合他们,括号用来强调操作符的分组。to_tsquery函数及plainto_tsquery函数会将单词转换为tsquery类型前进行规范化处理。
UUID数据类型用来存储RFC 4122,ISO/IEF 9834-8:2005以及相关标准定义的通用唯一标识符(UUID)。这个标识符是一个由算法产生的128位标识符,确保它不可能使用相同算法在已知的模块中产生的相同标识符。 UUID是一个小写十六进制数字的序列,由分字符分成几组,一组8位数字+三组4位数字+一组12位数字,总共32个数字代表128位,标准的UUID示例如下: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 openGauss同样支持以其他方式输入:大写字母和数字、由花括号包围的标准格式、省略部分或所有连字符、在任意一组四位数字之后加一个连字符。示例如下: A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11 {a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11} a0eebc999c0b4ef8bb6d6bb9bd380a11 a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
JSON(JavaScript Object Notation)数据,可以是单独的一个标量,也可以是一个数组,也可以是一个键值对象,其中数组和对象可以统称容器(container): 标量(scalar):单一的数字、bool、string、null都可以叫做标量。 数组(array):[]结构,里面存放的元素可以是任意类型的JSON,并且不要求数组内所有元素都是同一类型。 对象(object):{}结构,存储key:value的键值对,其键只能是用“”包裹起来的字符串,值可以是任意类型的JSON,对于重复的键,按最后一个键值对为准。
openGauss内存在两种数据类型JSON和JSONB,可以用来存储JSON数据。其中JSON是对输入的字符串的完整拷贝,使用时再去解析,所以它会保留输入的空格、重复键以及顺序等;JSONB解析输入后保存的二进制,它在解析时会删除语义无关的细节和重复的键,对键值也会进行排序,使用时不用再次解析。 因此可以发现,两者其实都是JSON,它们接受相同的字符串作为输入。它们实际的主要差别是效率。JSON数据类型存储输入文本的精确拷贝,处理函数必须在每个执行上重新解析; 而JSONB数据以分解的二进制格式存储, 这使得它由于添加了转换机制而在输入上稍微慢些,但是在处理上明显更快, 因为不需要重新解析。同时由于JSONB类型存在解析后的格式归一化等操作,同等的语义下只会有一种格式,因此可以更好更强大的支持很多其他额外的操作,比如按照一定的规则进行大小比较等。JSONB也支持索引,这也是一个明显的优势。
HLL(HyperLoglog)是统计数据集中唯一值个数的高效近似算法。它有着计算速度快,节省空间的特点,不需要直接存储集合本身,而是存储一种名为HLL的数据结构。每当有新数据加入进行统计时,只需要把数据经过哈希计算并插入到HLL中,最后根据HLL就可以得到结果。
范围类型是表达某种元素类型(称为范围的_subtype_)的一个值的范围的数据类型。例如,timestamp的范围可以被用来表达一个会议室被保留的时间范围。在这种情况下,数据类型是tsrange(“timestamp range”的简写)而timestamp是 subtype。subtype 必须具有一种总体的顺序,这样对于元素值是在一个范围值之内、之前或之后就是界线清楚的。 范围类型非常有用,因为它们可以表达一种单一范围值中的多个元素值,并且可以很清晰地表达诸如范围重叠等概念。用于时间安排的时间和日期范围是最清晰的例子;但是价格范围、一种仪器的量程等等也都有用。
openGauss支持XML类型,使用示例如下。
python可变数据类型
学习一门语言,最后能走多远,在我看来就是基础有多扎实,python中的数据类型无疑就是基础中的基础,让我们开始今天的日拱一卒!python 数据类型。
python不可变数据类型
openGauss学习笔记-08 openGauss 数据类型8.1 数值类型8.2 布尔类型8.3 字符类型8.4 二进制类型8.5 日期/时间类型8.6 几何类型8.7 网络地址类型8.8 位串类型8.9 文本搜索类型8.10 UUID数据类型8.11 JSON/JSONB类型8.12 HLL数据类型8.13 范围类型8.14 索引8.15 对象标识符类型8.16 伪类型8.17 列存表支持的数据类型8.18 XML类型8.19 账本数据库使用的数据类型
Redis数据类型之Hashes类型
Es之数据类型解读
JSON值的比较和排序JSON值可以使用=,<,<=,>,>=,<>,!=,和<=>运算符进行比较。JSON值尚不支持以下比较运算符和函数:●BETWEEN●IN()●GREATEST()●LEAST()要想使用上面这些列出的比较运算符和函数,一个解决方法是将JSON值转换为原生MySQL数值或字符串数据类型,以便它们具有一致的非JSON标量类型。J
# Redis数据类型实战Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列和各种实时应用。Redis支持多种数据类型,如字符串、哈希、列表、集合和有序集合等。了解这些数据类型及其实际应用,对开发人员而言,是非常重要的。本文将通过实例来探讨Redis的主要数据类型,并提供一些实用的代码示例。## 1. 字符串(String)字符串是Redis中最基本的数据类型,可以包
# OpenGauss 和 MySQL 的数据类型对比在现代数据库管理中,选择合适的数据库系统对于应用程序的性能和可扩展性至关重要。本文将对比 OpenGauss 和 MySQL 这两个流行的关系型数据库系统的数据类型,并提供相关代码示例,以便于开发者在实际应用中做出明智的决策。## 一、OpenGauss 和 MySQL 简介OpenGauss 是华为公司开源的一款数据库,以高可用、
本篇介绍了openGauss的SCHEMA的原理及管理
一.string(字符串) 注:不可变数据类型 1.创建: str1=‘’ str2='abc' str3='汉字' &nb
迈向 MySQL 生态的第一步先定个小目标,每天一小步,玩转MySQL整数数据类型实战
迈向 MySQL 生态的第一步先定个小目标,每天一小步,玩转MySQL浮点数据类型实战
PostgreSQL支持用户定义类型(UDT)。 当否则我们将不得不使用简单的BLOB对象时,可以使用这些类型为用户定义的函数提供类型安全性。 这付出了巨大的代价。 许多数据库支持UDT,但是实现细节差异很大,因此存在大量的供应商锁定。 另外,C语言UDT需要通过包含共享库的PostgreSQL扩展进行部署,并且在使用SAAS(例如,Amazon云)时很少使用。 这迫使我们维护自己的数据库
关系型数据库:是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。非关系型数据库:非关系型数据库严格上说不是一种数据库,是一种数据结构化储存方法的集合。 原创 Oracle体系结构指数据库的组成,工作过程与原理,以及数据在数据库中的组织与管理机制服务器结构:由Oracle 数据库和Oracle 实例
access是中小型数据库,sql是大型的,当存储容量达到一定程度的时候,就会明显的感觉到他们的区别,主要是在存取速度上! access可以单独的上传下载,操作它
一、OpenDataSource ############################## 1. 操作SQL服务器数据,如SQL Server /Oracle等等格式:SELECT top 10 *FROM OPENDATASOU
前面两篇博客,第一篇介绍了五大数据类型的基本用法,第二篇介绍了Redis底层的六种数据结构。在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象系统也就是前面说的五大数据类型,每一种数据类型都至少用到了一种数据结构。通过这五种不同类型的对象,Redis可以在执行命令之前,根据对象的类型判断一个对象是否可以执行给定的命令,而且可以针对不同的场
一、基本数据类型(原始值类型)基本类型:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。基本类型的变量是存放在栈内存(Stack)里,栈内存中保存了变量标识符和指向堆内存中该对象的指针。注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。JavaScript 拥有动态类型。这意味着相同的变...
# recovery介绍 从事android的开发者对recovery一定不会陌生.它主要用来擦除数据和进行系统升级.擦除数据就是为了上层恢复出厂设置提供接口.主要有wipe data和wipe cache.升级又分为在线升级和离线升级.在线升级一般通过网络(3G,WIFI,GPRS)下载资源包,然后进入recovery进行升级.离线升级一般把下载好的update包放至SD卡,然后选择从SD卡更
Python以其简单的语法而闻名。然而,当您第一次学习Python时,或者当您具有另一种编程语言的坚实背景时,您可能会遇到一些Python不允许的事情。如果您在尝试运行Python代码时收到过SyntaxError错误,那么本指南可以帮助您。在本教程中,您将看到Python中常见的无效语法示例,并学习如何解决这个问题。在本教程结束时,您将能够:识别Python中的无效语法理解SyntaxError