![](https://img-blog.csdnimg.cn/2019082816053624.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
DB|SQL
文章平均质量分 89
AlbertS
一个手残党怀着对游戏的好奇心踏上了开发之路,旅途中磕磕绊绊踩了不少坑,触了不少雷,深知好记性不如烂笔头的道理,于是记录下学习路上的点点滴滴,努力在这个浮躁的年代做一个专注的人,携码起舞,与君共勉。
Coding是件有趣的事情,快乐的看待每一天,我真的非常幸福~
展开
-
废了九牛二虎之力终于修改了MySQL8.0的root密码
上次说到在Ubuntu系统上安装MySQL8.0之后默认是没有密码的,如果想设置密码需要写成的形式,其实在用这种方式之前,我还使用功能了mysql_secure_installation这个MySQL自带的程序来设置密码,但是没生效,为什么这个看起来很正规的方式不生效的呢?接下来一起找找原因...原创 2023-10-08 20:54:35 · 478 阅读 · 0 评论 -
linux环境下如果掌控了系统root账户就能对上面安装的MySQL数据为所欲为了吗
根据我目前测试的情况来看,这个问题的答案是【确实可以为所欲为】,事情的起因是这样的,一次偶然的机会我发现Ubuntu20.04系统上通过命令安装的MySQL服务器,使用root账号登录无论输入什么密码都可以成功进入,多次尝试后才知道原来root用户默认没有密码,这可是让我惊呆了,居然还可以这样,为了服务器的安全,我必须给他设置个密码,在不断尝试的过程中引发了标题中的疑问...原创 2023-10-07 20:53:27 · 286 阅读 · 0 评论 -
手把手搭建一个redis集群
所谓“难者不会,会者不难”,这不只是一句简简单单的俗语,而是历经人类进化史而得到的历史经验,只有亲身体会过才会越发了解这句话的意义。当你苦思冥想几天几夜难以解决的问题,一句过来人的点拨便可瞬间化解,这是人生路上的需要经历的,愿每个人在关键时刻都能得到善良人的点拨...原创 2021-06-27 00:49:46 · 2241 阅读 · 0 评论 -
MySQL中全局变量、会话变量、用户变量和局部变量的区别
之前在项目的存储过程中发现有通过 `DECLARE` 关键字定义的变量如`DECLARE cnt INT DEFAULT 0;`,还有形如 `@count` 这样的变量,存储过程中拿过来直接就进行设置,像这样`set @count=1;`,这两种类型的变量究竟有什么区别却弄不清楚,赶紧上网查询资料,发现还有`@@sql_mode`这样的变量,这一个圈俩圈的到底是什么啊?会不会出现三个圈的情况?原创 2019-12-06 14:00:00 · 9299 阅读 · 16 评论 -
MySQL数据库导入、导出、复制表、重命名表
提前说明这是一篇小白总结,高手勿喷请绕行,写这篇总结的原因是发觉自己有时候确实眼高手低了,大道至简,花了很多时间去看索引、缓存、主从等等,等到出现实际问题的时候却发现自己磨磨蹭蹭写出的SQL语句居然有语法错误,看来还得稳扎稳打从基础入手,因为实际工作的用到的SQL并不多,现在把常用的几条总结一下,即使下次不能立马写出来,也能在这篇文章中的快速找到想要的...原创 2019-11-30 14:13:09 · 4890 阅读 · 24 评论 -
Mysql导入数据库时报错ERROR: Unknown command '\0'
之前查询数据问题时多次使用过数据库导出导入命令,从来没发生过这种错误,那是一个风和日丽的上午,忽然来了一个紧急的任务,线上数据出问题了,需要马上处理一下,连上数据库备份服务器,找到备份数据直接下载下来,优雅(cong mang)地处理着这一切,本打算在Windows上直接导入查询处理一下算了,结果忙中添乱,导入数据库时居然报了一大堆错误,其中最扎眼的就是一连串的ERROR: Unknown command '\0',没办法了,先找一台Linux服务器,上传导入数据分析处理一气呵成...原创 2019-11-20 16:26:57 · 5597 阅读 · 4 评论 -
Mysql中Blob类型字段的插入、查看、截取和拼接
本来并没有太注意到Blob这个类型,在游戏的开发中存储数据常常使用这个类型,这里的使用其实是“机械”的使用,因为应用程序和Mysql数据库之间的逻辑已经封装好了,我只要把对应的数据扔到接口里就行了,可是最近发生了点问题,所以决定深入研究一下Blob类型的操作方法。问题是这样的...原创 2019-11-17 17:43:11 · 11561 阅读 · 9 评论 -
Mysql中查询当前用户、当前数据库等基础信息
生活中有时会出现灵魂三问:我是谁?我在哪?我在做什么?特别的喝醉酒的第二天,完全不记得昨天发生了什么。而在数据库操作中也会出现这种灵魂拷问,我用的是哪个用户,为什么会没有权限?我操作的是哪个数据库,刚刚不会把线上正式服务器数据删了吧?原创 2019-10-01 09:36:03 · 4726 阅读 · 7 评论 -
Mysql中char和varchar的区别
文章目录前言问题起因length 和 char_length测试环境测试过程char和varchar区别总结前言这个标题起的过于俗套,前一段时间我还写了一篇总结《Mysql5.7版本中数据表字段可用的类型》来批判这种对比,原因是对比时没有指明数据库,内容写的是char、varchar和nvarchar的对比,结果我测试了半天发现Mysql当前版本根本没有nvarchar,浪费来了不少时间。问...原创 2019-07-27 12:29:54 · 6825 阅读 · 11 评论 -
Mysql5.7版本中数据表字段可用的类型
文章目录前言支持类型类型简述数字类型日期和时间类型字符串类型特殊数据类型Json数据类型常用数据类型大小前言为什么会有这个总结,因为在测试Mysql的字符串函数时发现,char 和 varchar 有些不同,网上搜索一番发现了各种char、varchar、nvarchar 类型的对比,还有一些奇奇怪怪的这里就不说了,然后我就开始了对这几种类型字符串的测试,接着就悲剧了,测试多次之后发现创建为...原创 2019-07-05 21:00:16 · 2940 阅读 · 0 评论 -
Mysql中使用count加条件统计
最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统计了,比如说一个常见的需求,统计每个班级男生所占的比例,这种情况一般会按照班级分组,但是分组内不但要统计班级的人数,还要统计男生的人数,也就是说统计是有条件的,之前确实没有考虑过怎样实心,后来查询了资料,总结在这里...Mysql中c...原创 2019-06-02 10:34:26 · 55388 阅读 · 34 评论 -
Mysql调优之Using filesort一般情况
文章目录前言分析测试环境具体操作总结前言在使用 explain 命令优化SQL语句的时候常常会在Extra列的描述中发现 Using filesort 选项,其实这个名字很容易造成误解,一开始我以为是“文件排序”的意思,进一步说可能就是使用了磁盘空间来进行排序,但是这个理解是错误的,Using filesort 真正含义其实只有 sort 这一个单词,和 file 没有什么关系,Mysql一般...原创 2019-05-17 16:55:33 · 5000 阅读 · 8 评论 -
Mysql中explain命令简析
@TOC前言之前总结了Mysql慢查询日志的开启与配置方法,通过分析慢查询日志可以锁定执行效率差的SQL,但是这仅仅是发现了需要优化的部分,还要分析执行缓慢的原因,这时候就可以使用EXPLAIN命令去分析,所执行的操作究竟慢在哪里,是不是可以通过加索引或者改变查询方法来解决。通过查询资料发现除了EXPLAIN命令,还有一个DESCRIBE命令,看起来很陌生是不是,但是如果写出简写desc应...原创 2019-04-27 14:07:06 · 879 阅读 · 2 评论 -
Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗
前言提起这几种表连接方式就让人头大,想当初还因为这个面试被刷了,长得挺像,用法挺像,可就是有点不一样,其实的它们的差异不是固定的,要在一个具体的环境下才能进行对比,比如在Mysql环境下, JOIN, INNER JOIN, CROSS JOIN 三者在语法上是等价的,也就是作用相同,但是在标准的SQL下却又存在差异。选一个自己熟悉的环境对比一下,那就是Mysql数据库的表连接了,测试的多了...原创 2019-04-04 15:58:13 · 2239 阅读 · 0 评论 -
Mysql开启、查看慢查询日志
前言想要优化现有的数据库结构或者查询语句,首先要找到需要的优化的地方,不然就会出现费了很大精力优化却不达目的的情况,这就和上学考试一样,想要取得好的成绩,先要分析自己差在哪里,重点学习才会有快速的提升。关于查询Mysql的瓶颈,或者说查询Mysql出现操作缓慢的问题,我们可以使用Mysql自带的慢查询日志来分析,优化不是改正错误,那种错误在开发过程中叫做BUG,伴随着软件开发工程师的一生,而...原创 2019-03-25 12:17:20 · 1482 阅读 · 0 评论 -
Mysql查询可通过给条件字段添加索引提高查询速度
当使用sql语句查询表数据时,会发现随着表中记录的增多,查询的速度也会也来越慢,特别是那种日志记录,少则几十万,多则上百万,甚至上千万数据,如果查询一次耗时太长,会严重影响业务逻辑,这时候可以考虑给经常作为条件的字段添加索引了...原创 2019-03-15 17:09:49 · 11005 阅读 · 0 评论 -
Mysql中使用select into语句给变量赋值没有匹配记录时的结果
前言对select into语句感兴趣是因为看了项目中的一个存储过程引起的,在程序运行之前看了存储过程的逻辑,本以为没有数据时会报错,结果程序却正常运行,这说明我对select into语句理解的问题,同时也暴露了一个知识盲点,所以写了个小例子测试一下,并把测试的过程记录方便日后查找。创建测试表格为了更清楚的表明问题,我们创建的表格尽可能的简单,同时为了测试空值的情况,数据列我们不设置默认...原创 2018-11-17 11:36:23 · 8779 阅读 · 2 评论 -
Mysql查询时case when语句的使用
前言前几天在技术论坛论坛上发现一个求助帖,大体意思就是要把一个表中的数据按条件分成两类,每一类排序方式不同,然后整体作为查询的结果集,乍一看这问题不是很难,很多人给出的答案是分别查询排序后再 union合并到一起,但是后来楼主明确指出不想使用 union 操作,这时有一位高人巧用 case when 语句解决了问题,其实这是我第一次接触 case when 语句,于是查询了一下具体用法,在此做原创 2018-02-01 19:35:57 · 11877 阅读 · 0 评论 -
验证mysql联合索引最左原则
前言如果你接触过数据库,应该听说过某些列上建立索引能够加快查找速度,如果研究更深入一点的人,可能还听说过联合索引,那么索引为什么能够加快查找速度呢?下面说说我的简单理解。索引试想一下,把1~10000这10000个数字打乱顺序存储在数组中,如果要找到5000这个数字在哪,那就得从数组第0个元素开始,一次遍历找到5000这个数,运气好了1次找到,运气不好需要查询10000个数,可是如原创 2018-01-29 10:39:20 · 3399 阅读 · 3 评论 -
mysql函数扩展之UDF开发
前言一开始接触到UDF是在目前开发的项目中,在项目的存储过程中接触到了这样一条sql语句:CREATE FUNCTION XXXXX RETURNS INTEGER SONAME "YYYYY.so";存储过程的名字叫做CreateUDF,当时看到这条语句很迷惑,根本不知道是做什么用的,只能在项目资源中查找YYYYY.so这个库文件,结果却什么也没有找到,一番努力之后我断定,项目中调用CreateU原创 2017-11-18 13:31:22 · 3780 阅读 · 2 评论 -
mysql 诡异的1054错误
前言今天在工作中遇到一个非常坑爹的问题,有关Mysql的异常处理,花费了我好几个小时的时间,最后终于解决了,然后根据出现的问题的原因,逆向来看自己解决问题的过程,发现网上的一些文章简直是太坑了,坑的人找不着北啊,最后总结一下吧,免得又踩到这个坑。先交代一下环境和背景:问题出现在工作的项目中,工程代码在运行的过程中会调用事先定义好的存储过程来保存数据,因为字段太多,大概有好几百个,我就想着把一些废弃的原创 2017-06-17 11:39:01 · 65264 阅读 · 16 评论 -
Mysql批量删除数据库
前言删除数据库的命令对于有点数据库操作经验的人应该不会陌生,命令结构如下: drop database DBName;将上述命令中的DBName换成要删除的数据库的名字,就可以直接删除对应的数据库。但是有时候我们会出现这种困扰,就是测试的数据库一大堆,想要把它们都删掉时,采用一个个删除的方式有很浪费时间,有没有类似于like语句的模糊删除呢?很抱歉,在Mysql上我至今还没有找到...原创 2016-12-19 20:32:43 · 28389 阅读 · 4 评论 -
理解SQL中的DML、DDL、DCL
前言在我们操作关系型数据库中常常听到DML、DDL、DCL等,它们究竟是什么意思,查了好多遍总是忘,所以总结在这里方便以后查询。内容DML:全称为data manipulation language,是数据操纵语言。包括SELECT、UPDATE、INSERT、DELETE,就和它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。DDL:全称为data definition langu原创 2016-09-18 17:54:55 · 2105 阅读 · 0 评论 -
mysql使用substring分割参数实例
代码中常常应到字符串的分割,其实有时数据库中的数据也需要进行字符串分割,比如按用户名查找用户信息,如果是传入一个用户名当然好实现,若是想要一次传入多个用户名则需要考虑一下,传入多个参数当然是不现实的,如果把多个用户名合并到一个字符串中,用都好分割开来,是一个不错的选择,所以可以使用CONCAT,substring,CAHRINDEX等函数配合使用来达到目的,实例代码如下:原创 2014-10-12 20:10:28 · 1966 阅读 · 0 评论 -
mysql检查数据库是否存在某列,若不存在则添加
mysql检查列是否存在自动添加原创 2014-04-27 18:03:07 · 13575 阅读 · 33 评论