随笔分类 - 数据库(sql 与mysql 和mongodb还有 redis)
关于一些数据库的从新书写。
摘要:前言 要知道存储引擎这个东西,不是存储的意思,而是io操作。 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
阅读全文
摘要:前言 在此简洁逻辑架构,mysql的基础逻辑架构其实和sql server很像的。 正文 首先是客户端,发起了连接。 然后呢连接池后那一块,就是有分析器的那一块,那一块是干啥的呢。 其实我们写的语句呢,在mysql 不是这样子的,它要转换成自己的查询语句,通俗的说,我们调用的其实是api,不是真正的
阅读全文
摘要:前言 对mysql 进行从新整理一下,仅做参考,如有任何不对望指出。 正文 mysql 一般分windows和linux,但是他们的运行配置其实是一样的,所以在此不做区分。 直接上一个大体的图: 我个人用的是xmpp,说到底不管什么来管理mysql呢,其实都是一样的。 看第一个二进制文件配置 log
阅读全文
摘要:前言 很多时候,我们进行数据库查询的时候,查询一个季度的财务报表的时候。 比如说查询2020年第一季度的单子,可能传入后台的就是20201,表示的就是20201第一季度,这时候我们要转换为日期。 mysql sql server 效果:
阅读全文
摘要:前言 基本上统计财务一定会用到。 mysql 解析: 得到新年第一天,也就是1月1号。然后生成4行。 分别在1月1号增加 3个月,6个月,9个月,12个月 得到的就是每一个季度后的一天,比如说1月1号增加3个月,那么就是4月1号,那么就是第一季度3月31后的一天。 至此相信后面就不用解释了。 sql
阅读全文
摘要:mysql 解析: 在前一章中介绍了: 为获取这个月的第一天。 case sign(DAYOFWEEK(x.dy) 2) when 0 then x.dy when 1 then ADDDATE(x.dy,ABS(DAYOFWEEK(x.dy) 2)) when 1 then ADDDATE(x.d
阅读全文
摘要:前言 插播一个,从给定日期值里面提取年月日时分秒。 之所以写这个是因为使用频率太高。 mysql: sql server: 计算一个月的第一天和最后一天 mysql: 计算最后一天函数是LAST_DAY,计算第一天,是算的今天到这个月的第一天差多少天,然后减去,加一。 sql server: 计算第
阅读全文
摘要:前言 判断闰年还是挺有用的。 mysql 这个看起来有一点点复杂,其实拆开了还是很简单的。 CURRENT_DATE 获取当前日期。 当前的日期,减去了从1月1号经历的天数然后加1,这个获得的就是1月1号。因为1月有31天,所以加上31,那么就是今年的2月1号。 LAST_DAY 是获取该月的最后一
阅读全文
摘要:计算当前记录和下一条记录之间的日期差 关键点在于如何获得下一条日期。 mysql 和 sql server
阅读全文
摘要:前言 进入了日期章了。 年月日加减法 分别对原有的日期进行加减法。 sql server mysql 计算两个日期之间的天数 sql server 与 mysql 在此只是为了介绍一下DATEDIFF函数可以计算两个日期的相差的间隔。 两个日期之间的工作日的天数 1.我们要知道两个日期区间是什么。比
阅读全文
摘要:前言 介绍两个实用的sql查询语句。 1.计算平均数时候,去除最大值和最小值。 2.修改累计值。 计算平均数时候,去除最大值和最小值 sql server: mysql: 修改累计值 假设有一张表: select from xinyong 要实现的效果如下: 就是当TRX 为pr的时候进行增,在py
阅读全文
摘要:众数 众数就是出现最多的那个数。 通过分组把他们的行数计算出来。那么最关键的部分在于,你如何知道最大值。 是的我们可以查出当前最大值,然后再取出最大值的sal。但是这肯定要用到两个临时视图。 注:我们不能通过排序cnt,然后取值第一个,因为可能存在相同的行数。 解决方案:通过dense_rank 进
阅读全文
摘要:avg的注意事项 一张t2表: select from t2 得到的结果是: 本来我们得到的结果应该是10的。但是得到的结果确实15. 这是因为忽略了null值。 解决方案: 当为空的时候转换为0 max 与 min的注意事项 max与min会忽略null,但是如果全是null的情况,会返回null
阅读全文
摘要:前言 总结自己的redis,日常使用不是特别频繁,所以比较基础。 开篇 redis 是无关系型数据库,因为其实内存数据库,所以常常和他的竞争对手memcached对比,因为两者原理基础相似,存储方式也是key和value的方式。 在memcached中value只能是字符串,而redis就有5种结构
阅读全文
摘要:前言 单独列出的章节。因为用处比较多。 mysql 这个无需解释。 sql service 是我第上一章最后一个例子的扩展
阅读全文
摘要:创建分割列表 一张表: 先查询出来的效果是这样的: mysql: sql service: 分割数据转换为多值int列表 '7654,7698,7782,7788' 切割为列表 mysql: 原理和mysql一致。 提取n 个分割字符串 例如:'7654,7698,7782,7788' 你想提取的是
阅读全文
摘要:前言 介绍字符串和其子字符串直接的使用。 判断含有子字母的字符串 在mysql中: 在mysql 中是真的很愉快了。 sql service 通过ascii来识别。 提取姓名的首字母 英文名一般是这样的firstname lastname,这时候不考虑middle name,因为这仅仅是一个例子。
阅读全文
摘要:遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的。 的确是遍历了这个字符串JONES. 原理也十分的简单: T10 可以看成一个索引集,利用一个笛卡尔积的特性实现
阅读全文
摘要:前言 下面是一些常规的运维手段。 查询每个表的行数 哦,对了,对有些大神说,去新公司的时候执行一下这个代码,如果行数不够直接跑路。 后续列举的所有的更新都放在这里,运维相关的。持续更新....
阅读全文
摘要:列举非索引外键 列举出那些外键没有添加索引。 目的: 1.减少锁。 2.外键添加索引,提示了查询性能,因为要与父表做连接查询做笛卡尔积。 下面只要会复制即可,没有会去从新写一遍的。
阅读全文
浙公网安备 33010602011771号