From 249496b3b84a0fdd75d78f293139e08d636c040c Mon Sep 17 00:00:00 2001 From: huangli Date: Tue, 4 Mar 2025 15:34:13 +0800 Subject: [PATCH 1/2] Update --- docs/Python/geopandas.md | 1 + docs/Python/index.md | 1 + docs/SQL/Ganos/ST_AsImage.md | 28 ++++++++++++++ docs/SQL/Ganos/index.md | 3 ++ docs/SQL/PostGIS/index.md | 72 ++++++++++++++++++++++++++++++++++++ docs/SQL/PostgreSQL/index.md | 11 ++++++ docs/SQL/index.md | 1 + docs/sql/postgis/index.md | 52 +++++++++++++++++++++++++- 8 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 docs/Python/geopandas.md create mode 100644 docs/Python/index.md create mode 100644 docs/SQL/Ganos/ST_AsImage.md create mode 100644 docs/SQL/Ganos/index.md create mode 100644 docs/SQL/PostGIS/index.md create mode 100644 docs/SQL/PostgreSQL/index.md create mode 100644 docs/SQL/index.md diff --git a/docs/Python/geopandas.md b/docs/Python/geopandas.md new file mode 100644 index 0000000..672fe94 --- /dev/null +++ b/docs/Python/geopandas.md @@ -0,0 +1 @@ +# GeoPandas \ No newline at end of file diff --git a/docs/Python/index.md b/docs/Python/index.md new file mode 100644 index 0000000..bef7c17 --- /dev/null +++ b/docs/Python/index.md @@ -0,0 +1 @@ +# python \ No newline at end of file diff --git a/docs/SQL/Ganos/ST_AsImage.md b/docs/SQL/Ganos/ST_AsImage.md new file mode 100644 index 0000000..42bf1eb --- /dev/null +++ b/docs/SQL/Ganos/ST_AsImage.md @@ -0,0 +1,28 @@ +--- +comments: true +tags: + - GIS +--- + +# [ST_AsImage](https://help.aliyun.com/zh/polardb/polardb-for-postgresql/st-asimage?spm=a2c4g.11186623.help-menu-2249963.d_8_5_3_2.435d1dc7c8te2K) + +将栅格对象转化为影像格式二进制流。 + +```sql +SELECT + encode( + ST_AsImage ( + rast, + '(140.025,60.025),(69.975,-0.025)' :: box + 0, + '0', + 'jpeg', + '{"strength": "ratio", "quality": 70}' + ), + 'hex' + ) +FROM + surf_hor_metadata +WHERE + ele = 'PRE' +``` diff --git a/docs/SQL/Ganos/index.md b/docs/SQL/Ganos/index.md new file mode 100644 index 0000000..a6de364 --- /dev/null +++ b/docs/SQL/Ganos/index.md @@ -0,0 +1,3 @@ +# [时空引擎(GanosBase)](https://help.aliyun.com/zh/polardb/polardb-for-oracle/ganosbase-spatio-temporal-database/?spm=a2c4g.11186623.help-menu-2249963.d_9.6f7d7f1fFlqiaA) + + diff --git a/docs/SQL/PostGIS/index.md b/docs/SQL/PostGIS/index.md new file mode 100644 index 0000000..25d09de --- /dev/null +++ b/docs/SQL/PostGIS/index.md @@ -0,0 +1,72 @@ +--- +comments: true +tags: + - GIS +--- + +# PostGIS + +## 安装 + +```sql +CREATE SCHEMA postgis; +GRANT USAGE ON schema postgis to public; + +CREATE EXTENSION postgis SCHEMA postgis; +CREATE EXTENSION postgis_raster SCHEMA postgis; + +ALTER DATABASE postgis_in_action SET search_path=public,postgis,contrib; +``` + +!!! info "提示" +虽然不是必需的,但建议在单独的模式(如 postgis)中安装 postgis,这样函数就不会弄乱默认的公共模式。 + +## 查询数据库下所有空间表 + +```sql +WITH columns AS ( + SELECT + ns.nspname AS table_schema, -- 模式 + cls.relname AS table_name, -- 表名 + cls.reltuples AS tuples, -- 记录数 + des.description AS description, -- 表描述 + attr.attname AS column_name, -- 列名 + col_description(attr.attrelid, attr.attnum) AS column_comment, -- 列描述 + trim(leading '_' from tp.typname) AS column_type -- 列类型 + FROM pg_catalog.pg_attribute attr + JOIN pg_catalog.pg_class AS cls ON cls.oid = attr.attrelid + JOIN pg_catalog.pg_namespace AS ns ON ns.oid = cls.relnamespace + JOIN pg_catalog.pg_type AS tp ON tp.oid = attr.atttypid + JOIN pg_catalog.pg_description AS des ON cls.oid = des.objoid AND des.objsubid = 0 + WHERE + NOT attr.attisdropped + AND attr.attnum > 0 + AND cls.relname NOT LIKE 'pg_%' + AND ns.nspname NOT IN ('pg_catalog', 'information_schema') + -- AND ns.nspname = 'other' + -- AND cls.relname like 'flash_flood_hazard_point' +) +SELECT + f_table_name as id, + f_table_schema as workspace, + f_table_name as data_name, + columns.description as description, + columns.tuples as tuples, + f_geometry_column as geometry_column, + type as geometry_type, + srid, + jsonb_object_agg( + columns.column_name, + json_build_object( + 'type',columns.column_type, + 'title',columns.column_comment + ) + ) AS fields +FROM postgis.geometry_columns as gc + JOIN columns ON + gc.f_table_schema = columns.table_schema AND + gc.f_table_name = columns.table_name AND + gc.f_geometry_column != columns.column_name +GROUP BY f_table_schema, f_table_name, description, tuples, f_geometry_column, srid, type + +``` diff --git a/docs/SQL/PostgreSQL/index.md b/docs/SQL/PostgreSQL/index.md new file mode 100644 index 0000000..349918c --- /dev/null +++ b/docs/SQL/PostgreSQL/index.md @@ -0,0 +1,11 @@ +# PostgreSQL + +## 修改字段类型 + +```sql +-- 不带转换 +ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type; + +-- 带转换 +ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type USING column_name::new_type; +``` \ No newline at end of file diff --git a/docs/SQL/index.md b/docs/SQL/index.md new file mode 100644 index 0000000..b4f9b40 --- /dev/null +++ b/docs/SQL/index.md @@ -0,0 +1 @@ +# SQL \ No newline at end of file diff --git a/docs/sql/postgis/index.md b/docs/sql/postgis/index.md index f42ee48..25d09de 100644 --- a/docs/sql/postgis/index.md +++ b/docs/sql/postgis/index.md @@ -19,4 +19,54 @@ ALTER DATABASE postgis_in_action SET search_path=public,postgis,contrib; ``` !!! info "提示" - 虽然不是必需的,但建议在单独的模式(如 postgis)中安装 postgis,这样函数就不会弄乱默认的公共模式。 +虽然不是必需的,但建议在单独的模式(如 postgis)中安装 postgis,这样函数就不会弄乱默认的公共模式。 + +## 查询数据库下所有空间表 + +```sql +WITH columns AS ( + SELECT + ns.nspname AS table_schema, -- 模式 + cls.relname AS table_name, -- 表名 + cls.reltuples AS tuples, -- 记录数 + des.description AS description, -- 表描述 + attr.attname AS column_name, -- 列名 + col_description(attr.attrelid, attr.attnum) AS column_comment, -- 列描述 + trim(leading '_' from tp.typname) AS column_type -- 列类型 + FROM pg_catalog.pg_attribute attr + JOIN pg_catalog.pg_class AS cls ON cls.oid = attr.attrelid + JOIN pg_catalog.pg_namespace AS ns ON ns.oid = cls.relnamespace + JOIN pg_catalog.pg_type AS tp ON tp.oid = attr.atttypid + JOIN pg_catalog.pg_description AS des ON cls.oid = des.objoid AND des.objsubid = 0 + WHERE + NOT attr.attisdropped + AND attr.attnum > 0 + AND cls.relname NOT LIKE 'pg_%' + AND ns.nspname NOT IN ('pg_catalog', 'information_schema') + -- AND ns.nspname = 'other' + -- AND cls.relname like 'flash_flood_hazard_point' +) +SELECT + f_table_name as id, + f_table_schema as workspace, + f_table_name as data_name, + columns.description as description, + columns.tuples as tuples, + f_geometry_column as geometry_column, + type as geometry_type, + srid, + jsonb_object_agg( + columns.column_name, + json_build_object( + 'type',columns.column_type, + 'title',columns.column_comment + ) + ) AS fields +FROM postgis.geometry_columns as gc + JOIN columns ON + gc.f_table_schema = columns.table_schema AND + gc.f_table_name = columns.table_name AND + gc.f_geometry_column != columns.column_name +GROUP BY f_table_schema, f_table_name, description, tuples, f_geometry_column, srid, type + +``` From 914b8dcc069ee38f27b15b29c7a0f67dd964a55a Mon Sep 17 00:00:00 2001 From: huangli Date: Tue, 4 Mar 2025 15:37:27 +0800 Subject: [PATCH 2/2] update --- docs/Python/geopandas.md | 1 - docs/Python/index.md | 1 - docs/{SQL/Ganos => SQL1/Ganos1}/ST_AsImage.md | 0 docs/{SQL/Ganos => SQL1/Ganos1}/index.md | 0 docs/{SQL/PostGIS => SQL1/PostGIS1}/index.md | 0 .../PostgreSQL => SQL1/PostgreSQL1}/index.md | 0 docs/{SQL => SQL1}/index.md | 0 docs/python/geopandas.md | 1 - docs/python/index.md | 1 - docs/sql/ganos/ST_AsImage.md | 28 -------- docs/sql/ganos/index.md | 3 - docs/sql/index.md | 1 - docs/sql/postgis/index.md | 72 ------------------- 13 files changed, 108 deletions(-) delete mode 100644 docs/Python/geopandas.md delete mode 100644 docs/Python/index.md rename docs/{SQL/Ganos => SQL1/Ganos1}/ST_AsImage.md (100%) rename docs/{SQL/Ganos => SQL1/Ganos1}/index.md (100%) rename docs/{SQL/PostGIS => SQL1/PostGIS1}/index.md (100%) rename docs/{SQL/PostgreSQL => SQL1/PostgreSQL1}/index.md (100%) rename docs/{SQL => SQL1}/index.md (100%) delete mode 100644 docs/python/geopandas.md delete mode 100644 docs/python/index.md delete mode 100644 docs/sql/ganos/ST_AsImage.md delete mode 100644 docs/sql/ganos/index.md delete mode 100644 docs/sql/index.md delete mode 100644 docs/sql/postgis/index.md diff --git a/docs/Python/geopandas.md b/docs/Python/geopandas.md deleted file mode 100644 index 672fe94..0000000 --- a/docs/Python/geopandas.md +++ /dev/null @@ -1 +0,0 @@ -# GeoPandas \ No newline at end of file diff --git a/docs/Python/index.md b/docs/Python/index.md deleted file mode 100644 index bef7c17..0000000 --- a/docs/Python/index.md +++ /dev/null @@ -1 +0,0 @@ -# python \ No newline at end of file diff --git a/docs/SQL/Ganos/ST_AsImage.md b/docs/SQL1/Ganos1/ST_AsImage.md similarity index 100% rename from docs/SQL/Ganos/ST_AsImage.md rename to docs/SQL1/Ganos1/ST_AsImage.md diff --git a/docs/SQL/Ganos/index.md b/docs/SQL1/Ganos1/index.md similarity index 100% rename from docs/SQL/Ganos/index.md rename to docs/SQL1/Ganos1/index.md diff --git a/docs/SQL/PostGIS/index.md b/docs/SQL1/PostGIS1/index.md similarity index 100% rename from docs/SQL/PostGIS/index.md rename to docs/SQL1/PostGIS1/index.md diff --git a/docs/SQL/PostgreSQL/index.md b/docs/SQL1/PostgreSQL1/index.md similarity index 100% rename from docs/SQL/PostgreSQL/index.md rename to docs/SQL1/PostgreSQL1/index.md diff --git a/docs/SQL/index.md b/docs/SQL1/index.md similarity index 100% rename from docs/SQL/index.md rename to docs/SQL1/index.md diff --git a/docs/python/geopandas.md b/docs/python/geopandas.md deleted file mode 100644 index 672fe94..0000000 --- a/docs/python/geopandas.md +++ /dev/null @@ -1 +0,0 @@ -# GeoPandas \ No newline at end of file diff --git a/docs/python/index.md b/docs/python/index.md deleted file mode 100644 index bef7c17..0000000 --- a/docs/python/index.md +++ /dev/null @@ -1 +0,0 @@ -# python \ No newline at end of file diff --git a/docs/sql/ganos/ST_AsImage.md b/docs/sql/ganos/ST_AsImage.md deleted file mode 100644 index 42bf1eb..0000000 --- a/docs/sql/ganos/ST_AsImage.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -comments: true -tags: - - GIS ---- - -# [ST_AsImage](https://help.aliyun.com/zh/polardb/polardb-for-postgresql/st-asimage?spm=a2c4g.11186623.help-menu-2249963.d_8_5_3_2.435d1dc7c8te2K) - -将栅格对象转化为影像格式二进制流。 - -```sql -SELECT - encode( - ST_AsImage ( - rast, - '(140.025,60.025),(69.975,-0.025)' :: box - 0, - '0', - 'jpeg', - '{"strength": "ratio", "quality": 70}' - ), - 'hex' - ) -FROM - surf_hor_metadata -WHERE - ele = 'PRE' -``` diff --git a/docs/sql/ganos/index.md b/docs/sql/ganos/index.md deleted file mode 100644 index a6de364..0000000 --- a/docs/sql/ganos/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# [时空引擎(GanosBase)](https://help.aliyun.com/zh/polardb/polardb-for-oracle/ganosbase-spatio-temporal-database/?spm=a2c4g.11186623.help-menu-2249963.d_9.6f7d7f1fFlqiaA) - - diff --git a/docs/sql/index.md b/docs/sql/index.md deleted file mode 100644 index b4f9b40..0000000 --- a/docs/sql/index.md +++ /dev/null @@ -1 +0,0 @@ -# SQL \ No newline at end of file diff --git a/docs/sql/postgis/index.md b/docs/sql/postgis/index.md deleted file mode 100644 index 25d09de..0000000 --- a/docs/sql/postgis/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -comments: true -tags: - - GIS ---- - -# PostGIS - -## 安装 - -```sql -CREATE SCHEMA postgis; -GRANT USAGE ON schema postgis to public; - -CREATE EXTENSION postgis SCHEMA postgis; -CREATE EXTENSION postgis_raster SCHEMA postgis; - -ALTER DATABASE postgis_in_action SET search_path=public,postgis,contrib; -``` - -!!! info "提示" -虽然不是必需的,但建议在单独的模式(如 postgis)中安装 postgis,这样函数就不会弄乱默认的公共模式。 - -## 查询数据库下所有空间表 - -```sql -WITH columns AS ( - SELECT - ns.nspname AS table_schema, -- 模式 - cls.relname AS table_name, -- 表名 - cls.reltuples AS tuples, -- 记录数 - des.description AS description, -- 表描述 - attr.attname AS column_name, -- 列名 - col_description(attr.attrelid, attr.attnum) AS column_comment, -- 列描述 - trim(leading '_' from tp.typname) AS column_type -- 列类型 - FROM pg_catalog.pg_attribute attr - JOIN pg_catalog.pg_class AS cls ON cls.oid = attr.attrelid - JOIN pg_catalog.pg_namespace AS ns ON ns.oid = cls.relnamespace - JOIN pg_catalog.pg_type AS tp ON tp.oid = attr.atttypid - JOIN pg_catalog.pg_description AS des ON cls.oid = des.objoid AND des.objsubid = 0 - WHERE - NOT attr.attisdropped - AND attr.attnum > 0 - AND cls.relname NOT LIKE 'pg_%' - AND ns.nspname NOT IN ('pg_catalog', 'information_schema') - -- AND ns.nspname = 'other' - -- AND cls.relname like 'flash_flood_hazard_point' -) -SELECT - f_table_name as id, - f_table_schema as workspace, - f_table_name as data_name, - columns.description as description, - columns.tuples as tuples, - f_geometry_column as geometry_column, - type as geometry_type, - srid, - jsonb_object_agg( - columns.column_name, - json_build_object( - 'type',columns.column_type, - 'title',columns.column_comment - ) - ) AS fields -FROM postgis.geometry_columns as gc - JOIN columns ON - gc.f_table_schema = columns.table_schema AND - gc.f_table_name = columns.table_name AND - gc.f_geometry_column != columns.column_name -GROUP BY f_table_schema, f_table_name, description, tuples, f_geometry_column, srid, type - -```