当前位置: 首页 > article >正文

国产数据库-崖山使用介绍

本文档基于崖山数据库23.3 个人版本,单机(主备)部署模式的情况下的使用介绍。

数据库实例状态:

· NOMOUNT:仅读取参数文件,不加载数据库

· MOUNT:读取控制文件,加载数据库,但是数据库处于关闭状态

· OPEN:加载并打开数据库

在这里插入图片描述

通过yasboot命令切换不同实例状态:

# 方式一:先关闭然后启动数据库集群至NOMOUNT状态

yasboot cluster stop -c yashandb 
yasboot cluster start -c yashandb -m nomount

# 方式二:一键重启数据库集群至NOMOUNT状态

yasboot cluster restart -c yashandb -m nomount

通过命令命令 yasql user/password 进入数据库实例,查看当前实例状态,SELECT status FROM V$INSTANCE; 可以看到显示状态为 STARTED。

通过sql可以修改数据库实例:

ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;

以下是一些常用的系统表查询

1、判断表是否存在

SELECT COUNT(*) FROM SYS.ALL_TABLES WHERE OWNER = 'XHAO' AND TABLE_NAME = 'YASGIS'

2、获取表分区列名

SELECT ucc.TABLE_NAME,
         uc.CONSTRAINT_NAME,
         ucc.COLUMN_NAME
FROM SYS.ALL_CONSTRAINTS uc
JOIN SYS.ALL_CONS_COLUMNS ucc
    ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.CONSTRAINT_TYPE = 'P'
        AND uc.TABLE_NAME = 'YASGIS'
        AND uc.OWNER = 'XHAO';

CONSTRAINT_TYPE 用于标识约束的类型,常见的约束类型包括:

‘P’:主键约束(Primary Key)

‘U’:唯一约束(Unique)

‘C’:检查约束(Check)

‘F’:外键约束(Foreign Key)

‘R’:引用约束(Referential Integrity)

‘X’:其他约束

3、获取表的空间列名

SELECT F_GEOMETRY_COLUMN FROM MDSYS.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'XHAO' AND F_TABLE_NAME = 'YASGIS';

4、获取表的geotype

SELECT "TYPE" FROM MDSYS.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'XHAO' AND F_TABLE_NAME = 'TEST_SHP';

5、获取表的空间类型

select st_geometrytype("shape") from XHAO.TEST_SHP limit 1

6、获取表的空间引用

SELECT PROJ4TEXT FROM MDSYS.SPATIAL_REF_SYS WHERE SRID = 4326/*${wkid}*/;

7、获取表的wkid

SELECT SRID FROM MDSYS.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'XHAO' AND F_TABLE_NAME = 'YASGIS';
SELECT ST_SRID("GEOM") FROM XHAO.YASGIS LIMIT 1;

8、获取表的空间维度(Z维度/M维度)

SELECT ST_AsBinary("GEOM") from XHAO.YASGIS limit 1;

Z维度:在空间数据(如地理信息系统 GIS)中,几何图形通常表示为点、线或多边形等类型的几何对象。这些对象通常有两个维度(2D),即 X 和 Y(经度和纬度)。在某些应用中,还可能引入第三维度——Z 维度,表示高度、深度或其他与空间位置相关的数值。

geometry.hasZ:判断一个几何对象是否包含Z坐标的方法或属性。如果几何对象是三维的,即包含Z坐标,返回true;如何是二维的,没有Z坐标,返回false。

M维度:在空间数据中,除了常见的 X, Y 和 Z 坐标外,还可以使用一个额外的 M 坐标,通常用于存储一些附加的测量值或时间信息。这种 M 坐标不代表空间位置,而是用于表示与几何对象相关的其他数据。例如长度、重量、时间、温度、道路流量信息、污染物浓度等

geometry.hasM 用来判断一个几何对象是否包含 M 维度。如果几何对象含有 M 坐标(如附加的测量数据),则返回 true;如果没有 M 坐标,则返回 false

9、判断 GEOMETRY_COLUMNS是否存在

 SELECT  COUNT(*) FROM SYS.ALL_TAB_COLS WHERE OWNER = 'MDSYS' AND TABLE_NAME = 'GEOMETRY_COLUMNS'

10、获取表ID

SELECT OBJECT_ID FROM SYS.ALL_OBJECTS WHERE OWNER = 'XHAO' AND OBJECT_NAME = 'YASGIS' AND OBJECT_TYPE = 'TABLE';

以下是对于表的一些操作:

1、创建表

CREATE TABLE XHAO.YASGIS(
	FID INT,
	value VARCHAR(255),
	GEOMETRY ST_GEOMETRY
)

2、新增列(设置not null 需对应列没有存储数据)

ALTER TABLE XHAO.YASGIS ADD ("OID" INT NOT NULL PRIMARY KEY)
ALTER TABLE XHAO.YASGIS DROP COLUMN "GEOM" 
ALTER TABLE XHAO.YASGIS ADD COLUMN "shape" MDSYS.ST_GEOMETRY

3、添加空间索引

CREATE RTREE INDEX XHAO.shape_2326_1_SDIX ON XHAO."TEST_SHP" ("shape")

4、批量写入数据(可以同时写入不同的表)

-- 语句后面必须有subquery  
INSERT ALL INTO XHAO.YASGIS(ID,GEOM) VALUES(1,ST_GEOMFROMTEXT('POINT(1 1)'))
           INTO XHAO.YASGIS(ID,GEOM) VALUES(2,ST_GEOMFROMTEXT('POINT(2 2)'))
           INTO XHAO.YASGIS(ID,GEOM) VALUES(3,ST_GEOMFROMTEXT('POINT(3 3)'))
 		   SELECT * FROM DUAL
--插入不同的表
INSERT ALL INTO area VALUES('00','unknown','unknown')
		   INTO branches VALUES('0002','南山','00','----')
		   INTO branches VALUES('0003','福田','00','----')
		   SELECT * FROM DUAL;

5、JDBC使用

在Java中使用JDBC执行sql,sql中不能以";"结尾,否则会报异常 YAS-04209 ,非法的单词。


http://www.kler.cn/a/460221.html

相关文章:

  • 直观解读 JuiceFS 的数据和元数据设计(一)
  • Netty学习 - 编译Netty4.2
  • 大语言模型提示技巧(二)-给模型时间思考
  • el-pagination 为什么只能展示 10 条数据(element-ui@2.15.13)
  • yolo数据集格式(txt)转coco格式,方便mmyolo转标签格式
  • 查询docker overlay2文件夹下的 c7ffc13c49xxx是哪一个容器使用的
  • 【视觉SLAM:八、后端Ⅰ】
  • C语言插入排序及其优化
  • 微服务のGeteWay
  • iPhone修复技巧|iPhone异常问题的常用修复方法
  • Excel文件恢复教程:快速找回丢失数据!
  • 位运算与操作符应用
  • Element plus 的 upload 组件实现自定义上传
  • 为什么要用ZGC
  • rocketmq5源码系列--(二)--生产者发送消息
  • Java基础(五): 案例练习;
  • 2024年度AI与科技突破:量子计算引领创新浪潮
  • 实战设计模式之策略模式
  • 操作系统(26)数据一致性控制
  • 计算机网络•自顶向下方法:网络层介绍、路由器的组成
  • 网工日记:FTP两种工作模式的区别
  • dockerfile 安装 Python 依赖,修改为国内的镜像源
  • [react]小技巧, ts如何声明点击事件的类型
  • 快速了解开源日志框架log4net:灵活记录应用程序日志信息的利器
  • 《代码随想录》Day20打卡!
  • 使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器实现可迭代式数据集