随笔分类 -  MySQL

摘要:见识到另外一种创意,惊讶! 1.创建小数据表 0-9 2.创建大数据表 0-10000 3.创建时间维表 4.填充数据 5.根据日期update其他列数据 6.日期函数测试 END 2018-05-29 14:34:57 阅读全文
posted @ 2018-05-29 14:36 Hider1214 阅读(902) 评论(0) 推荐(0) 编辑
摘要:实现目的: 测试: 完整代码: END 2018-05-29 12:35:43 阅读全文
posted @ 2018-05-29 12:36 Hider1214 阅读(537) 评论(0) 推荐(0) 编辑
摘要:使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 语法: 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。 你可以在 WHERE 子句中指定任何条件 您可以在单个表中一次性删除记录。 END 2018-05-29 11:35:14 阅读全文
posted @ 2018-05-29 11:35 Hider1214 阅读(183) 评论(0) 推荐(0) 编辑
摘要:在MySQL中做数值处理,需要取整或者四舍五入。 floor:函数只返回整数部分,小数部分舍弃; round:函数四舍五入; END 2018-05-29 11:31:22 阅读全文
posted @ 2018-05-29 11:31 Hider1214 阅读(909) 评论(0) 推荐(0) 编辑
摘要:遇到一个需求:不足6位的需要自动补全6位,使用函数LPAD()和RPAD()补全。 LPAD(str, len, padstr) 用字符串padstr对str进行左边填充补全直至它的长度达到len个字符,返回str。 一、前补0(左补0) 结果: 二、后补0(右补0) 结果: 更新数据可使用: EN 阅读全文
posted @ 2018-05-29 11:03 Hider1214 阅读(8315) 评论(0) 推荐(1) 编辑
摘要:# 对应时间戳怎么生成的? /*TIME_CD TIME_CD1000000 000005000001 000005000002 000005000003 000005000004 000005000005 000010*/ 利用MySQL常用日期函数生成时间维度表 日期时间函数 按小时、按分钟、按 阅读全文
posted @ 2018-05-29 01:16 Hider1214 阅读(4334) 评论(0) 推荐(0) 编辑
摘要:今天遇到一个需求是生成以下表格的数据,一整天24小时,每秒一行数据。 寻找颇旧,找到另外两个实现的例子,暂且学习一翻。另一个见另外一篇。 其中,SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1是为了生成一个虚拟的表格, 阅读全文
posted @ 2018-05-29 00:52 Hider1214 阅读(2889) 评论(0) 推荐(0) 编辑
摘要:简单的存储过程循环,记得开事务,如果逐提交数据 将会导致速度很慢。 END 2018-05-29 00:38:23 阅读全文
posted @ 2018-05-29 00:39 Hider1214 阅读(885) 评论(0) 推荐(0) 编辑
摘要:在以下例子中,出现definer于sql security invoker,导致不解,遂学习一翻。 procedure于function、trigger等在创建的时候,紧接着create都有个definer可选项,该definer规定了访问该procedure等的安全控制。 一、DEFINER 例如 阅读全文
posted @ 2018-05-29 00:35 Hider1214 阅读(1012) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,接触事务的例子比较少,今晚在一个简单的存储过程中,循环插入50000条id数据的时候,得知必须开事务,如果逐提交数据,将会导致速度异常的慢。 SET autocommit = 0; 指事务非自动提交,执行以后,每个SQL语句或语句块所在的事务都需要显示“commit”才能提交事务; 阅读全文
posted @ 2018-05-29 00:27 Hider1214 阅读(1108) 评论(0) 推荐(0) 编辑
摘要:由于MySQ没有提供像Oracle的dense_rank()或者row_number() over(partition by)等函数,来实现组内排序,想实现这个功能,还是得自己想想办法,最终通过创建行号实现。 方法一: 1.建立测试表 2.删除原有数据 3.插入数据 4.查询 5.构造行号rownu 阅读全文
posted @ 2018-05-25 10:55 Hider1214 阅读(6504) 评论(2) 推荐(1) 编辑
摘要:date_add函数 作用:date_add()函数向日期添加指定的时间间隔 语法: date:日期表达式 type:时间间隔,day、week、month等 END 2018-05-23 18:13:34 阅读全文
posted @ 2018-05-23 18:14 Hider1214 阅读(235) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,通过利用upper、lower、ucase、lacase几个函数对字符串进行大小写转换。 upper(str)——根据当前字符集映射返回字符串str,并将所有字符更改为大写。默认值是latin1(西欧cp1252)。 lower(str)——根据当前字符集映射返回字符串str,并将所 阅读全文
posted @ 2018-05-22 16:24 Hider1214 阅读(1816) 评论(0) 推荐(0) 编辑
摘要:一、repeat循环 注意使用repeat的时候,在判断条件(until条件)的那一行句末不加分号,这个很容易出错! 二、loop循环 注意 loop 一般要和一个标签(此处为label,名称可以自定义,不过要保证前后一致)一起使用,且在 loop 循环中一定要有一个判断条件,能够满足在一定的条件下 阅读全文
posted @ 2018-05-22 13:16 Hider1214 阅读(2760) 评论(0) 推荐(0) 编辑
摘要:思考:while循环是否只能使用在存储过程或者存储函数之中,不能直接在查询语句中使用? ———— 循环一般在存储过程和存储函数中使用。 直接放几个例子: 例一: 1.创建存储过程 2.调用存储过程 3.删除存储过程 例二: 1.创建函数 注意:创建函数之前必须更改系统设置 否则无法创建函数 2.调用 阅读全文
posted @ 2018-05-22 13:12 Hider1214 阅读(43484) 评论(0) 推荐(1) 编辑
摘要:问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its decla 阅读全文
posted @ 2018-05-22 13:00 Hider1214 阅读(867) 评论(0) 推荐(0) 编辑
摘要:删除存储过程、存储函数主要使用drop语句: drop procedure —— 删除存储过程 drop function —— 删除存储函数 语法: 例子: 注意:如果存储过程或存储函数不存在时,仍然进行删除,可以使用IF EXISTS子句,它可以防止发生错误,产生一个用SHOW WARNINGS 阅读全文
posted @ 2018-05-22 12:52 Hider1214 阅读(21846) 评论(0) 推荐(0) 编辑
摘要:1.MySQL计算同一张表中同一列的时间差,同一个id,有多个时间,求出每个id最早时间和最晚时间之间的差值。 原始表如下: 查询语句: 输出结果: 阅读全文
posted @ 2018-05-21 15:04 Hider1214 阅读(356) 评论(0) 推荐(0) 编辑
摘要:一、时间差函数:timestampdiff 语法:timestampdiff(interval, datetime1,datetime2) 结果:返回(时间2-时间1)的时间差,结果单位由interval参数给出。 frac_second 毫秒(低版本不支持,用second,再除于1000) sec 阅读全文
posted @ 2018-05-21 14:21 Hider1214 阅读(36080) 评论(1) 推荐(2) 编辑
摘要:在MySQL中,实现字符串拼接主要有以下3种函数: concat(x,y,...) concat_ws(分隔符,x,y,...) group_concat(distinct xxx order by asd/desc yyy separator '分隔符') 一、concat函数 concat()函 阅读全文
posted @ 2018-05-18 09:44 Hider1214 阅读(1101) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示