项目中,经常会碰到多级的树形结构数据,如地区信息,省.市.区.街道等,或客户关系信息上三级,下三级等. 实际项目中,我们可能碰到以下两种需求: 一条记录中呈现路径:省 - 市 - 区 - 街道 一条记录中呈现上几级:上级,上上级,上上上级 此情此景,使用 WITH RECURSIVE 递归查询再合适不过. 递归查询 在介绍 WITH RECURSIVE 之前,我们先介绍一个 WITH 通过 WITH ,我们可以在写查询语句之前,为一个需要用到的子查询定义一个临时的别名,该别名可以查询语句中使用,…
JSON 可谓风靡互联网,在数据交换使用上,其优势特别明显,其结构简洁.可读易读.形式灵活.很多 API 接口的数据都采用 JSON 来表示. PostgreSQL 对 JSON 提供了良好的支持.具体的相关函数可参考:JSON类型和函数 从使用的角度而言,个人觉得常见的应用场景为: 读取单个 JSON 的属性值 遍历单个 JSON 的所有属性 遍历一个 JSON 数组 创建一个 JSON 作为返回值 之所以仅这些简单的场景,原因在于,在应用中使用高级语言处理 JSON 与在数据库中使用那些高级…
在实际应用中,对于具体的数据计算我们会找相应的函数来实现.而计算需求不同的表达,往往会使得我们使用不同的函数或方式来实现.或者也可以说,同一计算可以使用多种不同的表达方式实现. PostgreSQL 提供非常丰富的类型及函数,一些常用的函数可参考此文. 以下我们通过实例来展示几个常用的函数表达场景 首先,我们创建示例数据如下 CREATE TABLE table_test ( id int PRIMARY KEY, test_name varchar(10), -- 名称 group_code…
问题的提出 在项目中,有些表的记录增长非常快,记录数过大时会使得查询变得困难,导致整个数据库处理性能下降.此时,我们会考虑按一定的规则进行分表存储. 常用的分表方式是按时间周期,如每月一张,每天一张等.当每月或每天首条记录到达时,根据表结构创建该周期为后缀的表进行存储. 相关考虑 这其中主要考虑两个问题: (1)如何复制表 采用分表机制,通常会建立一个模板表.所谓模板表,是只定义结构不存储数据的,也可称之为类表,而分表,通常会以增加后缀的方式命名,如 log_201901,分表实际存储数据,可称…
package com.example.spinnerdemo; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends…
在项目中,有时会动态地按周期(如按月)封存统计数据,通常需要做这样的处理: 以按月封存为例,当月数据到达时,先需要检查该月是否有过记录,有则以更新的方式累加统计数字,无则添加一条记录. 假设我们创建以下月封存表 month_stat,字段 month_name 表示月份,字段 total_count 表示统计数字. CREATE TABLE month_stat (month_name varchar(6), total_count int, UNIQUE (month_name)); 普通处理…
由于项目中使用了react 及 ant-design ,在使用tree树型控件时,需要 类似下面的数据, const treeData = [{ title: '0-0', key: '0-0', children: [{ title: '0-0-0', key: '0-0-0', children: [ { title: '0-0-0-0', key: '0-0-0-0' }, { title: '0-0-0-1', key: '0-0-0-1' }, { title: '0-0-0-2',…
一.模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module). 使用模块有什么好处? 最大的好处是大大提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用…
简介 Java中为什么要设计访问权限控制机制呢?主要作用有两点: (1)为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作时必要的,但是它并不属于客户端程序员所需接口的一部分. (2)为了让类库设计者可用更改类的内部工作方式,而不必担心会对用户造成重大影响. Java中的访问权限控制的等级,按照权限从大到小依次为: Public -> protected -> 包访问权限(没有权限修饰词)-> private. 包(package) Java中包(package)的概念和…
本节大纲: 1.模块介绍 2.time&datetime 3.random. 4.os 5.sys 6.shutil 7.json&picle 8.shelve 9.xml处理 10.yaml处理 11.configparser 12.hashlib 13.subprocess 14.logging模块 15.re正则表达式 模块的定义:用一堆代码实现了某个功能的代码集合 类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合,而对…