当前位置:网站首页>Postgre SQL 支持的数据类型分类
Postgre SQL 支持的数据类型分类
2022-06-21 12:30:00 【2022冲鸭】
CAST 数据类型转换函数
布尔类型:
支持标准的boolean数据类型 只有TRUE FALSE两种状态,如果为unknown状态,则用NULL表示
数据类型:
smalint(2字节): oracle没有此类型,使用number 代替
int(4字节) bigint(8字节)
numeric(十进制精确类型):用户声明的精度,在ORACLE中叫做NUMBER
real、double、precision(浮点类型)
money(货币类型)
字符类型:varchar(n)、char(n)、test三种类型
二进制数据类型:只有一种bytea,他对应与mysql中BLOB与LONGBLOB,oracle中的raw 类型可以使用bytea取代
二进制字符串是一个字节序列。它和普通字符串的区别:
(1)完全可以存储字节零值,普通字符串不允许存储字节零值
(2)对二进制字符串处理,实际上处理字节;对字符串的处理,则取决于区域设置
位串类型:一串0和1的字符串,有bit(n)、bit varying(n)两种 其他数据库无此类型
日期和时间:date、time、timestamp。而time和timestamp 是否包括时区两种类型
日期输入:任何日期或者时间的文本输入需要由“日期/时间” 类型加单引号包围的字符串
如果DateStyle 参数默认为“MDY” ,则表示按照“月-日-年”解析
设置日期类型: set datestyle='YMD';
枚举类型:包含一系列有序静态值集合的数据类型,与MYSQL不同,使用之前需要使用ctreate type 创建类型,等于某些编程语言中的enum类型
每个枚举类型都是独立,不能与其他枚举类型混用;枚举类型的值大小写是敏感的。
eg:首先建立一个“week" 的枚举类型,并建立一张测试表:
create type week as ENUM('Sun','Mon','Thur','Fri','Sat');
create table duty(person text,weekday week);
insert into duty values('张三','Sun');
insert into duty values('李四','Mon');
insert into duty values('王二','Tues');
insert into duty values('赵五','Wed');
试查询一条数据:
select * from duty where weekday = 'Sun';
但如果输入的字符串不再枚举类型之间,就会报错:
select * from duty where weekday = 'Sun.';
在plsql中,可以使用\dT 查看枚举类型的定义:
\dT+ week
直接查询表pg_enum 可以查看枚举类型的定义;
select * from pg_enum;
复合类型:把已有的简单类型组合成用户自定义类型,例如C语言中结构体,类似于从一个表名字里选出一个字段,需要用圆括号括起来避免SQL解析器混淆
eg:
select person_info.name from author; (x)
select (person_info).name from author;
xml类型:存储XML数据类型。使用字符串类型也可以存储XML数据,但test类型不保证其中存储是合法XML数据。
Postgre 处理字符集的问题,在客户端与服务器端进行传递数据时,会自动进行字符集转换,如果两端字符集不一致,会自动进行字符集转换
JSON类型:存储JSON(JavaScript Object Notion)类型数据,也可以使用text、varchar等类型存储JSON类型{
JSON类型是把输出数据原封不动输入到数据库中,在存放前会对JSON类型进行语法检查,使用时需要重新解析数据;在JSON串中key之间多余空格、重复key值也会保留
JSONB类型在存放时就会把解析成二进制类型;并且支持在其上建立索引,JSONB在使用时性能更高
当一个JSON字符串转换成JSONB类型,JSON字符串数据类型实际被转换成PostgreSQL 数据库类型
range:存储范围快速搜索数据,用于表示范围
create table ipdb1(
ip_begin inet,
ip_end inet,
area text,
sp text);
对象标识符类型:oid 、regproc、regclass类型
伪类型:不能作为字段数据类型、但可以作为声明函s数参数或者结果类型
其他类型:一些不好分类的类型;例如UUID、pg_lsn类型
边栏推荐
- 显示Oracle某一张表的所有索引
- Educoder Web练习题---文本层次语义元素
- 12 tips for achieving it agility in the digital age
- PingCAP 入选 2022 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分
- Five (seven) principles - systematic learning III
- TOOD: Task-aligned One-stage Object Detection
- 子网掩码计算
- i.MX - RT1052 SDCard操作(SDIO接口)
- 【毕业季·进击的技术er】大学生涯的成长之路
- i. MX - rt1052 SPI and I2C interfaces
猜你喜欢

Six relationships of UML - system learning IV

Summary of UART problems in stm32cubemx

Educoder web exercises - structural elements

Subnet mask calculation

i.MX - RT1052 BOOT启动

程序三大结构-系统学习一

计算距离的几种方式汇总

i.MX - RT1052 脉宽调制(PWM)

Simple factory vs Factory Method & handwritten automatic chemical factory - system learning 6

Educoder Web练习题---对表单元素分组
随机推荐
About SDRAM memory
Educoder Web练习题---结构元素
Redis最大内存淘汰策略
i.MX - RT1052 脉宽调制(PWM)
[appium stepping pit] close the inspector and open the WebEditor, uiautomator2 exceptions. NullPointerExceptionError: -32001 Jsonrpc er
cartographer_ceres_scan_matcher_2d
i. MX - rt1052 clock and phase locked loop (PLL) analysis
嵌入struct和嵌入interface
Héritage et réécriture des méthodes
Understand UML class diagram and sequence diagram
[100 unity pit knowledge points] | unity uses quaternion Angleaxis random one direction
i. MX - rt1052 pulse width modulation (PWM)
【Appium踩坑】关闭inspector后打开weditor,uiautomator2.exceptions.NullPointerExceptionError: -32001 Jsonrpc er
2. 引用
[100 unity stepping pit knowledge points] | draw cube dotted line and sphere dotted line (gizmos auxiliary wireframe) in the editor
PHP使用Grafika合成图片,生成海报图
Subnet mask calculation
vscode中使用slurm集群上计算节点调试程序
7. 指针
DVWA配置教程