PostgreSQL简介
PostgreSQL是什么?前段时间由于一些原因离职,之前工作中确实没有使用pg的场景,最近一个月系统学习了一下pg。丢个官网链接—-PostgreSQL。各种特性都在里面,也扯不出什么花来。
PostgreSQL数据类型
PostgreSQL有着丰富的内置数据类型,下面是全部类型。这里记录一下—-1.14. JSON 类型—使用奇淫技巧的基本操作。
1.1. 数值类型
1.1.1. 整数类型
1.1.2. 任意精度数值
1.1.3. 浮点数类型
1.1.4. 序列号类型
1.2. 货币类型
1.3. 字符类型
1.4. 二进制数据类型
1.4.1. bytea十六进制格式
1.4.2. bytea转义格式
1.5. 日期/时间类型
1.5.1. 日期/时间输入
1.5.2. 日期/时间输出
1.5.3. 时区
1.5.4. 间隔输入
1.5.5. 间隔输出
1.6. 布尔类型
1.7. 枚举类型
1.7.1. 枚举类型的声明
1.7.2. 排序
1.7.3. 类型安全
1.7.4. 实施细则
1.8. 几何类型
1.8.1. 点
1.8.2. 线段
1.8.3. 矩形
1.8.4. 路径
1.8.5. 多边形
1.8.6. 圆
1.9. 网络地址类型
1.9.1. inet
1.9.2. cidr
1.9.3. inet 对比 cidr
1.9.4. macaddr
1.10. 位串类型
1.11. 文本搜索类型
1.11.1. tsvector
1.11.2. tsquery
1.12. UUID 类型
1.13. XML 类型
1.13.1. 创建XML值
1.13.2. 编码处理
1.13.3. 访问XML值
1.14. JSON 类型
1.15. Arrays
1.15.1. 数组类型的声明
1.15.2. 数组值输入
1.15.3. 访问数组
1.15.4. 修改数组
1.15.5. 在数组中检索
1.15.6. 数组输入和输出语法
1.16. 复合类型
1.16.1. 声明复合类型
1.16.2. 复合类型值输入
1.16.3. 访问复合类型
1.16.4. 修改复合类型
1.16.5. 复合类型输入和输出语法
1.17. 范围类型
1.17.1. 内嵌范围类型
1.17.2. 范例
1.17.3. 包含及不包含边界
1.17.4. 无限(无边界)范围
1.17.5. 范围输入/输出
1.17.6. 构造范围
1.17.7. 离散范围类型
1.17.1. 定义新的范围类型
1.17.9. 索引
1.17.10. 范围上的约束
1.18. 对象标识符类型
1.19. 伪类型
PostgreSQL奇淫技巧
基本操作符
操作符 | 右操作数的类型 | 描述 | 示例 | 示例结果 |
---|---|---|---|---|
-> | int | 获取JSON数组元素(索引从0开始) | ‘[{“a”:”foo”},{“b”:”bar”},{“c”:”baz”}]’::json->2 | {“c”:”baz”} |
-> | text | 通过秘钥获取JSON对象字段 | ‘{“a”: {“b”:”foo”}}’::json->’a’ | {“b”:”foo”} |
->> | int | 获取JSON数组元素为text | ‘[1,2,3]’::json->>2 | 3 |
->> | text | 获取JSON对象字段为text | ‘{“a”:1,”b”:2}’::json->>’b’ | 2 |
#> | text[] | 在指定的路径获取JSON对象 | ‘{“a”: {“b”:{“c”: “foo”}}}’::json#>’{a,b}’ | {“c”: “foo”} |
#>> | text[] | 在指定的路径获取JSON对象为text | ‘{“a”:[1,2,3],”b”:[4,5,6]}’::json#>>’{a,2}’ | 3 |
jsonb特有操作符
操作符 | 描述 |
---|---|
< | 小于 |
> | 大于 |
<= | 小于或等于 |
>= | 大于或等于 |
= | 等于 |
<>或!= | 不等于 |