![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
7.2 mysql
双斜杠少年
希望经记录下来自己学习过程,并和大家一块分享
展开
-
一文读懂mysql-万字长文,肝就完了
1.存储引擎1.1 innodb提供了对数据库 ACID事务 的支持提供了 行级锁和外键的约束。InnoDB的行锁也是分为行级**「共享读锁(S锁)「和」排它写锁(X锁)」**,原理特点和MyISAM的表级锁两种模式是一样的。设计的目标就是 处理大数据容量 的数据库系统会出现死锁,但是 InnoDB的支持的并发性能比MyISAM好, 行锁的粒度最小,一定的方法和措施可以解决死锁的发生,极大的发挥InnoDB的性能InnoDB中引入了 间隙锁 的概念来决解出现 幻读 的问题,也原创 2020-10-22 23:54:52 · 963 阅读 · 1 评论 -
mysql DISTINCT去重,返回去重后的所有字段
一天一个mysql小技巧问题:distinct 对某一字段去重,返回记录所有字段值,但是记录其它字段也有重复值,导致无法返回。描述:在使用mysql时,有时需要查询出某个字段不重复的记录,distinct 关键字可以过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段。用distinct...原创 2020-04-21 17:55:41 · 13603 阅读 · 6 评论 -
sql小结
(案例来自医药采购) 1.1 内链接关联查询:(一对一:只能查询到一条数据) 如果表A和表B有一个外键关联 (由于有外键可以通过内链接),可以通过外键进行内链接查询 select dictinfo.*,dicttype.typename from dictinfo, dicttype where dictinfo.typecode = dicttype.typec原创 2016-02-28 21:46:26 · 909 阅读 · 0 评论 -
mysql 常用函数
HAVING在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。O_Id OrderDate OrderPrice Customer1 2008/12/29 1000 Bush2 2008/11/23 1600 Carter3 2008/10/05 700 Bush4 2转载 2017-06-26 15:54:31 · 457 阅读 · 0 评论 -
mybatis 的批量操作,查询、更新、插入
mybatis 的批量更新 主要依靠 foreach 标签拼接sql 实现批量操作。第一种方法,拼装成一条sql<update id="batchUpdateRawEventStatus" parameterType="java.util.List"> update raw_event set status = 1 where id in <foreach collection="list原创 2017-02-14 00:09:55 · 7508 阅读 · 0 评论 -
insert和 select 结合实现“插入某字段在数据库中的最大值+1”
本文是mysql 数据库问题一 将表一的数据导入表二:将表一的数据导入表二:将表二中的数据 插入到 表一,表一的列对应表二 select 出来的列INSERT INTO 表一 (column1, column2, column3, column4)select column1, column2, column3, column4 from 表二 问题二 表中插入数据时,某一字段取数据库中该字段原创 2017-07-24 23:44:42 · 20514 阅读 · 15 评论 -
在mysql数据库中保存emoji特殊字符
原文地址:http://blog.csdn.net/beatrice_g20/article/details/48489437MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也 会不会对已有的utf8编码读取产生任转载 2017-08-24 16:45:21 · 1591 阅读 · 1 评论 -
mysql 的时间操作函数
TIMESTAMPDIFFTIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:FRAC_SECOND。表示间隔是毫秒SECOND。秒MINUTE。分钟H原创 2017-04-10 19:56:09 · 11048 阅读 · 0 评论 -
mysql 中创建自增的序列(Sequence)
需求:业务开发一个时间轴功能,时间轴上展示多个表的数据,时间轴滚动刷新。问题:获取多个表中的前几条数据比较麻烦,需要将多个表的数据拿出来排序然后limit 取数据。这样多表取数据如果数据量大很麻烦, 比如要取前5-10条数据,需要取表A的0-10 和表B的0-10然后合并,取前五。这样会搜索出冗余数据。多个表按时间排序时间可能重复,所以以时间为分界值截取数据容易造成数据记录丢失。解决:分析以原创 2017-10-09 09:28:56 · 91757 阅读 · 4 评论 -
MySQL 记录不存在插入 和 存在则更新
mysql insert into where not existsINSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;INSERT 中 ON DUPLICATE KEY UPDATE的使用如果指定了ON DUPLICATE KEY UPDATE,并且插入行后会导原创 2017-07-13 14:59:23 · 17412 阅读 · 2 评论 -
mybatis 获取更新(update)记录的id 之< selectKey > 用法
问题用mybatis update 记录,更新过后想要更新记录的id 怎么办?平常我门都是更新数据,用更新的条件再查询一次,得到更新的记录。这样我门就进行了两次数据库操作,链接了两次数据库。增加了接口的处理事件,因为链接数据库是很耗时的操作。简介其实可以通过 mybatis 的 selectKey 标签来解决这个问题。 selectKey 这个标签大家基本上都用过,比如在插入数据的时候,返回插入数原创 2017-07-03 22:01:29 · 43719 阅读 · 32 评论 -
阿里云ecs安全组引发的血案
Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’(36) Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’ (60) 烦人背景阿里云ecs centos 7.2、 docker1.8 mysql 5.7.10 看到这个就头疼,今天在阿里云ecs(系统是centos 7.2)安装了docker原创 2017-06-22 23:07:54 · 4383 阅读 · 2 评论 -
mac 中docker安装mysql
今天在docker中安装了mysql ,是自己打的docker包。 首先新建Dockerfile 内容如下:FROM mysql:latestMAINTAINER abel.yang <527515025@qq.com>LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="l原创 2016-11-03 09:54:23 · 7375 阅读 · 2 评论 -
mysql 通过存储过程分割字符串为数组
分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数原创 2016-08-16 11:54:06 · 22964 阅读 · 1 评论 -
MySQL CAST与CONVERT 函数类型转换
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下: CAST(value as type); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个:二进制,同带binary前缀的效果 : BINARY 例如:原创 2016-09-14 10:40:32 · 7556 阅读 · 0 评论 -
sql 判断条件并赋值给虚子段
查询当用户表,当用户年龄 在20,21,22 中且 性别 等于1 (1:为男,2:为女)时赋值给虚列 is_youngMan 的值为1 ,否则赋值给 is_youngMan 值为2 ;用户表子段如下 id name age sex 1 zhangsan 20 1 2 lisi 22 1 3 xiaohong 19 2SELECT *,原创 2016-09-14 11:23:21 · 9380 阅读 · 0 评论 -
mysql 的联查更新
通过 LEFT join 实现更改表A中的create_by 当表A 的business_id 等于B的id 且表A的名字 like publish方法一update 表A a LEFT join 表B b on a.business_id=b.id set a.create_by=b.create_by where a.name like 'publish%'方法二UPDATE 表原创 2016-09-20 15:11:45 · 1152 阅读 · 0 评论 -
MAC 安装mysql 5.7 以上问题解决,MAC安装brew所遇问题解决
最近换了新的电脑,于是各种环境各种配,遇到了不少奇葩问题,这篇博客对一些比较棘手的问题进行整理(每个问题几乎都耽误了我3个小时)。。。1.MAC 安装mysql 5.7.13首先是mysql 问题,我安装的mysql 5.7.13 是当前最新的版本。在mysql 官网https://www.mysql.com/downloads/下载最新的mysql 安装包(如:mysql-5.7.13-osx10原创 2016-06-30 23:33:04 · 11038 阅读 · 0 评论 -
mysql 多表删除 和UNION 、UNION all的用法
1.多表删除DELETE table1 ,table2 FROM table1 left JOIN table2 ON table1.id = table2.tool_id WHERE table1.id =#{id}2. UNION和UNION allUNION用的比较多union all是直接连接,取到得是所有值,记录可能有重原创 2016-12-18 17:34:24 · 2875 阅读 · 0 评论 -
mysql使用TRIM函数去除字段首尾的特定字符
mysql中的去除左空格函数:LTRIM(str) 代码如下:mysql> SELECT LTRIM(' barbar'); -> 'barbar' mysql中的去除右空格函数:代码如下:mysql> SELECT RTRIM('barbar '); -> 'barbar' trim函数可以过滤指定的字符串:完整格式:TRIM([{BOTH | LEADING | TRAILING}转载 2016-12-18 17:43:35 · 18367 阅读 · 0 评论 -
You must reset your password using ALTER USER statement before executing this statement.
亲测有效。 set 重置一下密码;(但可能过几个月还是会过期。。。,不过可以解燃眉之急) SET PASSWORD = PASSWORD('your new password');原创 2017-01-17 14:30:50 · 917 阅读 · 0 评论 -
redhat7.1 安装mysql 5.7.10
在redhat下安装mysql,步骤如下Mysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql1. 获取mysql安装包,mysql-5.7.10-linux-glibc2.5-x86_64.tar解压后目录如下。2. 解压mysql-5.7.10-linux-g原创 2016-11-03 22:41:17 · 5989 阅读 · 2 评论 -
mysql 函数入门
为什么要用mysql函数?mysql中函数就好比java中的接口定义,我们定义了一套规则后,希望大家能够遵守,又避免重复发明轮子以至于以后不好维护,就把很多大家可能都用到的逻辑进行集中处理,到时候就可以直接使用了。比如我们所说的分页,设定好后直接传参便可以了。尤其是比较复杂一点的多交互语句,减少与数据库的交互次数,就能够更大程度的提高客户体验。好了,下面我们就看一下什么是m转载 2016-08-15 17:29:39 · 768 阅读 · 0 评论