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 4205a75de2de8e6f6d09aa9d42f154a5fdcee87f..1adb8f25712fe80d894a44383775fb7fa73c6127 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b85cf0b985f08906f31a5d31b64978771a62ef7f 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 4034a6e9d8d6f56c3225475cd6d9ae0317421163..9024c535417caaefe0de92eb9bf6c39939968f56 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 2de02abf37bd5b632eea449d03be6469faad42a2..eab48c0c719aa0f7e27240f96dbce92c215c13d1 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 5274b03bff31417bf9c582b566773756f146b38c..a0709408681aeb775c3a1475b1bddaf58412d20b 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 a267e388068bfddba91e123bffbc4eec0b4a07a7..3b2d2cdf0ad7098d752a5b06faa151e9f09cb430 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 0000000000000000000000000000000000000000..2a13c11a1b2ef810fdcf3b16d03324449c20ec8c --- /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 0000000000000000000000000000000000000000..d094114b5378662a1bdb84f23091b96f5cafe03b --- /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 7d587918835d38ec11e4da9af885e25663033e7e..491b62473452a5ac686363646007a939e454910e 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 0000000000000000000000000000000000000000..561a89f282404214c2e80b2615f2ceddd0c83e4e --- /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 0000000000000000000000000000000000000000..9d3b09c9474fa45ca8e771467d5a878b743f4a7a --- /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 0b09ff6b4e76b5cb61a6014676824c1b53561f0b..226c817f66f2bb58b646e1dabe17e16bd6c88abb 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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 0000000000000000000000000000000000000000..66f30a9343dccc012227c7044e7888661b966df0 --- /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 64229585376d409378ffc449721f37d903d34c29..eff0052817986e37b26d08fef470adf94b76a6f9 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 4118c317f20804cdbcfba401afe3db119a60c37e..0000000000000000000000000000000000000000 --- "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 2a0ddcd6d227e29e75b06a714263928b90bddc80..0000000000000000000000000000000000000000 --- "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 41c33e3c2fb10b7066b0c15d5da2b113137321fe..b89fb341df23364ad2fe5f41d64b3ec7fbaeaa9f 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 09597b3a5486ecc22c4f77e7236afb514f06586d..f9cd9710a7f5bb5cd7f8e5075f05d85522e83187 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 d793cbd7529b60ce3d6749ed096f9b244b5e7ac6..0000000000000000000000000000000000000000 --- "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 ecbc373f11b060596269b494a655f8e7bfc11a73..55ec7a222d0d8ca9d24409ab682c385a6035140a 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 afd843c0a0f0236ca3e1310a0be928a8ae5939a5..0000000000000000000000000000000000000000 --- "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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 0000000000000000000000000000000000000000..0e661f628f3ede3e4cfa8bc04c6631dcf87f0966 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 0000000000000000000000000000000000000000..9d4c2f407b2fc568407dac67abc2f540c0f80700 --- /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 332bf48472dbf303d1adb4cd513ff97060442880..0000000000000000000000000000000000000000 --- "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 6e66f98d3e0888b40a3ebf2833faec68118ae4fa..0000000000000000000000000000000000000000 --- "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 ddba046cd0e5b148c2c770331f6f3c168f2f0329..3a154bed98cb32167e53b09450fcea273360d6cc 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 17b7e29c9d672eaf9469e4a9e4020c6af5b88e10..c77252b4cd0a924b27061a3e5e522aa36cb19e83 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 8317ababe3f8ccde080d4bd22d0ae3dee568cc40..c11832b0f045c4893a51fcb81537ea70d34281f5 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)