数据库存储过程问题,请指教下,这怎么把统计数据存到指定表里面,目前是没有数据存到表里面

数据库存储过程问题,请指教下,这怎么把统计数据存到指定表里面,目前是没有数据存到表里面,第1张

你这里净用些不该用的东西,不是就存一个数吗?为啥要用循环?为啥要用动态sql?为啥insert后不写commit?

创建测试表:

create table demo 

(cnt int);

创建存储过程:

create or replace procedure p_test --存储过程名我改了,存储过程最好以p开头,比较容易统一管理

as

v_cnt int; --变量名改了

begin

select count(1) into v_cnt from emp; -- table1换成emp了,这个你随意,只是我这边没有table1

insert into demo values(v_cnt);

commit; --加了commit

end;

你是想实现这个功能吗?

上期分享中,我们介绍优炫数据库支持的数据存储方式。

戳: 干货分享 优炫数据库支持多业务场景

本期,我们来讲讲优炫数据库支持的多种数据类型

基本数据类型存储与管理

优炫数据库拥有完备的数据类型,内置数据类型包括 数字类型、货币类型、字符类型、日期/时间类型、布尔类型、枚举类型、网络地址类型、位串类型、文本搜索类型等, 支持使用 serial 类型创建表自增列。

通常为了加快指定过滤条件下从表中查询数据的速度,可以为表的某个字段或某几个字段建立索引。数据库对基本数据提供多种索引类型:B-tree、Hash、GIN(倒排序索引)和 BRIN(数据库块范围索引)。每一种索引类型使用了一种不同的算法来适应不同类型的查询。 默认情况下, CREATE INDEX命令创建适合于大部分情况的B-tree索引。

XML/JSON数据类型存储与管理

优炫数据库内置半结构化XML、JSON、JSONB数据类型。

xml数据类型可以被用来存储XML数据,它比直接在一个text域中存储XML数据的优势在于,它会检查输入值的结构是不是良好,并且有支持函数用于在其上执行类型安全的 *** 作。xml类型可以存储结构良好(如XML标准所定义)的“文档”,以及“内容”片段,它们由XML标准所定义,这意味着内容片段中可以有多于一个的顶层元素或字符节点。通过表达式来评估一个特定的xml值是一个完整文档或者仅仅是一个文档片段。

JSON类型强制检查数据有效性,使用专门的 *** 作符和内置函数 *** 作数据,保留空格,重复键和顺序等。JSONB是解析输入后保存的二进制数据,删除了数据中的空格、调整了顺序、优化了存储、保留最后一个重复键值,可被索引。和 JSON 一样,JSONB支持嵌入式的文档和数组。JSONB 由若干个键值对存储为单个实体,这种实体称为文档。 JSONB具有以下几个特性:轻量级(Lightweight),可遍历性(Traversable),高效性(Efficient)。 由于所需存储更小,JSONB通常是首选格式。两者区别在于:JSON类型写快读慢,JSONB类型写慢读快,支持SQL/JSON路径语言。此外,数据库支持对这两类数据的全文检索。

GIS空间类型存储与管理

优炫数据库支持GIS的地理信息应用,支持PostGIS、ArcGIS、超图,支持OpenGIS联盟(开放地理信息系统,OGC)抽象数据类型的SQL3规范,提供对地理矢量数据、3D模型、线性参考数据的组织、存储、空间索引和管理。

Geometry(几何对象类型)是优炫数据库的一个基本存储类型, 空间数据都会以Geometry的形式存储在数据库里,本质是个二进制对象。使用OGC推荐的WKT(Well-Known Text)和WKB(Well-Known Binary)格式进行描述,大幅增加了易用性,WKT与WKB基本数据类型(矢量数据)包括:

l (POINT):例如POINT(0 0);

l 线 (LINESTRING):例如LINESTRING(0 0,1 1,1 2)

l (POLYGON多边形):例如POLYGON((0 0,4 0,4 4,0 4,0 0)) 简单多边形,例如POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) 多边形有一个内部的"孔洞(hole)";

l 多点 (MULTIPOINT):例如MULTIPOINT((0 0),(1 2));

l 多线 (MULTILINESTRING):例如MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4));

l 多面 (MULTIPOLYGON):例如MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)));

l 几何集合 (GEOMETRYCOLLECTION):例如GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))。

栅格空间数据类型raster用于表示jpeg,tiff,png,DEM模型这样文件格式的数据。每一个栅格至少有1个波段,每个波段又有一系列像素值,栅格数据是转换成地理坐标的。可以从数据库外部导入已有栅格数据,也可在数据库内创建栅格数据。下面是一个在数据库内部创建栅格数据的示例:

拓扑类型和函数用于管理拓扑结构,比如面、边界和点。

创建一个带有栅格记录的栅格列的表可以用下面的SQL完成:

如果创建的栅格不依赖于其他栅格,那么可以使用函数:

ST_MakeEmptyRaster,接着使用ST_AddBand添加栅格数据。也可以使用geometry对象来创建栅格你需要使用函数ST_AsRaster。可能还需要和其他函数比如函数ST_Union 或函数 ST_MapAlgebraFct 或者其他地图代数系列函数联合使用。甚至还有一些根据一些已经存在的栅格表创建新的栅格表的可选函数。例如可以使用函数ST_Transform 根据一个已有的栅格表在其他投影系中创建一个新的栅格表。然后通过下SQL命令创建一个空间索引:

通过空间索引R-Tree实现空间数据查询和 *** 作,R-Tree将数据分解为矩形(rectangle)、子矩形(sub-rectangle)和子-子矩形(sub-sub rectangle)等。它是一种可自动处理可变数据的密度和对象大小的自调优(self-tuning)索引结构。

图数据存储与管理

图数据以图关系这种数据结构存储,把图数据的顶点和边信息存储到关系型数据类型中,这些信息包括:

l 顶点(Vertices):一个实体一个顶点,一个实体可以有多个属性。

l 边(Edges):两个实体之间的连接线。

l 属性:实体和边都可以有多个属性。形象举个例子,一个实体对应关系表中一行记录,一个实体的属性代表关系表中这行记录的所有字段和值构成的键值对。

在优炫数据库中图数据通过关系型数据进行存储,这些数据与图模型中的数据相对应。例如通过下SQL语句建立存储图数据的表:

然后新增加数据,后续就可以根据这些数据进行图相关的计算和分析了。

时序数据存储与管理

时序数据存储和管理,通过把时序数据存储到关系型数据类型中。时序数据是指时间序列数据。时间序列数据是同一统一指标按时间顺序记录的数据列。在同一数据列中的各个数据必须是同口径的,要求具有可比性。时序数据可以是时期数,也可以时点数。时间序列分析的目的是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型,进行样本外预测。

文档//视频类型存储与管理

优炫数据库可存储任意未知具体内容的、声音、视频等非结构化数据,支持 GB 级大对象数据类型与流式数据访问。可借助于数据库图形化管理工具、应用程序、第三方工具等查看这些非结构化数据。根据业务需要也可借助数据库插件读取或识别这些非结构化数据的内容用于数据分析。

优炫数据库支持多种二进制数据类型,包括:Bytea、OID、Blob、raw、Varbinary、Longvarbinary。

自定义数据类型存储与管理

优炫数据库可自定义数据类型、索引、函数等数据库对象。 新增加的数据类型可以是新数据类型,也可以是已知几个数据类型的复合数据类型。

模分析型数据库用户可在数据库中使用CREATE TYPE或CREATE DOMAIN命令增加新的数据类型;可通过自定义函数或存储过程对数据进行各种处理。

CREATE TYPE在当前数据库中注册一种新的数据类型,定义数据类型的用户将成为它的拥有者。五种形式的CREATE TYPE,它们分别创建组合类型、枚举类型、 范围类型、基础类型或者 shell 类型。shell 类型仅仅是一种用于后面要定义的类型的占位符,通过发出一个不带除类型名之外其他参数的CREATE TYPE命令可以创建这种类型。在创建范围类型和基础类型时,需要 shell 类型作为一种向前引用。

CREATE DOMAIN创建一个新的域。 域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如,几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。

数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图

三种模式分别指:外模式:外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据 *** 纵语言(DataLanguage,DML)对这些数据记录进行 *** 作。外模式反映了数据库的用户观。

概念模式

模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(DataDescriptionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。

内模式

内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。

在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。

以上就是关于数据库存储过程问题,请指教下,这怎么把统计数据存到指定表里面,目前是没有数据存到表里面全部的内容,包括:数据库存储过程问题,请指教下,这怎么把统计数据存到指定表里面,目前是没有数据存到表里面、干货分享|优炫数据库支持多业务场景(二)、数据库包含的三级模式分别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9698357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存