
一文速学-SQL各类数据库操作
文章平均质量分 92
以实例代码一步一步循序渐进,从夯实基础,砥砺前行,到实战查询,完成复杂查询以及合并归表。
fanstuck
曾世界百强私企大数据工程师,现任国企高级人工智能算法工程师,工作与研究方向为大数据开发和人工智能,个人喜欢研究技术和算法,博客热衷分享实用项目和技术干货。MCM/ICM Meritorious Winner,APMCM second prize,SCI二区一篇,软著五项专利一项,中国互联网+创新创业大赛省金国铜,全国计算机设计大赛省二国三,全国数统三等。总计省级奖项以上23项,热衷分享喜欢原创~关注我会给你带来一些不一样的认知和成长。
展开
-
数据开发/数仓工程师上手指南(一)数仓概念总览
数据库设计用于支持日常业务操作和事务处理。数据结构高度规范化,注重数据的一致性和实时性。优化事务处理性能,处理频繁的读写操作。数据仓库设计用于支持数据分析和决策支持系统。数据结构非规范化,存储大量的历史数据。优化查询性能,支持复杂的多维分析和大规模数据处理。数据库(Database)数据仓库(Data Warehouse)面向事务分析数据类型细节、业务综合、清洗过的数据数据特点当前的、最新的历史的、跨时间维护目的日常操作长期信息需求、决策支持设计模型。原创 2024-07-24 14:31:07 · 3198 阅读 · 13 评论 -
基于antlr-3.5.2+Python实现一般HiveSQL血缘解析(二)
作为一个开发实践项目,实现对HiveSQL语句的解析可以很有效的作为管理用户查询权限的管理。对于这方面的知识本身也不是非常熟悉了解,很多时候也是边学边记。身边也没有人指导这个方案具体该怎么实现怎么做,只有需求是要将复杂查询或者是关联建表的SQL语句能够将其库名和表名全都给提取出来并且能够实现上下游的追溯。这个功能最好还是用JAVA或者Scala写,毕竟Hive的底层还是JAVA写的方便,但是初步改写的话我常用语言还是python,java还是有点生疏的。原创 2022-10-09 09:13:47 · 1034 阅读 · 6 评论 -
基于antlr-3.5.2+Python实现一般HiveSQL血缘解析(一)
作为一个开发实践项目,实现对HiveSQL语句的解析可以很有效的作为管理用户查询权限的管理。对于这方面的知识本身也不是非常熟悉了解,很多时候也是边学边记。身边也没有人指导这个方案具体该怎么实现怎么做,只有需求是要将复杂查询或者是关联建表的SQL语句能够将其库名和表名全都给提取出来并且能够实现上下游的追溯。这个功能最好还是用JAVA或者Scala写,毕竟Hive的底层还是JAVA写的方便,但是初步改写的话我常用语言还是python,java还是有点生疏的。原创 2022-10-08 15:52:17 · 2710 阅读 · 15 评论 -
MySQL数据库基础:各类窗口函数操作一文详解
窗口函数适用场景:对分组统计结果中的每一条记录进行计算的场景下, 使用窗口函数更好。窗口函数(Window Function)可以像聚合函数一样对一组数据进行分析并返回结果,二者的不同之处在于,窗口函数不是将一组数据汇总成单个结果,而是为每一行数据都返回一个结果。聚合函数和窗口函数的区别如下图所示。窗口函数可以分为静态窗口函数和动态窗口函数,其中,静态窗口函数的窗口大小是固定的,不会因为记录的不同而不同;动态窗口函数的窗口大小会随着记录的不同而变化。原创 2022-10-06 14:15:41 · 3374 阅读 · 38 评论 -
MySQL数据库基础:JSON函数各类操作一文详解
很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。往常存储json一般都保留在pg库或者是hive库里面,现在mysql有了支持的话基本业务都可以用mysql来实现。现在mysql8.x版本对json字符出处理已经做的非常完善了。现在就让我们来详细了解一下关于json数据数据类型mysql都有哪些函数能够对其进行操作。原创 2022-10-03 22:13:39 · 2813 阅读 · 28 评论 -
MySQL存储引擎详解(一)-InnoDB架构
目前MySQL8.x版本数据库已经支持了很多存储引擎了,但是一般我们常用的就几种,容易形成思维固化不会轻易采取其他存储引擎,从而错失很多优化存储的功能。因此对现支持的九种数据库存储引擎的功能有个清楚的理解是个值得学习的事情。本篇文章将这八种数据库存储引擎的功能和作用以及使用场景都讲清楚。此系列文章将被纳入我的专栏一文速学SQL各类数据库操作,基本覆盖到使用SQL处理日常业务以及常规的查询建库分析以及复杂操作方方面面的问题。原创 2022-09-29 14:44:13 · 6354 阅读 · 87 评论 -
MySQL数据库基础:数据类型详解-二进制字符串类型
最近MySQL的技能树已经建成了,一直想要复习一遍MySQL的基础知识,正好趁着这次MySQL技能树的建成一起学习复习一下MySQL数据库的基本知识。也是一直在用这个数据库,有些基础的知识点长久不用就会遗忘,就比如数据类型溢出的问题,很多时候建表的时候随便给定个类似,结果导入数据的时候报错又得删表就很麻烦,如果提前做好数据长度设置可以有效的避免这个问题而且还能节省很多空间,因此对MySQL所有数据类型做个总结是一个值得的选择。原创 2022-09-27 10:21:14 · 1708 阅读 · 43 评论 -
MySQL数据库基础:数据类型详解-文本字符串类型
最近MySQL的技能树已经建成了,一直想要复习一遍MySQL的基础知识,正好趁着这次MySQL技能树的建成一起学习复习一下MySQL数据库的基本知识。也是一直在用这个数据库,有些基础的知识点长久不用就会遗忘,就比如数据类型溢出的问题,很多时候建表的时候随便给定个类似,结果导入数据的时候报错又得删表就很麻烦,如果提前做好数据长度设置可以有效的避免这个问题而且还能节省很多空间,因此对MySQL所有数据类型做个总结是一个值得的选择。原创 2022-09-26 13:34:06 · 3010 阅读 · 36 评论 -
MySQL数据库基础:数据类型详解-数值类型
最近MySQL的技能树已经建成了,一直想要复习一遍MySQL的基础知识,正好趁着这次MySQL技能树的建成一起学习复习一下MySQL数据库的基本知识。也是一直在用这个数据库,有些基础的知识点长久不用就会遗忘,就比如数据类型溢出的问题,很多时候建表的时候随便给定个类似,结果导入数据的时候报错又得删表就很麻烦,如果提前做好数据长度设置可以有效的避免这个问题而且还能节省很多空间,因此对MySQL所有数据类型做个总结是一个值得的选择。原创 2022-09-23 14:42:11 · 5522 阅读 · 28 评论 -
HiveSQL分位数函数percentile()使用详解+实例代码
作为数据分析师每个SQL数据库的函数以及使用技能操作都得点满,尤其是关于统计函数的使用方法。关于统计出数据的中位数,众数和分位数的方法必须掌握几种,一般在实际业务上大部分都是以写SQL查询为主,因为如果想用Python的Pandas去做数据分析还得将数据导出来读出来,输出了结果还得再倒进去,十分的麻烦。若是能在SQL上面直接处理简单问题,那么效率要远高于导出做Pandas处理。原创 2022-09-01 19:32:24 · 20275 阅读 · 8 评论 -
HiveSQL源码之语法词法编译文件解析一文详解
工欲善其事必先利其器,首先要了解HiveSQL的编译语法的流程,还是需要懂得HiveSQL的执行流程以及编译规则。Hive详解以及CentOS下部署Hive和Mysql我们现在主要研究SQL Parser语法解析这块内容。语法解析可以说是研究一门编程语言的基础了,我们编程语言本身就是告诉计算机要帮助我们做什么事。antlr是编译原理领域比较著名的工具了,这次借助研究hivesql的机会,安装使用一下antlr。原创 2022-08-22 21:29:22 · 2725 阅读 · 75 评论 -
一文速学-HiveSQL解析JSON数据详解+代码实战
JSON文件存储格式十分常见,在各个数据库中以及业务场景都有关于该文件的处理方式。但是有时候处理JSON文件在不同的数据库处理方法也不同,掌握一些高效的函数可以大大简化我们处理JSON数据格式的效率。面对一些复杂的存储形式,例如JSON数组存储这种就必须采取一定的处理方式,下面是处理HiveSQL解析JSON数据的函数与方法。...原创 2022-08-10 15:53:31 · 8437 阅读 · 47 评论 -
Hive时间日期函数一文详解+代码实例
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive中的表示纯逻辑表,只有表的定义等,即表的元数据(存储于MySQL中)。本质就是Hadoop的目录/文件,这种设计方式实现了元数据与数据存储分离。Hive本身不存储数据,它完全依赖HDFS和MapReduce。时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。...原创 2022-08-09 10:32:44 · 17552 阅读 · 40 评论 -
Clickhouse时间日期函数一文详解+代码展示
Clickhouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++。主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数原创 2022-07-13 16:22:09 · 35709 阅读 · 22 评论 -
一文速学-玩转MySQL时间运算函数以及时间匹配操作详解+实例代码
时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。在本人博客数据库MySQL已有三篇详细解释了大部分关于处理时间数据的函数以及实例运用,如果对这一方面有需求的可以看这三篇:...原创 2022-06-21 08:00:00 · 2573 阅读 · 33 评论 -
一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解
时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。在本人博客数据库MySQL已有三篇详细解释了大部分关于处理时间数据的函数以及实例运用,如果对这一方面有需求的可以看这两篇:...原创 2022-06-20 13:25:22 · 12349 阅读 · 7 评论 -
一文速学-玩转MySQL时间选取各类函数操作详解+实例代码
时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。上文:一文速学-玩转MySQL获取时间、格式转换各类操作方法详解已经详细介绍了SQL时间数据类型:三种:Date、Datetime、Timestamp。以及如何在MySQL数据库中获取本地.原创 2022-06-19 17:32:02 · 1118 阅读 · 14 评论 -
一文速学-玩转MySQL获取时间、格式转换各类操作方法详解
时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。因此特地写下这篇文章,记录一些十分好用常用的处理数据库SQL时间数据的函数,以及实例运用这些函数完成一些复杂查询任务。希望能够帮助到正在看此博文的各位,如果还有什么问题解决不了尽请在评论区提出,博主原创 2022-06-17 23:37:29 · 3709 阅读 · 63 评论 -
一文速学-玩转SQL之执行顺序,单表自连接操作和用法
众所周知要玩转SQL查询光靠那个几个查询关键字是远远不够的,SQL作为数据库的存在,往往存在多个物理表或者映射,有时候存在内容吃紧的情况,或者是查询结果表存在多个指标。这需要我们进行单表操作,实现统计不同的指标或者不同条件查询结果进行计算。要进行指标提取或者是创建新指标,推荐是使用自连接的方法可以快速从原始表根据相关指标,如:时间、主键等相关联相同数值的特征连接。下面不再废话让我们一步一步实现。首先我们需要了解,任何的编程语言都有一定的共性。但是SQL语言的话,对我们开发者经常使用的Python和JAVA而原创 2022-06-16 17:39:37 · 1250 阅读 · 20 评论 -
Pandas常用I/O函数(三):写入MySQL数据库to_sql()一文详解+代码展示
用Python写数据库操作的脚本时,少不了的是写入和读取操作。但这类方法参数说明大多都差不多,例如前段时间写的关于处理JSON文件的两类函数read_json,to_json。读取和写入这两种方法往往都是相对的,而当掌握了Pandas的dataframe数据结构的各种操作时,那么我们的插入方式将可以多种多样,对数据处理的方式也可以相对更加灵活。此篇文章将根据解读官方文档的方式具体使用每个参数的不同赋值,来展示结果。官方文档:pandas.DataFrame.to_sql 该函数的具体功能为实现将pan原创 2022-06-09 16:46:44 · 5137 阅读 · 19 评论 -
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
项目场景:在Windows上使用python调用pyhive库连接hive。hiveip地址都能正确ping通,本地也能连上。问题描述问题1:pyhive No module named sasl处理完之后又遇到:问题2:Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4) 原因分析:问题1:pyhive No module named sasl缺少依赖,如果是anaconda下面进行连接的...原创 2022-05-27 15:04:56 · 1799 阅读 · 4 评论 -
一文详解MySQL的安装以及环境配置和Navicat连接
一、下载直接进入官网地址下载即可:https://dev.mysql.com/downloads/mysql/下载第一个Windows就好了。找到下载完安装包,先在想要装的盘创建目录。之后将文件解压到该文件下:二、配置环境首先配置本地的环境变量:先点击电脑查看属性,点击高级系统设置:然后点击环境变量,在系统变量栏里面找到PATH:点击编辑 ,新建一条PATH,将我们安装好的mysql的bin目录路径输入:随后在我们的mysql目录...原创 2022-05-25 18:45:39 · 896 阅读 · 8 评论 -
数据库系统概论全面复习(一)
先把这些概念性的知识了解清楚之后,在大脑形成一个思维导图,之后实际操作数据库时候就更清晰,不容易记错知识。下一章直接就是数据库实例操作了。原创 2022-04-13 21:30:11 · 650 阅读 · 8 评论