
【MySQL】
文章平均质量分 51
数据库
晓风残月一望关河萧索
志存高远,脚踏实地。
路漫漫其修远兮,吾将上下而求索。
展开
-
【详解】MySQL分区表,分区的过程,四种分区类型
分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持。当并不是所有的存储引擎都支持,如CSV等不支持。在使用分区功能之前,应该对存储引擎对分区的支持有所了解。MySQL数据库在5.1版本时添加了分区功能。分区的过程是将一个表或者索引分解为多个更小、更可管理的部分。就访问数据库应用而言,从逻辑上讲,只有一个表或者一个索引,但是在物理上,这个表或索引可能由数十个物理分区组成。每个分区都是...原创 2022-03-09 10:43:00 · 2324 阅读 · 1 评论 -
update加锁分析:是加行锁还是表锁?具体加锁加哪儿?
InnoDB默认事务的隔离级别是可重复读。在可重复读的情况下,会出现幻读的情况。幻读就是同一事务下,两次连续查询的结果不一致,会返回之前不存在的行。InnoDB存储引擎实现了自己的行锁,通过next-key锁(记录锁和间隙锁的组合)来锁住记录本身和记录之间的间隙,防止其他事务在这个记录之间插入新的记录,从而避免了幻读的现象。当我们执行update语句的时候,实际上会对记录加独占锁(X锁)。另外其他事务对持有独占锁的记录进行修改的时候会被阻塞。这个锁并不是执行完update语句才会释放,而是会等事务结转载 2022-03-08 16:14:47 · 7802 阅读 · 2 评论 -
【详解】【SQL】:排序后求第n条数据
两种方法:①select name from A limit 1,1:这个是求的第2条数据,limit是从0开始的。 limit 1,1表示从index = 1开始往后一个,也就是第2条数据②select name from A limit 1 offset 1:这个也是求的第2条数据 limit 1表示前2条数,offset 1是跳过前1条数据。那么剩下的就是第二条数据。 offset x 是跳过前n条数据,从n+1条数据后有效。例子:SE...原创 2022-01-17 00:01:50 · 3257 阅读 · 0 评论 -
【打卡第200道】【SQL】【leetCode高频】:176. 第二高的薪水
1、题目描述2、算法分析第二高的薪水,首先对查询的Salary进行排序。然后从里面找到第二高的薪水。知识补充:第n个记录:limit n,1:从第n个数开始后,往后一个:也就是第n个数limit n,offset n-1:limit n 代表的是前n个数,那么跳过前n-1个数,剩下的就是第n个数select Aas B:将A中查询的结果放到表格B中,也就是命名下3、代码实现select ifnull(( select Distinct Salary .原创 2022-01-16 23:53:23 · 378 阅读 · 0 评论 -
【详解】MySQL JOINS大总结
以下图结合例子,自己敲一遍。SQL语句的JOIN连接在开发中非常常用。先看下面这张图,包括了内连接inner join,左连接left join,右连接 right join等。以下两个表为例子,一个是tbl_emp,一个是tbl_dept。CREATE TABLE `tbl_emp`( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `deptId` int(11) DEFAULT..原创 2021-12-01 13:54:02 · 416 阅读 · 0 评论 -
【详解】面试必问:MySQL索引为什么会失效?最左匹配原则中间有间隙,为什么索引不会被命中?%开头索引为什么失效?范围查询索引为什么会失效?
首先看看索引的基本操作、索引的底层原理,先看这2篇文章:【详解】MySQL索引的基本操作,索引(主键索引,普通索引,组合索引,唯一索引)_CodingLJ-优快云博客【详解】面试必问:MySQL索引底层原理(基于B+Tree)_CodingLJ-优快云博客1、基础知识知识补充:多路搜索树是有序的,这个是数据结构中树的部分内容。以二叉搜索树为例,说下搜索树的特点,根节点的值始终大于左孩子的值,根结点的值始终小于右孩子结点的值;当然左右孩子也有这样的规律。 ...原创 2021-11-15 23:45:00 · 3026 阅读 · 0 评论 -
【详解】MySQL索引的基本操作,索引(主键索引,普通索引,组合索引,唯一索引)
前言索引是什么?索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。一、索引的基本操作①索引的优点大大加快了数据的查询速度。②索引的缺点 1.维护索引需要...原创 2021-11-13 17:37:20 · 2691 阅读 · 0 评论 -
【详解】偏底层:一条SQL查询语句是如何执行的?
作为一名即将步入IT行业的后端开发人员,实习过,写过很多SQL语句。一条sql语句是如何执行的呢?今天就好好研究研究这个问题。比较有意思,而且更加了解数据库server的分工等。 比如最简单的一条sql语句:select * from T where ID = 10; 当我们输入一条SQL语句,返回一个结果。下面对这条语句,数据库server,以及数据存储引擎进行拆解。下面是基本的MySQL架构示意图,从中可以清楚的看到SQL语句在MySQL的各个功能模块中的...原创 2021-10-29 18:17:49 · 220 阅读 · 0 评论 -
数据库获取当前系统时间
oracle: select sysdate from dual;sqlserver: select getdate();mysql: select sysdate();OK 了。原创 2021-08-04 17:02:53 · 1241 阅读 · 0 评论 -
【解决】在同一个select中count(*)取别名,作为查询的另一个元素的组成部分,出现异常。
直接看代码吧。① 第一种将count()取别名c,这种写法是错误的,因为下面的sum/c SQL不认识② 第二种 将count() 直接写入到查询的元素中的部分,这样直接SQL就查出来了 1、 select user_name, count(distinct(DATE_FORMAT(create_time,'%Y-%m-%d'))) as c sum(user_count) as userNum, sum(user_count)/.原创 2021-08-01 16:06:56 · 2413 阅读 · 0 评论 -
SQL中的Offset,limit详解,对于处理求倒第几个数据很有用
对于处理求倒第几个数据很有用limit请访问:https://blog.youkuaiyun.com/Sunshineoe/article/details/109510713Offset:是跳过哪几条数据举个例子一切都明白了。下面是表的user的整体数据。结果显示如下:注意,offset x,那么就会从第一个数据开始,跳过几个数据。然后新的表数据再从新的表开始再取。OK了,你学费么有~~...原创 2021-07-22 22:43:48 · 692 阅读 · 0 评论 -
【详解】mysql 表的复制或备份
将tblA表的数据 备份到 tblB表中。# 将B表的数据备份到A表,这个是新表new_tableA不存在create table new_tableA select * from old_tableB;select * into new_table from old_table;# new_tableA新表已经创建好,已经存在,直接插入insert into new_tableAselect * from old_tableB;...原创 2021-07-22 15:28:41 · 242 阅读 · 0 评论 -
SQL中将年月日, DATE_FORMAT()格式转换指定格式
什么时候需要转换呢?当数据库存储的格式和前端传入的格式不一致的时候就需要转换。比如:前端传入的是‘2021-07-06’,数据库存储的格式是'20210706'查询数据的时候根据日期(年月日)进行查询。可以这样做。先把数据库中的TIME转换成%Y-%m-%d,2021-07-06,然后再进行查询。select DATE_FORMAT(TIME,'%Y-%m-%d') = #{datetime}下面详细介绍DATE_FORMAT这个日期转换函数。DATE_FORMAT() ..原创 2021-07-17 11:21:08 · 9941 阅读 · 1 评论 -
【已解决】SpringBoot中添加依赖报错:Cannot resolve com.alibaba:druid,Could not transfer artifact XXX
添加依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version></dependency>解决办法方法一:把<artifactId..原创 2021-05-08 09:36:55 · 10472 阅读 · 4 评论 -
【经典解释】count(1),count(*),count(x)之间的区别
1.count(*) count(*) 是计算整个表的行数。 一个表有多行,只要每行有一个字段不为空,这一行就会计数。2.count(1) count(1) 是也是计算的是整个表的行。 这边就是计算的是左边标记的1的个数3.count(x)count(x),这里面的x就是一个标记计数的,可以是2 ,3,就是计算2,3的个数...原创 2020-12-26 22:47:16 · 1996 阅读 · 1 评论 -
nvarchar和varchar的区别
1、varchar是非Unicode可变长度类型,nvarchar是Unicode可变长度类型。2、varchar和nvarchar的最大长度不一样,nvarchar的长度设置必须为1和4000之间。varchar的长度设置必须是1和8000之间。3、varchar能存储的字节数就是他的长度。nvarchar能存储的字节数是它长度的2倍。区别: ① 从存储方式上,nvarchar是按字符存储的,varchar是按字节存储的。 ② 从存储量来看,varchar是比较省空间的,因为存储的..原创 2020-12-26 10:17:28 · 44867 阅读 · 0 评论 -
【学 MySQL,这一篇足够了,(百度云提取:含mysql软件 + 表结构)】 MySQL基础最全详解(持续更新...)
深入mysql基础知识原创 2020-12-25 15:40:48 · 884 阅读 · 1 评论 -
【详解】mysql数据库版本,链接jar包版本,c3p0数据库连接池
mysql 8.0以上的,mysql-connector-java.jar也肯定是8.0以上的,c3p0服务器9.5.4或者9.5.2版本 但是, 建议大家安装mysql版本是5.5版本,最近做项目遇到太多版本不对应的问题或者版本过高遇到的问题。 相对MySQL8.0以上的版本,遇到问题可能没有人遇到过,所以解决办法会很少。MySQL5.5版本更加稳定。 自行在官网下载即可。百度搜,mysql5.5下载...原创 2020-12-10 09:44:47 · 1304 阅读 · 0 评论 -
SQL查询语句练习一
表结构:CREATE TABLE `employees` (`emp_no` int(11) NOT NULL, -- '员工编号'`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));①查找最晚.原创 2020-11-05 14:10:03 · 109 阅读 · 0 评论