From a796fb057c88d6e84fddfa54fc76c08b3cd2ddd9 Mon Sep 17 00:00:00 2001 From: Mars Liu Date: Wed, 24 Nov 2021 12:11:39 +0800 Subject: [PATCH] fixed odd orders --- .../config.json" | 6 ++- .../relation.json" | 7 +++ .../client.json" | 3 +- .../config.json" | 7 ++- .../config.json" | 2 +- .../config.json" | 4 +- .../develop.json" | 6 +++ .../develop.md" | 42 +++++++++++++++++ .../config.json" | 2 +- .../basic.json" | 6 +++ .../basic.md" | 43 +++++++++++++++++ .../config.json" | 4 +- .../concept.json" | 0 .../concept.md" | 31 +++++++++++++ .../config.json" | 9 +++- .../delete.json" | 0 .../delete.md" | 0 .../insert.json" | 0 .../insert.md" | 0 .../update.json" | 0 .../update.md" | 0 .../config.json" | 6 --- .../config.json" | 6 --- .../config.json" | 2 +- .../config.json" | 2 +- .../6.DML/config.json" | 6 --- .../config.json" | 2 +- .../config.json" | 6 --- .../4.\345\207\275\346\225\260/distinct.json" | 0 .../4.\345\207\275\346\225\260/distinct.md" | 46 +++++++++++++++++++ .../5.\350\247\206\345\233\276/view.json" | 0 .../5.\350\247\206\345\233\276/view.md" | 30 ++++++++++++ .../config.json" | 6 --- .../config.json" | 6 --- .../config.json" | 2 +- data/config.json | 2 +- src/tree.py | 2 +- 37 files changed, 241 insertions(+), 55 deletions(-) create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.json" create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.md" create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.json" create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.md" create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.json" create mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.md" rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.json" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.json" (100%) rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.md" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.md" (100%) rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.json" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.json" (100%) rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.md" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.md" (100%) rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.json" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.json" (100%) rename "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.md" => "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.md" (100%) delete mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/3.PostgreSQL\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213/config.json" delete mode 100644 "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/4.\345\207\275\346\225\260\350\260\203\347\224\250/config.json" delete mode 100644 "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/config.json" delete mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/1.\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213/config.json" create mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.json" create mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.md" create mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.json" create mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.md" delete mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/6.\350\241\250\345\207\275\346\225\260/config.json" delete mode 100644 "data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/7.\347\273\223\346\236\234\351\233\206\347\261\273\345\236\213/config.json" diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/config.json" index 4205a75..1adb8f2 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/config.json" @@ -1,6 +1,8 @@ { - "node_id": "pg-6920a4f2ba864459bd8883a7a48fa238", + "node_id": "pg-11d131b2d01b40be90b23f096d4852cc", "keywords": [], "children": [], - "export": ["relation.json"] + "export": [ + "relation.json" + ] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/relation.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/relation.json" index e69de29..b85cf0b 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/relation.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/1.\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223/relation.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "刘鑫", + "source": "relation.md", + "notebook_enable": false, + "exercise_id": "e50c1cee116d4054b9794c57effa9f5a" +} \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/client.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/client.json" index 4034a6e..9024c53 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/client.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/client.json" @@ -2,5 +2,6 @@ "type": "code_options", "author": "刘鑫", "source": "client.md", - "notebook_enable": false + "notebook_enable": false, + "exercise_id": "88b033cd97c642ef9900e5e091e335ff" } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/config.json" index 2de02ab..eab48c0 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/2.\346\234\215\345\212\241\345\231\250\345\222\214\345\256\242\346\210\267\347\253\257/config.json" @@ -1,6 +1,9 @@ { - "node_id": "pg-40374311856c4ad3b76fff16ecbe9dce", + "node_id": "pg-cf0e5cb243a247e2a0b812c5798cdba4", "keywords": [], "children": [], - "export": ["client.json", "server.json"] + "export": [ + "client.json", + "server.json" + ] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/config.json" index 5274b03..a070940 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/1.PostgreSQL\345\237\272\346\234\254\346\246\202\345\277\265/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-b710bd5c63fb4651bebfdd9b3fdb17a5", + "node_id": "pg-1aad17890736469a8b2f61a36dfe41db", "keywords": [] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/config.json" index a267e38..3b2d2cd 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/config.json" @@ -1,6 +1,6 @@ { "node_id": "pg-c252ff4b0e7f4163837c9b6f81678505", - "keywords": [], + "keywords": ["login", "connect"], "children": [], - "export": [] + "export": ["develop.json"] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.json" new file mode 100644 index 0000000..2a13c11 --- /dev/null +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "刘鑫", + "source": "develop.md", + "notebook_enable": false +} \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.md" new file mode 100644 index 0000000..d094114 --- /dev/null +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/3.\344\275\277\347\224\250PostgreSQL/develop.md" @@ -0,0 +1,42 @@ +# 开发环境中的 PostgreSQL + +你是 SmartMarket 公司的一名开发人员,公司使用 Linux 运行 PostgreSQL 服务,而你的开发机使用 MacOS。下列说法正确的是: + +1. 在 MacOS 上,使用 Homebrew 安装 PostgreSQL 后,在当前用户下执行 psql postgres 可以登入数据库 +2. 在 Linux 上,使用 yum 或 apt 安装 PostgreSQL 后,sudo su postgres 切换到 postgres 用户,可以执行 psql 登入数据库 +3. 对于自己安装的数据库服务器(非RDS),如果需要开放远程登录,需要编辑数据目录下的 postgresql.conf 和 pg_hua.conf +4. 安装 PostgreSQL 前,需要重装系统以获得一个干净的内核环境 +5. 安装 PostgreSQL 前,需要手工建立一个名为 postgres 的超级用户 +6. 安装 PostgreSQL 需要先安装 gcc 或 llvm clang +7. 对于使用 linux 的开发者,通常需要安装 postgresql 的开发包,这通常可以在主流的 linux 发行版的软件服务中找到,一般叫 postgresql-devel 或 postgresql-dev + +## 答案 + +1, 2, 3, 7 + +## 选项 + +### A + +1, 2, 3, 4, 5, 6, 7 + +### B + +1, 2, 3 + +### C + +2, 3, 4, 5 + +### D + +5, 6, 7 + +### E + +1, 3, 5, 7 + +### F + +2, 4, 6 + diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/config.json" index 7d58791..491b624 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/2.PostgreSQL\347\232\204\345\256\211\350\243\205/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-3ac4a2bf31af423fb9e2ec9fe30024c5", + "node_id": "pg-d95edf2d942b45d781e112be785ce260", "keywords": [] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.json" new file mode 100644 index 0000000..561a89f --- /dev/null +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "刘鑫", + "source": "basic.md", + "notebook_enable": false +} \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.md" new file mode 100644 index 0000000..9d3b09c --- /dev/null +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/basic.md" @@ -0,0 +1,43 @@ +# 基本语法 + +下列 SQL 语句,哪一项不合法? + +## 答案 + +```postgresql +from test select abc; +``` + +## 选项 + + +### A + +```postgresql +select 3.14; +``` + +### B + +```postgresql +select * from employee; +``` + +### C + +```postgresql +select * from employee where dept = 'hr'; +``` + +### D + +```postgresql +select id, name, dept, salary from employee where salary > 10000::money; +``` + +### E + +```postgresql +select now(); +``` + diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/config.json" index 0b09ff6..226c817 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/1.SQL\345\237\272\346\234\254\350\257\255\346\263\225/config.json" @@ -1,6 +1,6 @@ { "node_id": "pg-dca8da7637f94ded91a1871daa51746e", - "keywords": [], + "keywords": ["语法", "select"], "children": [], - "export": [] + "export": ["basic.json"] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.json" new file mode 100644 index 0000000..e69de29 diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.md" new file mode 100644 index 0000000..66f30a9 --- /dev/null +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/concept.md" @@ -0,0 +1,31 @@ +# 基本概念 + +下列叙述中,正确的是 + +1. 带有 select 关键字的查询不会修改数据 +2. 查询表需要 select 权限 +3. 修改一个数据库表或对象的结构,通常语句中会出现 create、add、drop、alter 等关键字 +4. 修改数据内容,通常会出现update、insert、delete等关键字 +5. update、insert、delete可以单独授权 + +## 答案 + +2, 3, 4, 5 + +## 选项 + +### A + +1, 2, 3, 4, 5 + +### B + +4, 5 + +### C + +1, 2, 3 + +### D + +3, 4, 5 \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/config.json" index 6422958..eff0052 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/config.json" @@ -1,6 +1,11 @@ { "node_id": "pg-b0f366abe12e41b0a9672d317e556662", - "keywords": [], + "keywords": ["DML", "insert", "update", "delete"], "children": [], - "export": [] + "export": [ + "insert.json", + "update.json", + "delete.json", + "concept.json" + ] } \ No newline at end of file diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.json" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.json" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.json" diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.md" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/delete.md" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/delete.md" diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.json" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.json" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.json" diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.md" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/insert.md" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/insert.md" diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.json" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.json" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.json" diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.md" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.md" similarity index 100% rename from "data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/update.md" rename to "data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/2.SQL\343\200\201DML\345\222\214DDL/update.md" diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/3.PostgreSQL\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/3.PostgreSQL\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213/config.json" deleted file mode 100644 index 4118c31..0000000 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/3.PostgreSQL\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-1eae8a80615f436081e71b36d89fb0aa", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/4.\345\207\275\346\225\260\350\260\203\347\224\250/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/4.\345\207\275\346\225\260\350\260\203\347\224\250/config.json" deleted file mode 100644 index 2a0ddcd..0000000 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/4.\345\207\275\346\225\260\350\260\203\347\224\250/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-ebef9fceb3684b119a9ba221a81f304b", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/config.json" index 41c33e3..b89fb34 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/3.\346\237\245\350\257\242\346\225\260\346\215\256/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-7e2e52dbddb44d5bad6deea6c5e57198", + "node_id": "pg-30f905f73a574151994d6d7f58d8a20d", "keywords": [] } \ No newline at end of file diff --git "a/data/1.PostgreSQL\345\210\235\351\230\266/config.json" "b/data/1.PostgreSQL\345\210\235\351\230\266/config.json" index 09597b3..f9cd971 100644 --- "a/data/1.PostgreSQL\345\210\235\351\230\266/config.json" +++ "b/data/1.PostgreSQL\345\210\235\351\230\266/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-6089aef54c4c4ce7bc85b4dfa14f44cd", + "node_id": "pg-f1c160affc45417a9c5fff7dc4be448a", "keywords": [] } \ No newline at end of file diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/config.json" "b/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/config.json" deleted file mode 100644 index d793cbd..0000000 --- "a/data/2.PostgreSQL\344\270\255\351\230\266/2.\346\234\215\345\212\241\347\253\257\347\274\226\347\250\213/6.DML/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-e1cd59819dd74a0bacc707f7863aad53", - "keywords": [], - "children": [], - "export": ["insert.json", "update.json", "delete.json"] -} \ No newline at end of file diff --git "a/data/2.PostgreSQL\344\270\255\351\230\266/config.json" "b/data/2.PostgreSQL\344\270\255\351\230\266/config.json" index ecbc373..55ec7a2 100644 --- "a/data/2.PostgreSQL\344\270\255\351\230\266/config.json" +++ "b/data/2.PostgreSQL\344\270\255\351\230\266/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-c360138dad92431594130596c5c91394", + "node_id": "pg-fc32585f4136497ea9be2d057d4aeada", "keywords": [] } \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/1.\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213/config.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/1.\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213/config.json" deleted file mode 100644 index afd843c..0000000 --- "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/1.\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-ec4bbb39e76949b48b13f04cc8c16532", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.json" new file mode 100644 index 0000000..e69de29 diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.md" "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.md" new file mode 100644 index 0000000..0e661f6 --- /dev/null +++ "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/4.\345\207\275\346\225\260/distinct.md" @@ -0,0 +1,46 @@ +# 去重 + +下列函数中,有一个实现了合并两个 jsonb 对象并对其去重,是哪一项? + +## 答案 + +```postgresql +create function jsonb_distinct_merge(a jsonb, b jsonb) returns jsonb as +$$ + select jsonb_agg(distinct (value)) from jsonb_array_elements(a || b) +$$ language sql +``` + +## 选项 + +### A + +```postgresql +create function jsonb_distinct_merge(a jsonb, b jsonb) returns jsonb as $$ + select a || b +$$ language sql +``` + +### B + +```postgresql +create function jsonb_distinct_merge(a jsonb, b jsonb) returns jsonb as $$ +return jsonb_agg(distinct(value)) from jsonb_array_elements(a||b) +$$ language sql +``` + +### C + +```postgresql +create function jsonb_distinct_merge(a jsonb, b jsonb) returns jsonb as $$ + return next jsonb_agg(distinct(value)) from jsonb_array_elements(a||b) +$$ language sql +``` + +### D + +```postgresql +create function jsonb_distinct_merge(a jsonb, b jsonb) returns jsonb as $$ + select a + b; +$$ language sql +``` \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.json" new file mode 100644 index 0000000..e69de29 diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.md" "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.md" new file mode 100644 index 0000000..9d4c2f4 --- /dev/null +++ "b/data/3.PostgreSQL\351\253\230\351\230\266/2.\351\253\230\347\272\247\346\225\260\346\215\256\347\261\273\345\236\213/5.\350\247\206\345\233\276/view.md" @@ -0,0 +1,30 @@ +# 视图 + +SmartMarket 公司的数据分析师,每天要执行一个固定的复杂查询,生成每日报表。我们准备将其创建为视图,这能够解决: + +1. 简化查询 +2. 降低查询时死锁的风险 +3. 大幅优化查询性能 +4. 限制权限 + +## 答案 + +1, 4 + +## 选项 + +### A + +1. 2, 3, 4 + +### B + +1, 2, 3 + +### C + +2, 3 + +### D + +3, 4 \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/6.\350\241\250\345\207\275\346\225\260/config.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/6.\350\241\250\345\207\275\346\225\260/config.json" deleted file mode 100644 index 332bf48..0000000 --- "a/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/6.\350\241\250\345\207\275\346\225\260/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-e4b00736ab4c483785c022a0a464f30a", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/7.\347\273\223\346\236\234\351\233\206\347\261\273\345\236\213/config.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/7.\347\273\223\346\236\234\351\233\206\347\261\273\345\236\213/config.json" deleted file mode 100644 index 6e66f98..0000000 --- "a/data/3.PostgreSQL\351\253\230\351\230\266/3.SQL\351\253\230\347\272\247\346\212\200\345\267\247/7.\347\273\223\346\236\234\351\233\206\347\261\273\345\236\213/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "pg-0e280b203b524a28ab8587aac125a865", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.PostgreSQL\351\253\230\351\230\266/config.json" "b/data/3.PostgreSQL\351\253\230\351\230\266/config.json" index ddba046..3a154be 100644 --- "a/data/3.PostgreSQL\351\253\230\351\230\266/config.json" +++ "b/data/3.PostgreSQL\351\253\230\351\230\266/config.json" @@ -1,4 +1,4 @@ { - "node_id": "pg-2f46da8212cf41ad9c0d2a5bf1330adc", + "node_id": "pg-c9c7629c52064d8780cbd4dc14dbe351", "keywords": [] } \ No newline at end of file diff --git a/data/config.json b/data/config.json index 17b7e29..c77252b 100644 --- a/data/config.json +++ b/data/config.json @@ -1,5 +1,5 @@ { "tree_name": "pg", "keywords": [], - "node_id": "pg-4544619de2a54841930282c700ba92b8" + "node_id": "pg-d8b0b9aded4c4cc0b2085d6a7c5611c7" } \ No newline at end of file diff --git a/src/tree.py b/src/tree.py index 8317aba..c11832b 100644 --- a/src/tree.py +++ b/src/tree.py @@ -249,7 +249,7 @@ class TreeWalker: def ensure_node_id(self, config): flag = False if "node_id" not in config or \ - not config["node_id"].startswith(f"{self.tree}-") or \ + not config["node_id"].startswith(f"{self.name}-") or \ config["node_id"] in id_set: new_id = self.gen_node_id() id_set.add(new_id) -- GitLab