
mysql
诺贝尔爱情奖
这个作者很懒,什么都没留下…
展开
-
MySQL查询结果导出文件
“翅低白雁飞仍重,舌涩黄鹂语未成”序很多时候,我们需要将数据库的查询结果自动保存到文件,这样就免得手动复制粘贴了。导出文件语法select * from tableName INTO OUTFILE "D:\\Program\\MySQL\\mysql-5.7.18-winx64\\data.txt";说明:以上语法为:将tableName 表的内容导出到“D:\Program\My...原创 2020-04-10 15:59:11 · 559 阅读 · 0 评论 -
MySQL处理序列
“东风又作无情计,艳粉娇红吹满地”序最近工作上不忙,于是自己在学习。目前在看《SQL进阶教程》一书。该书我已上传到百度云,仅供大家学习使用。网盘连接请看:SQL进阶教程PDF下载接下来从几个例子说明SQL语句如何处理序列:订票三连坐(座位不分排)和朋友们一起去旅行,预约火车票或机票时,却发现没有能让所有人挨着坐的空位,于是某个人不得不和大家分开坐——这样不爽的事情可能不少人都遭遇过吧。...原创 2019-11-21 17:16:50 · 402 阅读 · 0 评论 -
SQL进阶教程PDF下载
“接天莲叶无穷碧,映日荷花别样红”《SQL进阶教程》PDF上传不了,提示我已存在,故保存在这里。网盘下载链接:SQL进阶教程原创 2019-11-21 15:59:17 · 11193 阅读 · 25 评论 -
MySQL中ALL 和 ANY的用法
“历览前贤国与家,成由勤俭破由奢”序今天看书得到MySQL中ALL和ANY的用法,在此之前甚至都不知道MySQL还有这两个运算符。现在数据表如下,分别是姓名、薪水、部门ID:ALL运算符ALL运算符是一个逻辑运算符,它将单个值与子查询返回的单列值集进行比较。ALL运算符必须以比较运算符开头,例如:>,>=,<,<=,<>,=,后跟子查询。如下,对...原创 2019-11-21 11:15:10 · 23953 阅读 · 7 评论 -
MySQL删除重复行
“日暮酒醒人已远,满天风雨下西楼”序在数据库的操作中,经常会遇到有重复的数据,并且这些重复的行是没用的数据,需要删除。我做了一个测试表,如下:苹果和香蕉有重复的。删除重复行1. 使用not in 删除重复行,SQL语句如下:DELETE FROM fruit_testWHERE id NOT IN (SELECT MAX(id) as idFROM fruit_testGROU...原创 2019-11-20 11:39:18 · 2690 阅读 · 0 评论 -
MySQL中case的用法
“入目诗成天又雪,与梅并作十分春”序最近看书得MySQL中case的几种用法,分享给大家。以下内容基于MySQL5.7.18。用法1. case行转列用法现有表数据如下图所示(性别列中,1表示男,2表示女):需统计各年级男女人数。虽然表中数据已有各年级的那女人数,但是还是不够一目了然。接下来使用case语句查询如下:SELECT class, sum( CASE WHEN se...原创 2019-11-19 11:44:13 · 8100 阅读 · 1 评论 -
MySQL查询忽略大小写
离离原上草,一岁一枯荣 在MySQL中,有可能会遇到查询大小写的问题. 这个时候可以修改字段的排序规则来达到忽略大小写的目的; 或者用alert语句修改也可以ALTER TABLE `tableName`MODIFY COLUMN `COLUMNNAME ` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL...原创 2018-05-24 19:57:31 · 10156 阅读 · 4 评论 -
MySQL行转列
离恨恰如春草,更行更远还生 先看结果: 把上面一个字段,里面的每个数据都是用逗号分隔的,把它变成下面这样: PS:这里截图数据没展示全; 这里我们用到了MySQL的substring_index函数,SQL语句如下:SELECT substring_index( substring_index( t.navid, ',', b.id + 1 ), ',', - 1 ...原创 2018-06-30 09:25:31 · 569 阅读 · 0 评论 -
MySQL查询状态
渴不饮盗泉水,热不息恶木阴 对于一个MySQL连接,或者说一个线程,任何时刻都有一个状态,该状态表示了MySQL当前正在做什么。有很多种方式能查看当前的状态,最简单的是使用show full processlist 命令,也可以使用show processlist 命令,区别在于加了full会输出当前线程执行的完整的SQL语句(该命令返回结果中的Command列就表示当前的状态)。在一个查询的生...原创 2018-07-21 17:57:38 · 1357 阅读 · 0 评论 -
MySQL中between和大于小于的比较
“明月松间照,清泉石上流” 最近在用MySQL查询时间范围时,发现了一个有趣的现象。 首先,查询的时间是加了默认的betree索引的。 在between同一天的时候,索引有效: 当between不在同一天时,索引无效: 无论是否在同一天,用>=和<=时,索引都是无效的。 最后,在20万的数据体量下,无论是否在同一天,用limit25查询25条时,两者速度几乎...原创 2018-08-14 11:30:25 · 31214 阅读 · 4 评论 -
MySQL存储过程中的三种循环方式
“明月别枝惊鹊,清风半夜鸣蝉” 最近存储过程写得多,循环多数用在游标里,在这里总结几种循环的方式CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc`()BEGIN DECLARE startDate VARCHAR(20); DECLARE endDate VARCHAR(20); declare i...原创 2018-08-31 14:39:54 · 5972 阅读 · 0 评论 -
MySQL常用命令
“问渠那得清如许,为有源头活水来”登录MySQL命令//mysql -u 用户名 -p 密码 -Amysql -uroot -p123456 -A建表//建立新表CREATE TABLE `user` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(100) NULL DEFAULT '' COMMENT '姓名'...原创 2019-03-30 11:45:28 · 485 阅读 · 0 评论 -
UNION 和 UNION ALL的区别
“细雨鱼儿出,微风燕子斜”序今天听同事说UNION 和 UNION ALL的区别,遂自己来简单研究一番;研究先说结论,因为UNION 操作会对结果去重且排序,所以从速度来说, UNION ALL会更胜一筹。建两张表,分别插入几条数据:这两张表唯一的不同就是数据中,一个是“王五”,一个是“老六”。使用union all可以看出,union all 没有去重,查出了两个“张三...原创 2019-06-13 10:40:45 · 50438 阅读 · 0 评论 -
MySQL中group_concat()函数的排序方法
“风鸣两岸叶,月照一孤舟”序收到的需求是,在页面展示不同的指标,并且展示的指标可以手动排序。需求不方便在这里展示,于是我做了个类似的功能。如下。需求根据学生的分数,降序排列。数据表如下:查询结果如下:实现方法实现的SQL:SELECT `NAME`, GROUP_CONCAT( score ORDER BY score DESC ) AS score FROM `st...原创 2019-07-29 15:32:49 · 629 阅读 · 0 评论 -
MySQL出现Waiting for table metadata lock解决方法
“今人不见古时月,今月曾经照古人” 今天发现项目很慢,,有时登录需要好几分钟才能登录上去.经过检查,发现数据库很多SQL的状态都是Waiting for table metadata lock 究其原因,是因为有很多事物没有提交,查询事物语句:select trx_state, trx_started, trx_mysql_thread_id, trx_query from infor...原创 2018-05-08 19:54:04 · 3511 阅读 · 0 评论 -
MySQL查询一个节点下的所有子节点
从别后,忆相逢,几回魂梦与君同 有时候需要从一个数据点的表中查询出每个父节点下的所有子节点,包括子子节点,查出用作树或者是计算每个最父级节点所占的比重.这个时候就需要查出每个最父级节点下包含的所有子节点. 这里推荐一种比较简单的方法,就是写个递归函数用作查询.如下: 表结构:CREATE TABLE `tableTest` ( `id` int(11) NOT NULL AUTO_I...原创 2018-05-14 08:50:53 · 5418 阅读 · 1 评论 -
MySQL创建前缀索引和索引选择性
“天忽作晴山捲慢,云犹含态石披衣” 什么是前缀索引: 一般情况下,如果需要作为索引的那一列长度很长.就需要使用前缀索引来节约索引控件.即只需要为前面几个字符作为索引. 什么是索引选择性: 索引选择性是指,不重复的索引值(也称为基数)和数据表的记录总数(#T)的比值,范围从1/#T到1之间.索引选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行.唯一索引的选择性是...原创 2018-05-05 17:49:15 · 5456 阅读 · 0 评论 -
MYSQL常用字符串函数
对mysql常用的字符串函数详解原创 2017-08-27 11:32:23 · 539 阅读 · 0 评论 -
MYSQL常用数值函数
MySQL 中另外一类很重要的函数就是数值函数,这些函数能处理很多数值方面的运算。可以想象,如果没有这些函数的支持,用户在编写有关数值运算方面的代码时将会困难重重,举个例子,如果没有 ABS 函数的话,如果要取一个数值的绝对值,就需要进行好多次判断才能返回这个值,而数字函数能够大大提高用户的工作效率。原创 2017-08-27 11:39:28 · 700 阅读 · 0 评论 -
MYSQL常用日期和时间函数
有时我们可能会遇到这样的需求:当前时间是多少、下个月的今天是星期几、统计截止到当前日期前 3 天的收入总和等。这些需求就需要日期和时间函数来实现。原创 2017-08-27 11:52:20 · 579 阅读 · 0 评论 -
MYSQL常用流程函数
流程函数也是很常用的一类函数,用户可以使用这类函数在一个 SQL 语句中实现条件选择,这样做能够提高语句的效率。原创 2017-08-27 12:01:05 · 791 阅读 · 0 评论 -
MYSQL其他常用函数
mysql其他常用函数原创 2017-08-27 12:07:00 · 501 阅读 · 0 评论 -
mysql计算两个日期之间的时间差
**秋阴不散霜飞晚,留得枯荷听雨声**mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。interv转载 2017-10-30 14:47:03 · 1256 阅读 · 0 评论 -
MYSQL查看进程和kill进程
“临深应在即,居高岂忘危”有时候我们在执行一条SQL语句时,或者更改表结构时,由于这张表的数据量巨大,,往往会在执行操作后就会卡住…然后这张表就会被锁住..这时,我们可以杀掉这个进程. 这里有两种方法查看和杀掉进程; 第一种:SHOW PROCESSLIST;执行上述命令,可以看到下图: 然后找到对应的ID:KILL 41515;就OK了.第二种: 需要借助工具,Navica原创 2017-11-21 09:56:14 · 60742 阅读 · 0 评论 -
MySQL中查询自增字段相关参数
雨过不知龙去处,一池草色万蛙鸣 在mysql中如果要查看自增字段的自增量和初始值,可以用如下sql语句:SHOW VARIABLES LIKE 'auto_inc%';可以查出两个结果如下: 解释一下这个值得含义: auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1 .. 65535 auto_increment_increment表示自原创 2018-01-31 15:38:44 · 1681 阅读 · 0 评论 -
MySQL寻找特定字符后的字符串
“日边清梦断,镜里朱颜改” 在操作数据库的某些情况下,我们需要对其中一字段的最后几个字做修改,如下图,把老师改为学生 我找了半天,好像没找到mysql中有合适的函数,能找到最后一个/符号并且修改后面的字符串.需要用好几个函数嵌套使用.如下:select '处理前' as status,orgpath as path from tablename where id='1351037'...原创 2018-04-08 11:11:56 · 2790 阅读 · 0 评论 -
MYSQL查询结果自增序号列
“五更钟动笙歌散,十里月明灯火稀” 在图表的展示中,有时候需要展示表格,并且自带自增的一个序号列. 效果sql语句:SELECT @num:=@num+1 AS 序号, a.* FROM t_user a ,(SELECT @num:=0) r; ...原创 2018-04-11 18:25:40 · 8033 阅读 · 0 评论 -
MySQL慢查询日志
千磨万击还坚韧,任尔东西南北风 所谓慢查询日志,就是把执行得比较慢的查询记录成日志.那么,慢是什么概念呢?在MySQL5.1之后,用户可以自定义慢的时间阀值.通过设置long_query_time变量.即当查询时间大于(而非大于等于)你设置的long_query_time值时,则记录在日志中.记录的方式可以是表或者是文件.再或者两者同时记录.查看是否开启慢日志查询功能show var...原创 2018-04-22 14:18:16 · 457 阅读 · 0 评论 -
MySQL按日期分组并统计截止当前时间的总数
世间安得双全法,不负如来不负卿 表结构如下所示:users表示当天新增的用户数 现在的需求是这样的:按每天分组,查询当天新增的用户总数和截止到当前时间新增的用户总数,结果如下: SQL语句如下:SELECT reg_time, total1 as '小计', @total := @total + total1 AS '总计'FROM ( ...原创 2018-04-23 21:30:56 · 6385 阅读 · 2 评论 -
MySQL Explain性能分析
取次花丛懒回顾,半缘修道半缘君 本文转载自:原文地址 通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈。通过expalin可以得到:1 表的读取顺序 2.表的读取操作的操作类型 3.哪些索引可以使用 4. 哪些索引被实际使用 5.表之间的引用 6.每张表有多少行被优化器查询explain显示字段: 各字段解释: 1. id :语句的执...转载 2018-05-08 20:09:34 · 691 阅读 · 0 评论 -
MYSQL根据日期查询
“风萧萧兮易水寒,壮士一去兮不复还” 总结一下mysql的根据日期查询数据和在日期区间查询数据. 首先,看数据表和表结构 建表语句: CREATE TABLEdatetest( idint(11) NOT NULL AUTO_INCREMENT, brand_namevarchar(100) DEFAULT NULL COMMENT '品牌名称', model_namevarchar(原创 2017-08-13 15:08:44 · 63291 阅读 · 8 评论