随笔分类 - MySQL
MySQL 常用知识
摘要:安装 MySQL 完成并启动后,执行匿名用户登录语句报错。 1、匿名用户登录语句 mysql -ux3 2、报错信息 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2
阅读全文
摘要:error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory 在CentOS 7.6 操作系统的机器上安装 MySQL 过程中,执行安装命令报
阅读全文
摘要:MySQL 将字符串类型的小数转换为保留位数的小数类型 问题背景 在实际开发中,可能数据在流转或者传递环节中,需要对数值类型做转换(比如:将varchar类型的"3.14",转为浮点类型的3.14) 如何使用SQL语句实现此种场景的数据转换呢? 解决方案 数据转换可以用到MySQL自带的函数 cas
阅读全文
摘要:MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份。 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份)。 如果通过如下SQL,逐一确认表中是否有数据,效率会很低: 如何直接获取某个数据库中,所有包含数据的表名呢? 查询S
阅读全文
摘要:MySQL 判断数据库和数据表是否存在 如何使用SQL查询语句,判断数据库和数据表是否存在? 1、判断数据库是否存在 查询SQL如下: 也可以模糊查询,SQL如下: 2、判断数据表是否存在 查询SQL如下: 也可以模糊查询,SQL如下:
阅读全文
摘要:1、TRUNCATE()函数介绍 TRUNCATE(X,D) 是MySQL自带的一个系统函数。 其中,X是数值,D是保留小数的位数。 其作用就是按照小数位数,进行数值截取(此处的截取是按保留位数直接进行截取,没有四舍五入)。 2、数值保留规则 规则如下: 1)当 D 大于0,是对数值 X 的小数位数
阅读全文
摘要:MySQL 性能优化系列之一 单表预处理 背景介绍 我们经常在写多表关联的SQL时,会想到 left jion(左关联),right jion(右关联),inner jion(内关联)等。 但是,当表中数据量过大时,如果没有写好查询条件或者查询条件书写的先后顺序不同,可能会有明显的性能差别。 近期,
阅读全文
摘要:Linux 查看 MySQL的版本信息 如何查看某台 Linux 主机上的 安装的 MySQL版本信息? 使用如下命令,查看 MySQL的版本信息: 或者 命令执行后,效果如下(可以看到当前主机上的 MySQL版本为 5.6.42): PS: 如果想查看 MySQL的安装目录,可以使用如下命令:
阅读全文
摘要:MySQL 将 字符串 转为 整数 1、CAST(epr AS type) 1)type 为 SIGNED 效果如下: 2)type 为 UNSIGNED 效果如下: 2、CONVERT(expr,type) 额外补充 1、CAST 和 CONVERT 两个函数中的 type取值可以为:SIGNED
阅读全文
摘要:MySQL 对 IP 字段的排序问题 问题描述 想对一张带有 IP 字段的表,对 IP 字段进行升序排序,方便查看每个段的 IP 信息。 表结构和表数据如下: 数据库查询截图如下: 如果按照 IP 字段升序,查询效果如下: 问题原因 由于 IP 字段是varchar 类型,MySQL在进行排序的时候
阅读全文
摘要:MySQL 按照数据库表字段动态排序 查询列表信息 背景描述 项目中数据列表分页展示的时候,前端使用的Table组件,每列自带对当前页的数据进行升序或者降序的排序。 但是客户期望:随机点击某一列的时候,对查询到的所有数据进行排序。 举例说明: 查询到的有100条数据,每页10条,共10页。前端Tab
阅读全文
摘要:MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段。 示例:在已存在的设备表device中,增加设备IP,设备名称,设备类型三个字段。 问题解决 方式1(命令行方式
阅读全文
摘要:MySQL 5.7 中文全文检索 在 MySQL 5.7.6 之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。从 MySQL 5.7.6 开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。本文使用的MySQL 版
阅读全文
摘要:问题描述 编写SQL,实现根据业务名称,模糊查询业务信息。 解决方案 方案1:SQL里实现 【说明】已测试验证,除了下面的这种方式,可以实现模糊查询 其余被注释掉的几种写法,均不可以实现!!! 方案2:Java代码里预处理 如果在Java代码里事先处理: SQL可以使用下面的方式:
阅读全文
摘要:背景说明 需求:MySQL树形结构, 根据指定的节点,获取其所在全路径节点序列。 问题分析 1、可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取全路径节点序列。 2、直接自定义MySQL函数 getFullPathNodeList,通过两个while循环,实现对指定节点的所有父节
阅读全文
摘要:背景说明 需求:MySQL树形结构, 根据指定的节点,获取其所有父节点序列。 问题分析 1、可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取父节点。 2、直接自定义MySQL函数 getParentNodeList,通过一层while循环,实现对指定节点的所有父子节点进行查询。
阅读全文
摘要:问题描述 通过Navicat客户端,创建MySQL函数(根据的当前节点查询其左右叶子节点)时报错,报错信息如下: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and bin
阅读全文
摘要:背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有子节点(包含路径上的枝干节点和叶子节点) 枝干节点:如果一个节点下还有子节点,则为枝干节点。 叶子节点:如果一个节点下不再有子节点,则为叶子节点。 问题分析 1、可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取
阅读全文
摘要:背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有叶子节点。 叶子节点:如果一个节点下不再有子节点,则为叶子节点。 问题分析 1、可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取叶子节点。 2、直接自定义MySQL函数 getLeafNodeList,通过两层
阅读全文