MySQL
攻城狮Kevin
爱学习,爱工作,爱生活
展开
-
mysql实现日期的分组功能
对每个日期先找到其归属的周四,例如20230703周一,weekday的取值是0,需要往前减4天才是上周四,(0+4)%7 = 4。再找到其归属的周三,例如20230703周一,weekday的取值是0,需要往后加2天才是周三,(6-(0-3))%7 = 2。date_sub(日期, interval (x day))是mysql里日期加减的语法,其中sourcetime是2023-07-01 07:02:14这种格式,业务需要把每天的日期进行分组,分组原则是上周四 - 本周三,原创 2023-07-03 16:04:18 · 890 阅读 · 0 评论 -
Mysql5.X实现row_number( ) over( )分组排序
mysql8.0里支持row_number() over (partition by XX order XX) AS rank这种窗口函数,但是mysql早期版本不支持,所以要实现分组排序只能自己写逻辑来实现。这套sql主要利用了mysql两个技术点1. @XX 设置变量2. := 给变量赋值例如这里需要对dt进行分组,然后在每个组内对age进行降序排序,然后计算出排序号-- 1. 窗口函数处理select dt, age, row_number() over(partition原创 2022-05-09 22:08:09 · 4374 阅读 · 0 评论 -
Mysql联合索引的生效方式,最左前缀匹配
1. 我们先创建表create table test( a int , b int, c int, d int, key index_abc(a,b,c) )engine=InnoDB default charset=utf8;2. 插入一些数据DROP PROCEDURE IF EXISTS proc_initData;DELIMITER $CREATE PROCEDURE proc_initData()BEGINDECLARE i INT DEFAULT 1;WHILE i&原创 2021-12-28 10:31:22 · 1553 阅读 · 2 评论 -
Mysql中数据存在空格的问题
mysql中存入数据时,是允许带空格的,因此录入数据时需要小心,避免行尾存在空格的情况比如对于下面buyway,光标处可以看到其实多了一个空格从mysql查数的时候,查询的结果如下:{"buyway ":"1","cate ":"1","city":"1","end ":"1","start":"1"}可以看到buyway、cate和end后面都有空格,然后如果判断某个js...原创 2020-04-22 01:47:07 · 4972 阅读 · 0 评论 -
mysql更新子查询的某一列值,sql语句写法
首先我依据子查询语句查询出数据:SELECT a.id, a.tag_en, a.tag_value_analysis_type, a.tag_project_id FROM t_smart_tag_meta a INNER JOIN tags_and_attributes_relations ...原创 2020-04-09 18:22:54 · 1526 阅读 · 0 评论 -
数据库建模:关系建模和维度建模,三范式和事实表维度表
一、关系建模——三范式理论三范式是基于关系建模的术语,主要应用于OLTP,避免数据冗余,让每个数据只出现一次第一范式:属性不可切分,指一张表的所有属性不可再往下细分 非主属性对码,存在部分函数依赖码:假设k为表中的某个属性或属性组,当k确定的情况下,表中其余属性也都可以确定,那么k就被称为码,即候选码第二范式:非主属性对码,只存在完全函数依赖和...原创 2020-02-10 17:53:00 · 3281 阅读 · 0 评论 -
Mysql的ACID、事务并发、事务隔离级别
目录一、事务的基本要素(ACID)A:Atomicity,即原子性;C:Consistency,即一致性;I:Isolation,即隔离性;D:Durability,即持久性;二、事务的并发问题1. 脏读:2. 不可重复读:3. 幻读:三、Mysql的事务隔离级别一、事务的基本要素(ACID)A:Atomicity,即原子性;事务开始后的所有操作...原创 2019-04-11 12:08:56 · 230 阅读 · 0 评论 -
JDBC连接MySQL的IDEA代码操作(5种方式的最优解)
JDBC:Java DataBase Connectivity,即Java数据库连接;它是一套API,也是一个接口,使用这套API接口可以通过Java代码对数据库进行增删改查等操作;这套API主要依赖两个包:java.sql包和javax.sql包使用JDBC可以连接任何提供了JDBC驱动的数据库(MySQL、Oracle、SQLServer、DB2等);数据库驱动Driver:具体的数...原创 2019-02-20 11:02:14 · 4728 阅读 · 3 评论 -
MySQL的高级应用之Explain(完美详细版,看这一篇就够了)
一、Explain基本概念1. Explain定义我们知道MySQL中有一个查询优化器Query Optimizer,它的作用是找到最小代价的正确执行方案;EXPLAIN :模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选...原创 2018-11-07 11:07:12 · 3829 阅读 · 2 评论 -
MySQL的数据索引Index
最近学习MySQL的索引,以下是一点学习心得与总结:我们都知道,在java的语法中,index指数组中的下标;但在MySQL中,index的意思是索引。 ### 1. 何为索引? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。解构这句话,分析和总结一下信息点,即: 索引,就是一种排好序,用于高效快速查找数据的,数据结构 。详解:数据库=数据+数...原创 2018-11-06 20:41:31 · 379 阅读 · 0 评论