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

淘宝做动图网站中国十大知名网站建设

淘宝做动图网站,中国十大知名网站建设,可以自己做效果图的网站,八师石河子精神文明建设网站目录 一、前言 二、GuassDB数据库层次递归查询概念 三、GaussDB数据库层次递归查询实验示例 1、创建实验表 2、sys_connect_by_path(col, separator) 3、connect_by_root(col) 4、WITH RECURSIVE 四、递归查询的优缺点 1、优点 2、缺点 五、总结 一、前言 层次递归…

目录

一、前言

二、GuassDB数据库层次递归查询概念

三、GaussDB数据库层次递归查询实验示例

1、创建实验表

2、sys_connect_by_path(col, separator)

3、connect_by_root(col)

4、WITH RECURSIVE

四、递归查询的优缺点

1、优点

2、缺点

五、总结

一、前言

层次递归查询是一种常见的SQL查询方式,特别是在一些层次化的数据存储结构中经常用到。本文主要以GaussDB数据库为实验平台,为大家讲解其使用方法。

二、GuassDB数据库层次递归查询概念

层次化结构可以理解为树状数据结构,由节点构成。举个简单的例子,如下图所示,由子节点向上查询根节点,或者由根节点遍历所有子节点:

递归查询是指查询中需要多次调用自身的查询方式。在递归查询中,查询会反复地递归进入到一个子查询中,直到查询得到满足条件的结果或遍历完整个查询范围。递归查询在数据库领域中有着重要的应用。方便数据处理,简化开发代码。

在GaussDB数据库中,递归查询可以通过使用 “select…start with…connect by…prior…” 和“WITH RECURSIVE”语法来实现。

三、GaussDB数据库层次递归查询实验示例

1、创建实验表

--创建实验表
CREATE TABLE area(a_code VARCHAR(10)
,a_name VARCHAR(10)
,p_a_code VARCHAR(10)
,a_level INT);--插入测试数据
INSERT INTO area VALUES('610000','陕西省','0','1');
INSERT INTO area VALUES('610100','西安市','610000','2');
INSERT INTO area VALUES('610101','市辖区','610100','3');
INSERT INTO area VALUES('610102','新城区','610100','3');
INSERT INTO area VALUES('610103','碑林区','610100','3');
INSERT INTO area VALUES('610104','莲湖区','610100','3');
INSERT INTO area VALUES('610111','灞桥区','610100','3');
INSERT INTO area VALUES('610112','未央区','610100','3');
INSERT INTO area VALUES('610113','雁塔区','610100','3');
INSERT INTO area VALUES('610114','阎良区','610100','3');
INSERT INTO area VALUES('610115','临潼区','610100','3');
INSERT INTO area VALUES('610116','长安区','610100','3');
INSERT INTO area VALUES('610122','蓝田县','610100','3');
INSERT INTO area VALUES('610124','周至县','610100','3');
INSERT INTO area VALUES('610125','鄠邑区','610100','3');
INSERT INTO area VALUES('610126','高陵区','610100','3');--查看初始化结果
SELECT * FROM area;

2、sys_connect_by_path(col, separator)

描述:返回从根节点到当前行的连接路径。

参数:col为在路径中显示的列名,支持类型为CHAR/VARCHAR/NVARCHAR2/TEXT的列,参数separator为路径节点之间的分隔符。

返回值类型:text

示例:

--返回从根节点到当前行的连接路径
SELECT  *, sys_connect_by_path(a_name, '-') FROM area start with a_code ='610000' connect by prior a_code = p_a_code;

3、connect_by_root(col)

描述:返回当前行的根节点值。

参数:col为输出列的名称。

返回值类型:即为所指定列col的数据类型。

示例:

--返回当前行的根节点值。
SELECT *, connect_by_root(a_name) FROM area start with a_code ='610000' connect by prior  a_code = p_a_code;

4、WITH RECURSIVE

使用WITH RECURSIVE 关键字:

--使用WITH RECURSIVE
WITH RECURSIVE t_area AS (
SELECT a_level,a_code,p_a_code,a_name, a_name ::varchar(50) AS path FROM area WHERE p_a_code = '0'
UNION ALL
SELECT t2.a_level+1,t1.a_code,t1.p_a_code, t1.a_name,CONCAT(t2.path, ',', t1.a_name) ::varchar(50) AS path FROM area t1 JOIN t_area t2 ON t1.p_a_code=t2.a_code
) SELECT * FROM t_area;

示例说明:这个查询使用了递归表达式来遍历省级行政区域关系。表达式使用了两个 SELECT 语句:第一个 SELECT 语句选取了所有父级代码为0的行政区域信息,并将它们添加到临时表 t_area 中。它们的层级选取初始化的a_level级,并且它们的路径被设置为它们的行政区名a_name。这个 SELECT 语句是递归查询的起点。第二个 SELECT 语句连接了 area表和t_area表。它选取了area表中所有具有父级行政区,并连接到t_area表中已经存在的行政区。对于每个连接的行,它们的层级是父级的层级加1,并且它们的路径是父级的路径加上逗号和它们自己的行政区。查询结果返回t_area表中所有的行政区信息。

(“::varchar(50)” 是创建实验表时的字符长度不够,需要重新定义,二是两个SELECT 语句使用 UNION ALL 连接,需要保持类型长度一致)。

四、递归查询的优缺点

1、优点

递归查询能够简化应用程序代码,方便对数据结构的处理。在一些复杂的查询场景中,递归查询能够更快地得到结果。适用于各种类型的树形结构。

2、缺点

递归查询有时可能会产生很多次递归调用,导致性能下降。算法通常比其他方法更复杂,编写比较困难。不适合处理大型数据集。

五、总结

递归查询是一种非常实用的查询方法,在处理分层数据、树形数据等复杂查询场景中非常广泛。但是,在使用递归查询时需要注意一些问题:

  • 必须合理控制递归深度,防止过度递归。
  • 最好不要在递归查询中执行复杂的计算和组合操作,避免占用过多资源。
  • 避免在递归查询中使用ORDER BY操作,这会大大降低性能。
  • 在使用递归查询时,应该谨慎处理好死循环问题。

同样的, 在使用GaussDB等数据库时,只要正确合理的应用递归查询,就可以更好地提高查询效率和应用性能。

——结束

http://www.15wanjia.com/news/173113.html

相关文章:

  • 深圳网站建设机构菜鸟必读 网站被入侵后需做的检测 2
  • 网站备案链接wordpress配置文件是
  • 下载站cms如何做阿里巴巴网站
  • 网站ip屏蔽有哪些做室内设计好用的网站
  • 外国平面设计网站成功的网站必须具备的要素
  • 长沙微商城网站建设软件技术专业主要学什么
  • 湖南设计网站机构it外包行业
  • 国内十大旅游网站排名域名服务器上存放着internet主机的
  • 快云服务器怎么做网站陵水网站建设费用
  • 网站品牌建设功能开源博客程序WordPress下载
  • 佛山网站关键词优化公司上海建网站公司排名
  • 关键词网站推广深圳 网站设计
  • 织梦怎么做网站地图做推广哪个网站好
  • 贵州省住房和城乡建设厅官网站首页凤凰一级a做爰片免费网站
  • 影视vip网站建设教程wordpress评论框required
  • 克隆网站到wordpress修改dede网站搬家 空间转移的方法
  • 长春建站网站合肥科技职业学院网站建设与管理
  • 网站建设哪家好知道万维科技品牌建设部门的规章制度
  • 南京营销型网站建设phpcms做网站感想
  • 京东做代码的网站吗wordpress拖拽插件
  • 网站开发项目总结范文打开自己的网站是别人的域
  • 天水市秦州区作风建设年网站在国外做购物网站
  • 网站怎么做关键词怎么优化佛山网站建设方案服务
  • 个人网站可以做淘宝推广做网站电销话术
  • 网站开发地图板块浮动房产交易网站建设策划案
  • 访问网站详细过程中装建设法人
  • 江苏建设厅网站更新seo兼职在家怎么做
  • 物流公司网站怎么做太原网站开发培训
  • 梅河口网站建设北京网站建设市场
  • 网站建设图片logo网络舆情监测 toom