![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
MonkeyKing.sun
未来已来,记录现在,验证未来
展开
-
sql查询:将下一行减去上一行,并做相应的计算
项目中,有一个小时获取一个数据的任务,获取具体的值后,需要存在数据库中。但是长期累计后,需要检查有没有做到一个小时记录一次。比如这样的数据:我们需要统计,有没有遗漏的遗留,是不是有遗漏了一个小时的,查询结果:这样就和容易查询出来,那些地方不是一个小时一次了。知识点: 使用sqlite的窗口函数...原创 2022-07-06 22:20:01 · 6191 阅读 · 0 评论 -
mysql根据身份证计算具体的年龄
第一种写法:SELECT TIMESTAMPDIFF(YEAR, SUBSTRING(identity_no, 7, 8), NOW()) AS age from cmpt_enroll where cmpt_id=8 and del_flg=0第二种写法:select *from cmpt_enroll where cmpt_id=8 and del_flg=0 and (substring(now(),1,4)-substring(identity_no,7,4))-(substring(原创 2021-03-23 21:30:28 · 1712 阅读 · 0 评论 -
mysql 根据某个字段排名,获取名次
对于数据,我们就会涉及到统计报表,对于成绩数据,需要对统计报表进行排名怎么对一个表中根据某个字段排名,获取名次呢?select * from (SELECT t1.*,@rank :=@rank + 1 AS pm FROM ( SELECT * FROM t_athlete_score where fk_comp...原创 2019-12-27 22:20:16 · 5228 阅读 · 1 评论 -
MYSQL查询存在一个表而不在另一个表中的数据
mysql两个表,一个表的数据是全的,另外一个表是有记录才存储,没有数据就不存储,现在要查询本表的数据有哪些在另外一个表中没有出现的记录。t_competition表t_comp_file表t_competition的pk_id 和t_comp_file 表的fk_comp_id第一种写法:SELECT f_name, f_protocol_date, f_link_man,...原创 2019-12-25 11:42:23 · 2790 阅读 · 0 评论 -
mysql 中DATE_FORMAT()和case when的使用
mysql中涉及到日期格式的整理,就要使用到date_format()函数,函数的使用:DATE_FORMAT(b.f_protocol_date,’%Y-%m-%d’)返回的格式:2019-12-16其他格式的定义:格式 描述%a 缩写星期名%b 缩写月名%c 月,数值%D 带有英文前缀的月中的天%d 月的天,数值(00-31)%e 月的天,数值(0-31)%f 微秒...原创 2019-12-16 17:01:53 · 623 阅读 · 0 评论 -
mysql把日期相减并按照区间范围统计
数据计算导入时间和审核时间之间的差并且按照时间区间,整理成excel画出图表。关键的表字段如上图所示。首先两个日期的加减涉及到mysql的函数datediff(),可以计算出两者之间的差值SELECT fk_comp_id, datediff( LEFT (f_create_time, 8), LEFT (f_date, 8) )FROM t_athlete_score...原创 2019-12-14 15:12:23 · 965 阅读 · 0 评论 -
mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入
在整理数据时,面临数据的插入操作,如果数据库已经有了这个数据,将不插入,如果是数据库中没有这个数据将直接插入。insert into bag_claim (cmpt_id,enroll_id,mark_no,work_id,goods_id,create_time,update_time) select 13824,9959055,'C5650',411,1,NOW(),NOW() from d...原创 2019-11-04 10:10:20 · 7358 阅读 · 0 评论 -
mysql迁移指定查询条件的数据
实际开发场景中,涉及到将数据迁移到测试库,或者预发布环境库,怎么快速迁移mysql的数据。第一种方法使用navicat工具,将语句写好,然后点击工具栏右上角的【导出】按钮。然后找到对应数据库,点击【运行sql文件】单张表,或者表的个数少的情况,可以采用这种形式。2、多张表情况,采用上面的形式有点费力,需要第二种办法,dump脚本的方案。2.1编辑shell脚本#!/bin/bash...原创 2019-10-31 10:55:54 · 774 阅读 · 0 评论 -
mysql单个表找出最好或者最多的一条和二条数据
在统计数据的时候,会遇到这种场景,找出这个表中按照某个字段的排序,最好的一条或者最好的两条,遇到这种场景应该怎么样处理?比如: temp_athlete_score的表数据结构为现在要查询出那人的最好的一条成绩。select * from temp_athlete_score as m where (select count(*) from temp_athlete_score as f...原创 2019-10-30 14:10:51 · 480 阅读 · 0 评论 -
mysql数据库异地备份脚本
mysql数据库存储在一个机器下,风险成本太高,需要做好异地备份,降低数据风险,以下是数据库异地备份的脚本#!/bin/bashprecheck () {n=0while [ $n -le 60 ]do${mysqlhome}/bin/mysql -P ${myport} -u ${myuser} -p${mypass} -h 10.3.51.203 << EOF >...原创 2019-02-22 09:45:53 · 1625 阅读 · 0 评论 -
mysql使用查询出来的值update新的表
今天遇到一个情况,使用新查询出来的值作为键值更新其他的表更新不了,报[Err] 1093 - You can't specify target table 'cmpt_main' for update in FROM clause我的mysql更新语句为:UPDATE cmpt_main SET cmpt_status=3 where cmpt_id in (select cmptId...原创 2019-01-10 15:33:09 · 5910 阅读 · 0 评论 -
阿里云RDS跨账号迁移数据
重新创建了一个阿里云,购买了RDS服务,但是原有的数据在另一个阿里云账号下,于是只能将阿里云一个账号下的RDS的数据迁移到另外的一个阿里云账号下。这个就需要阿里云的一个DTS服务。名次解释:源数据库RDS:旧有数据存储的RDS目的数据库RDS:需要将数据存储在的RDS具体的步骤:第一步:设置源数据库的RAM权限1.1 新建RAM角色1.2 设置权限,如下三个权限1.3 RA...原创 2019-03-18 12:54:53 · 2096 阅读 · 1 评论 -
Mysql Explain 详解
MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。一.语法explain sql语句二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+| id | ...原创 2018-12-22 17:50:40 · 228 阅读 · 0 评论 -
liunx下mysql数据迁移
1、需要一台每天备份mysql数据的备份服务器,也就是数据灾备服务器。备份数据的脚本如下,也可以手工执行脚本,进行备份。#!/bin/bashprecheck () {n=0while [ $n -le 60 ]do${mysqlhome}/bin/mysql -P ${myport} -u ${myuser} -p${mypass} -h 10.3.51.203 << ...原创 2019-09-03 22:46:47 · 214 阅读 · 0 评论 -
mac 安装mysql
1、登录mysql官网下载mysql社区版网址:https://dev.mysql.com/downloads/mysql/2、下载后一直点击下一步和默认,最后输入root的密码,完成安装3、配置环境变量3.1 创建一个文件:sudo touch /etc/paths.d/mysql3.2 用 vi 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):sudo v...原创 2018-12-20 20:27:02 · 282 阅读 · 0 评论 -
order by产生的 Using temporary的优化
今天遇到一个慢查询的sql,sql如下:EXPLAINSELECT tas.f_year, tc.pk_id, tas.f_sex, tas.f_rank_score, tas.f_age, tas.f_km_five, tas.f_km_ten, tas.f_km_fifteen, tas.f_km_twenty, tas.f_km_halfway, tas.f_km_...原创 2019-03-25 16:34:59 · 3684 阅读 · 0 评论 -
mysql性能参数配置案例
现在有一台机器配置是4核CPU,24G内存,1000G硬盘的服务器,搭建mysql服务器的主服务器,在/etc/my.ini中的配置如下:[mysqld]datadir=/opt/mysql/datasocket=/var/run/mysqld/mysql.sockpid-file=/var/run/mysqld/mysql.piddefault-storage-engine=INNOD...原创 2019-03-26 10:27:27 · 170 阅读 · 0 评论 -
身份证前6位城市代码
身份证前6位代码代表着城市的范围,这样用户的身份证信息就可以分析所在城市的信息了。比如:370781,其中370000代表山东省370700代表潍坊市370781代表青州市(县级市)这样我们就可以根据370781找出山东省潍坊市青州市的信息。现在需要最全的身份证前六位的城市代码SET FOREIGN_KEY_CHECKS=0;-- ------------------------...原创 2019-07-02 16:59:45 · 8700 阅读 · 0 评论 -
java.sql.SQLException: Unknown initial character set index '45' received from server.
启动tomcat,链接mysql出现如下的错误,查询日志因为mysql大小写问题,程序里组装的mysql都是大写的sql,执行到mysql,mysql找不到对应的大写的mysql的表。java.sql.SQLException: Unknown initial character set index '45' received from server. Initial client charac...原创 2019-07-09 15:12:25 · 2443 阅读 · 3 评论 -
mysql 将秒转化为时间,将时间转化为秒
mysql 将秒转化为时间select SEC_TO_TIME(15528)将时间转化为秒数select TIME_TO_SEC("02:10:11")原创 2019-07-19 10:06:00 · 3447 阅读 · 1 评论 -
两个阿里云账号,一个windows一个liunx,两个mysql怎样同步数据。
现在又这么一种情况,我们给客户做了一个程序,数据都在我们的阿里云RDS(MYSQL)中,对方提出要求,要把部分关键表的数据,每天同步到他们自己的数据库中,要做数据分析。第一步:编写一个自动化的脚本,每天0点02分将mysql中的数据拉出来,保存为bag.sql.xxxx.xxx说明一下第一、对于只涉及到单个表的简单查询条件的sql,比如: select * from member_info ...原创 2019-07-17 22:36:43 · 211 阅读 · 0 评论 -
mysql 更新某个字段的部分内容
因项目开发定义的时候,没有做好规划,将IP:端口(59.46.220.170:8080)直接存入数据库的文章的内容字段中,升级服务器后,造成文章里面的内容缺少。现在需要替换里面的内容为域名。UPDATE mls.t_tx_infoSET f_content = REPLACE ( f_content, "59.46.220.170:8080", "wwwXXXXX.cn")WHE...原创 2019-09-11 22:39:36 · 1058 阅读 · 0 评论 -
mysql In和EXISTS优化
SELECT c.CustomerId, CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerID = cu.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和Comp转载 2017-10-26 15:48:00 · 1463 阅读 · 0 评论 -
leetcode刷题:查找重复的电子邮箱
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+—-+———+ | Id | Email | +—-+———+ | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | +—-+———+ 根据以上输入,你的查询应返回以下结果:+———+ | Email | +———+ | a@b.com...原创 2018-07-03 14:41:08 · 2313 阅读 · 0 评论 -
navicat 连接阿里云RDS的设置
阿里云RDS为了数据安全起见,只设置内网连接,不开通外网连接。那么使用navicat怎么连接上RDS呢?需要一台能连接外网的阿里云的ECS机器。 步骤: 1、设置SSH连接到阿里云的ECS机器。地址是ECS机器的外网Ip。 2、在常规连接项,写RDS的内网连接地址 3、阿里云的RDS的只有内网,把外网地址释放了就可以了。进制程序是通过外网地址连接,因为占用带宽流量要收费,还不稳定。...原创 2018-06-25 10:54:55 · 7259 阅读 · 0 评论 -
MySQL 性能优化技巧
一、背景最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久。原因是新功能用到旧功能的接口,而这些旧接口的 SQL 查询语句关联5,6张表且编写不够规范,导致 MySQL 在执行 SQL 语句时索引失效,进行全表扫描。原本负责优化的同事有事请假回家,因此优化查询数据的问题落在笔者手中。笔者在查阅网上 SQL 优化的资料后成功解决了问题,在此从全局角度记录和总结 MySQL 查询优化相关技巧。转载 2017-10-25 18:15:20 · 306 阅读 · 0 评论 -
mysqldumpslow 分析mysql慢查询
MySQL 提供 mysqldumpslow 工具对日志进行分析。我们可以使用 mysqldumpslow –help 查看命令相关用法。常用参数如下:-s:排序方式,后边接着如下参数 c:访问次数 l:锁定时间 r:返回记录 t:查询时间al:平均锁定时间ar:平均返回记录书at:平均查询时间-t:返回前面多少条的数据-g:翻遍搭配一个正则表达式,大小写不原创 2017-10-25 17:23:37 · 254 阅读 · 0 评论 -
关于 MySQL LEFT JOIN 需要了解的三点
ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据。在匹配阶段 WHERE 子句的条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。它将从匹配阶段产生的数据中检索过滤。让我们看一个 LFET JOIN 示例:mysql> CREAT转载 2017-10-25 15:57:48 · 1183 阅读 · 0 评论 -
按时间段查看mysql的操作日志
1、登录mysql安装的那台机器,找到my.cnf.我的my.cnf文件在etc地下,所有执行 cat /etc/my.cnf ,看到如图所示的binlogs存放位置 2、进入日志所在目录 cd /home/mysql/logs/binlogs, 输入ls -al 查看需要查看的binlogs产生的时间。 3、如果需要查询2017-09-17 07:21:09到2017-09-19 07:5原创 2017-10-13 15:38:02 · 12066 阅读 · 0 评论 -
阿里巴巴java开发手册-数据库部分
(一) 建表规约【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint( 1表示是,0表示否)。 说明:任何字段如果为非负数,必须是unsigned。 正例: 表达逻辑删除的字段名 is_deleted,1表示删除, 0表示未删除。 表示未删除。【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现转载 2017-10-27 13:36:57 · 2288 阅读 · 0 评论 -
MySQL中添加唯一约束和联合唯一约束
在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束。一、单列唯一约束在一列上添加唯一约束,主要是让该列在表中只能有唯一的一行,例如注册邮箱时的邮箱名、手机号等信息,相关操作如下:1.建表时加上唯一性约束: CREATE TABLE t_user ( Id int(11) NOT NULL AUTO_INCREMEN转载 2017-08-28 11:28:40 · 3954 阅读 · 0 评论 -
mysql将一个表的数据插入到另外一个表,如果某个字段已经存在将不插入的sql
insert into registerInfo_extend(userId,name)select userId,'游客'from registerInfowhere not exists (select * from registerInfo_extendwhere registerInfo_extend.userId=registerInfo.userId) LIMIT 0,1000原创 2017-08-23 17:32:13 · 5888 阅读 · 0 评论 -
MYSQL中取当前周/月/季/年的第一天与最后一天
当年第一天:SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);当年最后一天:SELECT concat(YEAR(now()),'-12-31'); 当前week的第一天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);当前week的最后一天: sel原创 2017-07-25 18:02:31 · 3515 阅读 · 3 评论 -
LINUX启动、停止、重启MYSQL的命令
1、启动 使用 service 启动:service mysqld start 2、停止 使用 service 启动:service mysqld stop 3、重启 使用 service 启动:service mysqld restart原创 2017-08-02 14:32:14 · 3728 阅读 · 0 评论 -
mysql or语句的优化
在某些情况下,or条件可以避免全表扫描的。1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行。 1)myisam表: CREATE TABLE IF NOT EXISTS a ( id int(1) NOT NULL AUTO_INCREMENT, uid int(11) NOT NULL, aNum char(20) DEFAULT转载 2017-10-26 13:49:37 · 8265 阅读 · 0 评论 -
mysql union,union all的优化
1 建表如下CREATE TABLE t92 ( a1 int(10) unsigned NOT NULL , b1 int(10) DEFAULT NULL, UNIQUE KEY (a1) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE t93 ( a2 int(10) unsigned NOT NULL, b2转载 2017-10-26 15:18:08 · 4079 阅读 · 0 评论 -
mysql sql语句优化建议
1.select * from table_name where;建议将*改为需要的列。影响网络传输和内存。2.like语句一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。3.不要在列上进行运算,无法运用索引select * from users where YEAR(adddate)<2007;将在原创 2017-10-26 16:20:02 · 383 阅读 · 0 评论 -
Python 检查主从数据库的数据是否一致
import pymysqlconnection_master=pymysql.connect(host='10.3.XXXX', user='XXXX', password='XXXX', db='XXXX', ...原创 2018-06-07 15:39:52 · 1302 阅读 · 0 评论 -
mysql导出数据字典到docx
使用navicat导出数据字典,发现只能一张一张表的操作。有点麻烦,于是想了这个办法,写个简单的Python导出数据库的数据字典,直接上代码import pymysqlfrom docx import Documentconnection=pymysql.connect(host='XXXXXX', user='XXXX', ...原创 2018-06-06 15:01:08 · 1936 阅读 · 3 评论 -
mysqldump备份后,找回一个表的部分数据的方法
因为操作,删除了一个表中的条件是cmptId=6652的所有的数据,我们数据库每天凌晨4点都会备份数据,所以只想回复这一点数据。由于在生产环境下,不敢做直接回复,现在说一下我的一个找回数据的方法: 1、找到mysqldump备份sql的位置,解压,找到所在的数据库。 2、然后执行 grep -i INSERT INTO time_checkinrecord geeRunner.sql &g...原创 2018-06-05 17:05:54 · 760 阅读 · 0 评论