首页 > 其他分享 >新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?

时间:2024-01-02 10:06:06浏览次数:29  
标签:max repeat level PieCloudDB Database tree 圣诞树 christmas SELECT

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏

随着圣诞节的到来,

很多城市也都张灯结彩,

处处充满了节日气息。

圣诞节当然离不开圣诞树啦!

和家人一起挂上圣诞装饰,

树下放上互相准备的小礼物,

小小的仪式感,

充满了浪漫与温馨。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_自动启动_02

今天,

我们将教你在 PieCloudDB Database 中

“种”下今年的圣诞树!

就像种树前需要松土、挖种植坑,

在拥有一棵圣诞树之前,

我们也需要准备一下环境。

PieCloudDB 云上云版提供免费试用。

打开浏览器,

输入「app.pieclouddb.com」;

在注册页面填入信息后,

点击「完成注册」,

即可免费试用 PieCloudDB 云原生虚拟数仓。

在左侧菜单栏进入「虚拟数仓」页面,

点击「新建虚拟数仓」,填入「christmas_land」,

选择执行节点数量后,点击「确认」。

新的虚拟数仓将在创建后自动启动并运行。

当虚拟数仓的状态显示「运行中」后,

即可使用该计算资源。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_03

点击菜单栏「数据洞察」进入功能页面。

点击「文件」,新建 SQL 文件;

可将 SQL 文件重命名为「christmas_tree」。

单击打开该 SQL 文件。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_04

选择默认数据库「openpie」,与虚拟数仓「christmas_land」,

相应文件内容便会在「查询编辑器」中展示。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_自动启动_05

如果你还想

探索 PieCloudDB 云上云更多功能,

欢迎点击菜单栏左下方「新手指引」,

阅读相关文档。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_06

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_07

准备工作已经完成啦,

现在我们准备“种”树啦!

在「查询编辑器」中输入这段 SQL:

WITH RECURSIVE christmas_tree(level, max_level) AS (
  SELECT 1, 7 -- 设置最大层数
  UNION ALL
  SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level
)
SELECT 
 CASE
  WHEN level = max_level THEN lpad('', max_level - 1,  ' ') ||  repeat('|',1) || repeat('|',1)
  ELSE lpad('', max_level - level, ' ') || repeat('*', (level * 2) - 1) 
 END AS my_christmas_tree
FROM
  christmas_tree;

执行后,你便可以得到这样一棵这样的圣诞树:

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_SQL_08

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_09

有了一颗圣诞树,

现在需要为它挂上各种装饰啦!

我们再运行一下这段 SQL:

WITH RECURSIVE christmas_tree(level, max_level) AS (  
  SELECT 1, 7 -- 设置最大层数  
  UNION ALL  
  SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level  
)SELECT  
  CASE  
    WHEN level = 1 THEN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2)  
    WHEN level = max_level THEN lpad('', (max_level - 1),  ' ') ||  repeat('|',1) || repeat('|',1)  
    ELSE lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2) || repeat('*', 1)  
  END AS tree  
FROM  
  christmas_tree;

圣诞树上挂满了漂亮的小彩灯,

在冬夜里,温暖了整个房间。

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_10

如果你和我一样,

已经沉浸在这节日的喜悦中,

你可以输入这段 SQL:

CREATE OR REPLACE FUNCTION generate_tree_row(level INT, max_level INT)  
  RETURNS TEXT AS $$  
BEGIN  
  IF level = 1 THEN  
    RETURN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2);  
  ELSIF level = max_level THEN  
    RETURN lpad('', (max_level - 1), ' ') || repeat('|', 1) || repeat('|', 1);  
  ELSE  
    RETURN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2) || repeat('*', 1);  
  END IF;  
END;  
$$ LANGUAGE plpgsql;  
  
WITH RECURSIVE christmas_tree(level, max_level) AS (  
  SELECT 1, 7 -- 设置最大层数  
  UNION ALL  
  SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level  
) SELECT  
  generate_tree_row(level, max_level) AS tree,  
  generate_tree_row(level, max_level) AS tree2,  
  generate_tree_row(level, max_level) AS tree3  
FROM  
  christmas_tree;

现在,

你得到了一个圣诞树森林!

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_11

圣诞树「种」好啦!

愿这棵小树满载着对未来的祝福与期许,

和你一起度过

这个充满快乐和祥和的圣诞节,

祝大家圣诞快乐!

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_自动启动_12

新玩法!如何在 PieCloudDB Database 中“种”一棵圣诞树?_菜单栏_13

标签:max,repeat,level,PieCloudDB,Database,tree,圣诞树,christmas,SELECT
From: https://blog.51cto.com/u_16396625/9062939

相关文章

  • OpenTSDB: The Ultimate Guide for Time Series Database Management
    1.背景介绍OpenTSDB,全称为Open-SourceTimeSeriesDatabase,是一个开源的时间序列数据库管理系统,专为监控和日志收集而设计。它能够高效地存储和检索大量的时间序列数据,支持多种数据源,如Hadoop、Graphite、Ganglia等。OpenTSDB的设计目标是提供一个可扩展、高性能、高可用性的......
  • redis设置database 不生效剖析
    (设置database不生效剖析)前言  事情是这样的今天在拉取了同事的代码做redis缓存设置的时候,发现即使已经设置了database,但是存数据的时候还是用的默认0数据库。这引起了我的好奇,遂开始琢磨是什么情况造成的这种现象。配置上述仅为测试代码问题,为了便于维护可以这么写......
  • 在Python中,如果你想查找特定的SQLite数据库文件(例如'mydatabase.db'),你可以使用os模块
    这是Python中os.walk()函数的常见用法¹²⁴⁵⁶。os.walk()函数用于递归遍历指定目录及其子目录,并返回一个生成器,每次迭代都会返回一个包含三个元素的元组:当前目录的路径、当前目录下所有子目录的列表和当前目录下所有文件的列表¹²⁴⁵⁶。在fordirpath,dirnames,filenamesi......
  • Camstar service:Database Unavailable报错
     原因说明:我们用的半导体8.5版本的。然后开发desginer用的2.0。问题就是出在2.0上,我们几个同事都是用2.0designer开发的,2.0导出差异一直报错,用的1.0导出差异不报错,后续再导入差异合并。(2个人的差异合并,更新直接系统挂了)。解决方案:拿原始档mdb,用designer1.0打开,导入A同事的差异,......
  • C++ Qt开发:QSqlDatabase数据库组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSqlDatabase数据库模块的常用方法及灵活运用。QtSQL模块是Qt框架的一部分,它提供了一组类和函数......
  • SQL Server Management Studio (SSMS)教程:创建数据库create database、创建表create t
    USEmasterGOIFNOTEXISTS(SELECTnameFROMsys.databasesWHEREname=N'TutorialDB')CREATEDATABASE[TutorialDB]GOUSE[TutorialDB]--Createanewtablecalled'Customers'inschema'dbo'--Dropthetable......
  • Cloud Databases
    CloudOLTPArchitecturesOLTPArchitecturesComputationBufferStorageDisaggregatedCompute-StorageOneRWPrimaryNode+MultipleROSecondaryNodesLocalCacheforeachComputeNodeAggregatedLog&PageStorageDisaggregatedCompute-Log-St......
  • 同 一个database 不同 schema 是什么意思
    同一个database不同schema是什么意思?在数据库系统中,"同database不同schema"的概念通常适用于那些支持多模式架构的数据库管理系统,如Oracle和SQLServer。在这样的数据库中,一个数据库(database)是一个逻辑实体,可以包含多个模式(schema)。每个模式代表了一个命名空间,用来组......
  • 搭建DG备库Recover database报错ORA-19909、ORA-01110
    一、问题现象客户环境LinuxOracle11.2.0.4两节点RAC主库,2节点备库;需要对这个客户的数据库使用dg切换进行迁移;第一轮搭建ADG完成后,failoverDG备库变成测试库给开发应用人员进行测试;第二轮正式切换之前,搭建重建ADG环境,restoredatabase正常,recoverdatabase报错ThuOct......
  • Laravel开发中的数据库迁移Database Migrations和 对象关系映射Eloquent ORM
    当涉及到Laravel中的数据库操作时,数据库迁移和EloquentORM是两个重要的概念。它们用于管理数据库结构和进行数据操作,但在功能和用途上有所不同。数据库迁移(DatabaseMigrations)是Laravel中用于管理数据库结构变化的工具。它允许您通过编写简单的代码来创建、修改或删除数......