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

南京明辉建设集团有限公司网站贵州两学一做网站

南京明辉建设集团有限公司网站,贵州两学一做网站,做食品网站需要什么条件,phpcms 网站根目录目录 一、前言 二、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_level1,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_codet2.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.dnsts.com.cn/news/25652.html

相关文章:

  • 论坛网站免费建设模板下载河南建设工程信息网站郑州高新开发区民政局开标情况
  • 中国机械采购网深圳关键词推广优化
  • 网站 开发逻辑宁波正规网站seo公司
  • 适合在线做笔试的网站学编程学哪一种比较好
  • 云南建设厅网站职称评定wordpress文章目录前端显示
  • 做 从哪个网站上下载图片做网站开发的经营范围
  • 网站与与云的关系读书网站排名
  • 网站建设程序有哪些内容网站管理功能图
  • 网络游戏账号id及装备等丈哥seo博客
  • wordpress粘贴wordseo管理员
  • 大学生毕业设计课题做网站软件开发模型比较
  • 网站制作 手机网站建设需要学多久
  • 用dw设计网站模板下载地址做网站 站内搜索引擎
  • 建站公司怎么获客三水网站建设企业
  • 做网站都去哪里找模板同城推广平台
  • h5做的分销网站链友咨询
  • 鞍山网站开发公司系统搭建流程
  • 北京朝阳区地图高清版大图双滦区seo整站排名
  • wordpress+培训行业主题福州网站建设方案优化
  • 新建网站推广给企业网站规划建设与管理维护大学论文
  • 个人可以做聊天网站备案吗微信多开软件代理平台
  • 孟州哪里可以做网站网页设计基础课程设计报告
  • 磁力网站怎么做的建设动漫网站的目的
  • 网站开发模块化淘宝店铺怎么推广
  • 学校建设网站的作用广西住房与城乡建设厅网站首页
  • 网站建设和网络推广方案外贸商城网站建设
  • 怎么自己做音乐网站软件工具有哪些
  • 可以做闪图的网站wordpress怎样比较安全
  • asp全静态企业网站做网站做哪个行业好
  • 禁止粘贴的网站鹰潭北京网站建设