PostgreSQL基础(六):PostgreSQL基本操作(二)
PostgreSQL基本操作(二)
一、字符串类型
字符串类型用的是最多的一种,在PGSQL里,主要支持三种:
-
character(就是MySQL的char类型),定长字符串。(最大可以存储1G)
-
character varying(varchar),可变长度的字符串。(最大可以存储1G)
-
text(跟MySQL异常)长度特别长的字符串。
操作没什么说的,但是字符串常见的函数特别多。
字符串的拼接一要要使用||来拼接。
完整的函数介绍可查看下面链接:
二、日期类型
在PGSQL中,核心的时间类型,就三个。
-
timestamp(时间戳,覆盖 年月日时分秒)
-
date(年月日)
-
time(时分秒)
在PGSQL中,声明时间的方式。
只需要使用字符串正常的编写 yyyy-MM-dd HH:mm:ss 就可以转换为时间类型。
直接在字符串位置使用之前讲到的数据类型转换就可以了。
当前系统时间 :
-
可以使用now作为当前系统时间(没有时区的概念)
-
也可以使用current_timestamp的方式获取(推荐,默认东八区)
日期类型的运算
-
正常对date类型做+,-操作,默认单位就是天~
-
date + time = timestamp
- 可以针对timestamp使用interval的方式进行 +,-操作,在查询以时间范围为条件的内容时,可以使用
三、枚举类型
枚举类型MySQL也支持,只是没怎么用,PGSQL同样支持这种数据类型
可以声明枚举类型作为表中的字段类型,这样可以无形的给表字段追加诡异的规范。
四、IP类型
PGSQL支持IP类型的存储,支持IPv4,IPv6这种,甚至Mac内种诡异类型也支持
这种IP类型,可以在存储IP时,帮助做校验,其次也可以针对IP做范围查找。
IP校验的效果
IP也支持范围查找。
五、JSON&JSONB类型
JSON在MySQL8.x中也做了支持,但是MySQL支持的不好,因为JSON类型做查询时,基本无法给JSON字段做索引。
PGSQL支持JSON类型以及JSONB类型。
JSON和JSONB的使用基本没区别。
撇去JSON类型,本质上JSON格式就是一个字符串,比如MySQL5.7不支持JSON的情况的下,使用text也可以,但是字符串类型无法校验JSON的格式,其次单独的字符串没有办法只获取JSON中某个key对应的value。
JSON和JSONB的区别:
-
JSON类型无法构建索引,JSONB类型可以创建索引。
-
JSON类型的数据中多余的空格会被存储下来。JSONB会自动取消多余的空格。
-
JSON类型甚至可以存储重复的key,以最后一个为准。JSONB不会保留多余的重复key(保留最后一个)。
-
JSON会保留存储时key的顺序,JSONB不会保留原有顺序。
JSON中key对应的value的数据类型
JSON | PGSQL |
---|---|
String | text |
number | numeric |
boolean | boolean |
null | (none) |
操作JSON:
-
上述的四种JSON存储的类型:
- JSON数组
- JSON对象
- 构建表存储JSON
- 构建索引的效果
JSON还支持很多函数,可以直接查看以下文档地址:
六、复合类型
复合类型就好像Java中的一个对象,Java中有一个User,User和表做了一个映射,User中有个人信息对象。可以基于符合类型对映射上个人信息。
按照上面的情况,将Info构建成一个复合类型
七、数组类型
数组还是要依赖其他类型,比如在设置住址,住址可能有多个住址,可以采用数组类型去修饰字符串。
PGSQL中,指定数组的方式就是[],可以指定一维数组,也支持二维甚至更多维数组。
构建数组的方式:
如果现在要存储字符串数组,如果存储的数组中有双引号怎么办,有大括号怎么办。
数组的比较方式
- 点赞
- 收藏
- 关注作者
评论(0)