PostgreSQL系列(一):数据类型和基本类型转换

PostgreSQL系列(一):数据类型和基本类型转换

自从厂子里出来后,数据库的主力就从变成MySQL了。有一说一哈,贵确实是有贵的道理,不是开源能比的。后面的工作里面基本上就是主MySQL,辅、ES等NoSQL。最近想写一点跟技术相关的系列文章过过瘾,先从PG开始更新吧,后面再看写哪个方向的。

随着国内软件本土化的趋势,国产软件现在也慢慢发展起来了,通过查看招聘网站上的要求以及对国产数据库的一些了解,也发现不少产品底层都是基于PG做上去的,PG在流行程度上现在也开始逐渐超过MYSQL,这个产品还是值得研究一下的。

PG的安装和配置(远程连接配置、用户管理等)就不写了。今天主要记录一下PG的数据类型,通过与MySQL对比,先有一个整体的基本印象postgresql 官方文档,接下来简单记录下类型转换的几种用法。

先说一下PG的几个技术文档网站地址:

官网:

,最新版本16.2,如果英文还不错,建议通过该文档学习,权威性最高。当然不是说国内做得不好,全看个人喜好

postgresql 官方文档

中文网站:

,这里的版本更新到12

postgresql 官方文档

数据类型

先放一张表,稍微翻译一下

数据类型

别名

说明

int8

eight-byte

有符号8字节整数

eight-byte

自增的8字节整数,这个类似于MySQL的字段设置auto

bit

fixed- bit

指定长度的位数组,长度必须为n,不能多也不能少,不写默认长度为1

bit

– bit

可变长度的位数组,最大存储n个位,不写默认不限制

bool

(true/false)

布尔类型

box

box on a plane

描述一个长方形PostgreSQL系列(一):数据类型和基本类型转换,有3种写法:

( ( x1 , y1 ) , ( x2 , y2 ) ) 
( x1 , y1 ) , ( x2 , y2 )    
x1, y1, x2, y2

用坐标来描述,分别是左上角和右下角的坐标,通常用于地理位置标记

bytea

data (“byte array”)

大容量二进制数据类型,类似于MYSQL的blob

char

fixed-

固定长度的字符串,长度不够空白填充,填充在后面,比如字段设置为char(5),输入一个值tt后,存储的值实际为ttxxx,x表示空格

–

变长的字符串,与MYSQL中的(n)类似,最多容纳n个字符,不写与text类型一样效果

cidr

IPv4 or IPv6

IPV4或者IPV6地址存储,MYSQL存储还需要开发人员考虑一下数据设计,这里直接提供了数据类型

on a plane

与box一样,这是存储一个描述圆的数据

date

date (year, month, day)

日期postgresql 官方文档,只表示年月日

-point (8 bytes)

postgresql 官方文档

双精度浮点数,8个字节大小

inet

IPv4 or IPv6 host

IPV4或者IPV6地址,可以带子网掩码,以IPV4地址示例:

192.168.1.1/24,前面表示IP地址,/后面表示子网掩码,24表示的子网掩码为从高位往低位开头连续为24个1,也就是:

11 ,转成十进制就是255.255.255.0,这个子网掩码熟悉吧,应该好理解

int, int4

four-byte

4字节有符号整数

time span

时间差

json

JSON data

现在Web API返回值常用的JSON文本格式

jsonb

JSON data,

二进制的JSON串,用的这种,性能要比json好

line

line on a plane

表示线条,用法忽略

lseg

line on a plane

表示线段,表示方式与线类似,唯一区别是线段有端点,用法忽略

MAC (Media )

MAC地址

MAC (Media ) (EUI-64 )

EUI-64位格式的MAC地址

money

货币数据类型

exact of

指定整数部分和小数部分的浮点数,可与money做等价转换,不丢精度

path

path on a plane

一系列点的连线

Log

PG日志位置索引,64位整数,通过该值可去PG的日志文件中查找该字段指定位置的流内容

user-level ID

用户级别的事务ID快照

point

point on a plane

表示点,用法忽略

path on a plane

表示多边形postgresql 官方文档,用法忽略

real

-point (4 bytes)

单精度的浮点数,4字节表示

int2

two-byte

有符号的2字节整数

two-byte

自增序列,大小为2字节

four-byte

自增序列,大小为4字节

text

–

大文本对象

time

time zone

time of day (no time zone)

不带时区的日期部分内容

time with time zone

time of day, time zone

带时区的日期部分内容

time zone

date and time (no time zone)

包含年月日时分秒的格式,不带时区

with time zone

date and time, time zone

包含年月日时分秒的格式,带时区

text query

全文搜索,这个一般用专门的全文搜索数据库,比如ES,这里不再赘述

text

该字段存储的数据会被进行分词,这个一般用专门的全文搜索数据库,比如ES,这里不再赘述

user-level ID (; see )

已过时,由替代

uuid

UUIDPostgreSQL系列(一):数据类型和基本类型转换,再熟悉不过啦

xml

XML data

XML文本数据

说明:

pg中char、、text3个类型性能没区别类似box、等表示形状的数据类型一般用不到,都直接用类似于ES这种专门的NoSQL来处理,只做了解,不深入研究了每个数据类型后面要单独进行分析,有的字段还挺复杂,原理也得看一看,方便理解

基本类型转换单引号用于表示字符串,比如插入一个文本test,写值的时候就要写成'test'双引号里面引用的必须是关键字,避免与PG的关键字冲突,其用法与MYSQL的''类似。举例:某表的字段名叫,此时查询该字段时必须写成 “” from XXX。通常要避免出现这种情况,这并不是一个好的工程实践。

postgresql 官方文档

类型转换有3种写法:

第一种:类 型值

int '123'

postgresql 官方文档

第二种:值::类型

'123'::int

postgresql 官方文档

第三种:cast(类型 值 as 转换后的类型)

cast( '123' as int)

postgresql 官方文档

前2种写法本质上来说,最终都是调用了第3种方法的实现。

好,今天先写到这,明天继续更新。最近打算做个技术人的人生经历,问下老K看看能不能提供点素材,那么多年的交情,老麻雀应该不会不答应

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » PostgreSQL系列(一):数据类型和基本类型转换

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们