Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_pg
提交
9b81cac2
S
skill_tree_pg
项目概览
CSDN 技术社区
/
skill_tree_pg
通知
9
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_pg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9b81cac2
编写于
11月 17, 2021
作者:
M
Mars Liu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fly on exercises
上级
79c2b029
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
268 addition
and
2 deletion
+268
-2
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.json
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.json
+7
-0
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.md
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.md
+53
-0
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.json
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.json
+7
-0
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.md
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.md
+43
-0
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
+2
-1
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
+7
-0
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.md
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.md
+34
-0
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/config.json
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/config.json
+2
-1
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
+7
-0
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.md
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.md
+39
-0
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.json
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.json
+7
-0
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.md
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.md
+29
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
+0
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.md
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.md
+31
-0
未找到文件。
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.json
0 → 100644
浏览文件 @
9b81cac2
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"customer_order.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/2.PostgreSQL中阶/2.服务端编程/2.连接查询/customer_order.md
0 → 100644
浏览文件 @
9b81cac2
# 客户和订单
我们现在看下面这个客户/订单系统
```
postgresql
create table customers
(
id serial primary key,
company_name text,
address text,
city text,
state text
);
create table products
(
id serial primary key,
description text,
unit_price money
);
create table orders
(
id serial primary key,
product_id integer references products (id),
order_date timestamp,
quantity integer,
customer_id integer references customers(id)
);
```
我们希望这个数据库能够允许每个订单包含多种商品,那么应该如何改造?
## 答案
*
添加一个 order_detail 表,引用 order id、product id,增加 quantity 列
*
order 表中删除 product id 和 quantity 列
## 选项
### A
将 order 表的修改为以 product id 和 customer id 作为联合主键
### B
删除 orders 表中的 product id 和 quantity 列
### C
在 order 表的主键上加唯一约束
\ No newline at end of file
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.json
0 → 100644
浏览文件 @
9b81cac2
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"paged.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/paged.md
0 → 100644
浏览文件 @
9b81cac2
# 分页
我们有如下表:
```
postgresql
create table orders
(
id serial primary key,
product_id integer,
order_date date default now(),
quantity integer,
customer_id integer
);
```
现在希望查询指定的某一天内的数据,并按每一百条一页查询,那么正确的语句应该是:
## 答案
```
postgresql
select id, product_id, order_date, quantity, customer_id from orders where date = $1 offset $2 limit 100;
```
## 选项
### 缺少 limit
```
postgresql
select id, product_id, order_date, quantity, customer_id from orders where date = $1 offset $2;
```
### 缺少 offset
```
postgresql
select id, product_id, order_date, quantity, customer_id from orders where date = $1;
```
### 结构不对
```
postgresql
select id, product_id, order_date, quantity, customer_id from orders where date = $1 and offset $2 and limit 100 ;
```
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
浏览文件 @
9b81cac2
...
...
@@ -2,5 +2,5 @@
"node_id"
:
"pg-58e924e93b564a24abb1e6b9cdfbc094"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[]
"export"
:
[
"standby.json"
]
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
0 → 100644
浏览文件 @
9b81cac2
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"standby.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.md
0 → 100644
浏览文件 @
9b81cac2
# standby
关于 PG Standby,错误的是:
## 答案
复制节点需要有主节点的超级用户权限。
## 选项
### A
Hot standby 是通过同步 WAL 实现的。
### B
从节点处于制度状态
### C
可以设置从节点切换为主节点的超时阈值
### D
从节点会保持与主节点的数据和结构一致
### E
从节点不需要和主节点保持长连接
### F
从节点不需要和主节点硬件环境一致
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/config.json
浏览文件 @
9b81cac2
...
...
@@ -2,5 +2,5 @@
"node_id"
:
"pg-7eff3dcf68644c23bd89f2a2abe4fac6"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[]
"export"
:
[
"stream.json"
]
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
0 → 100644
浏览文件 @
9b81cac2
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"stream.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.md
0 → 100644
浏览文件 @
9b81cac2
# 流式复制
关于流式复制,错误的是:
## 答案
流式复制的主节点损坏,会导致订阅节点也损坏。
## 选项
### A
订阅数据流的需要特定的复制角色
### B
订阅节点可以作为只读的从节点,提供读写分离
### C
主节点崩溃,子节点会将自己切换为独立工作状态
### D
节点间传输的是 wal 数据流
### E
主从节点的硬件配置可以不一致
### F
可以配置多级订阅
### G
可以多个从节点订阅一个主节点
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.json
0 → 100644
浏览文件 @
9b81cac2
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"fdw.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/3.fdw/fdw.md
0 → 100644
浏览文件 @
9b81cac2
# 外部数据源
RDVD 公司有一个 Oracle 数据库和一个PG数据库,现在需要每天汇总一次 PG 中的订单表和 oracle 中的客户信息表,从中生成一份
报表。现在你想在尽量不增加冗余数据的前提下,在PG服务上每天执行一次简单的查询任务来生成报表,那么应该:
## 答案
*
在 PG 数据库建立一个 fdw 数据源,连接 Oracle 数据库
*
在 PG 服务器中建立一个视图, 对客户信息表进行的查询变成一个 PG 查询
*
基于客户信息视图和订单表生成每日报表
## 选项
### 异构平台无法直接复制,且复制节点会影响功能
*
设置 PG 为 Oracle 的复制节点
*
订阅 Oracle 的变更流
### 不可靠的方法
*
用一个定时任务复制 Oracle 中的客户信息变更
*
写入 PG 数据库
### 低效且占用空间
*
在 PG 服务器上建一个同构的客户表
*
在 Oracle 服务器上写一个触发器
*
将客户信息写入 PostgreSQL 数据库
\ No newline at end of file
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
0 → 100644
浏览文件 @
9b81cac2
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.md
0 → 100644
浏览文件 @
9b81cac2
# JSON 和 JSONB 类型
关于 JSON 和 JSONB 类型,哪句话是错的?
## 答案
JSON 就是 文本类型的封装,JSONB 是 JSON 的二进制压缩格式,JSON 和 JSONB 的功能与 TEXT 类型一样。
## 选项
### A
JSONB 是推荐的 JSON 字段类型,更为高效。
### B
JSONB 可以通过 GIST 倒排索引优化对内部结构的查询。
### C
PostgreSQL JSON 和 JSONB 支持 JSON PATH表达式
### D
JSONB 和 文本可以有效兼容
### E
JSON 和 JSONB 与其它类型一样,不能部分修改,只能作为整体插入或更新
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录