Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_pg
提交
28cf8c15
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看板
提交
28cf8c15
编写于
11月 22, 2021
作者:
M
Mars Liu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fly on exercises
上级
a0e2e96a
变更
22
显示空白变更内容
内联
并排
Showing
22 changed file
with
286 addition
and
14 deletion
+286
-14
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/config.json
...1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/config.json
+2
-1
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.json
....PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.json
+0
-0
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.md
.../1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.md
+30
-0
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/config.json
...1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/config.json
+3
-2
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.json
.../1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.json
+4
-2
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.md
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.md
+61
-0
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/grant.json
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/grant.json
+3
-1
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/revoke.json
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/revoke.json
+3
-1
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/role.json
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/role.json
+3
-1
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/config.json
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/config.json
+2
-1
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.json
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.json
+7
-0
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.md
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.md
+42
-0
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
+5
-1
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
+3
-1
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
+3
-1
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
+7
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.json
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.json
+0
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.md
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.md
+56
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.json
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.json
+0
-0
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.md
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.md
+46
-0
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment.json
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment.json
+3
-1
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment_2.json
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment_2.json
+3
-1
未找到文件。
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/config.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,5 @@
"node_id"
:
"pg-940afa6d71af44f689011ded8fd91a98"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[]
"export"
:
[
"install.json"
]
}
\ No newline at end of file
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.json
0 → 100644
浏览文件 @
28cf8c15
data/1.PostgreSQL初阶/2.PostgreSQL的安装/1.安装PostgreSQL/install.md
0 → 100644
浏览文件 @
28cf8c15
# 安装
下列内容,不正确的是哪一项?
## 答案
安装过程需要 root 权限,也应该将 root 设置为超级用户。
## 选项
### A
在 Linux 上,可以用发行版自带的软件安装服务安装,用 systemctl 管理。
### B
在 FreeBSD 上,可以用 ports 安装。
### C
在 windows 上,可以下载安装包进行安装。
### D
PostgreSQL 默认的超级用户名为 postgres 。
### E
修改 postgres.conf 配置文件,可以修改 PG 的监听地址和端口。
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/config.json
浏览文件 @
28cf8c15
{
"node_id"
:
"pg-586916fe52e245efb399ae862378f87f"
,
"keywords"
:
[],
"keywords"
:
[
"登录"
,
"身份验证"
,
"授权"
],
"children"
:
[],
"export"
:
[]
"export"
:
[
"login.json"
]
}
\ No newline at end of file
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.json
浏览文件 @
28cf8c15
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"grant.md"
,
"notebook_enable"
:
false
"source"
:
"login.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
"54917a4c69af41749d1c2a4430267f27"
}
\ No newline at end of file
data/1.PostgreSQL初阶/2.PostgreSQL的安装/2.登录PostgreSQL/login.md
浏览文件 @
28cf8c15
# 登录
你的团队有一个公用的开发服务器,你要安装一个 PostgreSQL 服务公用,你们希望每位同事
使用一个独立的开发数据库,不互相混淆。同时这个服务器不向其他部门开放。数据也希望有足
够的安全保障。你的同事们都有这台开发服务器的 ssh 账号,平时远程登录到服务器上工作。
下面哪个组合最符合你们的需求?
1.
为每位同事建立一个数据库账号
2.
初始化口令为123456,告知他们登录后修改密码。
3.
为每位同事建立对应的开发数据库,将他们的用户设置为该数据库的 owner
4.
将每位同事的用户身份都设置为superuser,并禁止他们登录别人的数据库
5.
为每位同事建立一个与操作系统账号同名的数据库账号
6.
修改 pg_hba.conf ,设置本地用户可以用操作系统集成登录
7.
设置 postgres 账号口令为 123456,群发告知同事
## 答案
```
5, 3, 6
```
## 选项
### A
```
1, 2, 4
```
### B
```
1, 2, 4, 6
```
### C
```
5, 2, 4
```
### D
```
5, 2, 4, 6
```
### E
```
7, 6
```
### F
```
2, 3, 4, 5, 6, 7
```
\ No newline at end of file
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/grant.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"grant.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"0766e022b61f4c83b4fe64cd8e4e5e9b"
}
\ No newline at end of file
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/revoke.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"revoke.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"65de2267ccb7478db916d517d4b5bce7"
}
\ No newline at end of file
data/2.PostgreSQL中阶/1.PostgreSQL数据库的基本结构/3.用户和权限/role.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"role.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"f093e146721541139080bc01ffd39750"
}
\ No newline at end of file
data/2.PostgreSQL中阶/2.服务端编程/4.分页查询/config.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,5 @@
"node_id"
:
"pg-69d3a1c646004e1da497fed2af57806c"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[]
"export"
:
[
"paged.json"
]
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.json
0 → 100644
浏览文件 @
28cf8c15
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"backup.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/backup.md
0 → 100644
浏览文件 @
28cf8c15
# 高可靠备份
你的团队有一个非常重要的业务数据库,希望在需要时,可以重建它在一周内任意某个时间点的状态。下列规划中不必要的是:
1.
对 WAL 日志建立备份,按时间保留所有的 WAL 文件作为增量备份
2.
每天做一次冷备
3.
需要重现时,用离目标时间点最近的前一次冷备恢复一个数据库节点,启动为 standby 状态,用对应的 wal 恢复。
4.
建立流备份节点
5.
每天非高峰期将数据库离线,完整复制一份数据区目录
## 答案
```
4, 5
```
## 选项
### A
```
1, 2
```
### B
```
3
```
### C
```
以上所有工作都需要,没有多余项
```
### D
```
2, 4
```
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/config.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,8 @@
"node_id"
:
"pg-58e924e93b564a24abb1e6b9cdfbc094"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[
"standby.json"
]
"export"
:
[
"standby.json"
,
"backup.json"
]
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/1.standby/standby.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"standby.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"491d9bdd19c04279ac607b73a63bb3e6"
}
\ No newline at end of file
data/3.PostgreSQL高阶/1.集群和复制/2.流式复制集群/stream.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"stream.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"061bfb92b674438cb56a6cf72c406cbb"
}
\ No newline at end of file
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/json.json
浏览文件 @
28cf8c15
{
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"json.md"
,
"notebook_enable"
:
false
}
\ No newline at end of file
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.json
0 → 100644
浏览文件 @
28cf8c15
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/match.md
0 → 100644
浏览文件 @
28cf8c15
# 匹配
表 book 的 meta 有类似如下结构:
```
json
{
"author"
:
[
"Mars Liu"
,
"Milly Lee"
],
"ISBN"
:
"xxxx-xxxx-xxxxxx"
,
"version"
:
1
}
```
该字段有 gist 索引。
如果我们想高效率的找到所有作者包含 Jim Gray 的书,应该如何查询?
## 答案
```
postgresql
select * from book where meta @> '{"author": ["Jim Gray"]}'::jsonb;
```
## 选项
### A
```
postgresql
select * from book where meta @> '["Jim Gray"]'::jsonb;
```
### A
```
postgresql
select * from book where 'Jim Gray' in meta;
```
### B
```
postgresql
select * from book where meta::text like '%Jim Gray%';
```
### C
```
postgresql
select * from book having meta @> 'Jim Gray'
```
### D
```
postgresql
select * from book where 'Jim Gray' in (meta #>> 'author');
```
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.json
0 → 100644
浏览文件 @
28cf8c15
data/3.PostgreSQL高阶/2.高级数据类型/3.JSON和JSONB/tags.md
0 → 100644
浏览文件 @
28cf8c15
# 标签
现有一个表 sku:
```
postgresql
create table sku(
id serial primary key ,
name text,
meta jsonb default '{}'::jsonb,
tags jsonb default '[]'::jsonb
)
```
我们希望查找包含所有给定tag的商品,那么查询应该是:
## 答案
```
postgresql
select id, name, meta, tags from sku where tags @> $1;
```
## 选项
### A
```
postgresql
select id, name, meta, tags from sku where tags = $1;
```
### B
```
postgresql
select id, name, meta, tags from sku where tags::text = $1;
```
### C
```
postgresql
select id, name, meta, tags from sku where $1 in tags;
```
### D
```
postgresql
select id, name, meta, tags from sku where tags in $1;
```
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"daily_payment.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"5e355cc9197a4d02a54f045301c88ace"
}
\ No newline at end of file
data/3.PostgreSQL高阶/3.SQL高级技巧/4.索引和优化/daily_payment_2.json
浏览文件 @
28cf8c15
...
...
@@ -2,5 +2,6 @@
"type"
:
"code_options"
,
"author"
:
"刘鑫"
,
"source"
:
"daily_payment_2.md"
,
"notebook_enable"
:
false
"notebook_enable"
:
false
,
"exercise_id"
:
"9295152720b74c65a0236cec175f6dce"
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录