![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
mysql相关
于无声处-听惊雷
这个作者很懒,什么都没留下…
展开
-
mysql 锁机制和加锁原理
按照锁的粒度划分:行锁、表锁、页锁 按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现) 还有两种思想上的锁:悲观锁、乐观锁1.行锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。有可能会出现死锁的情况。 行级锁按照使用方式分为共享锁和排他锁。共享锁用法(S锁 读锁): 若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上..转载 2021-08-08 18:43:49 · 116 阅读 · 0 评论 -
mysql事物的隔离级别
SQL标准中的事务四种隔离级别隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Repeatable read) 不可能 不可能 可能 可串行化(Serializable ) 不可能 不可能原创 2021-08-07 11:15:24 · 79 阅读 · 0 评论 -
mysql Date 函数 (日期函数)
下面的表格列出了 MySQL 中最重要的内建日期函数:函数 描述NOW() 返回当前的日期和时间CURDATE() 返回当前的日期CURTIME() 返回当前的时间DATE() 提取日期或日期/时间表达式的日期部分EXTRACT() 返回日期/时间的单独部分DATE_ADD() 向日期添加指定的时间间隔DATE_SUB() 从日期减去指定的时间间隔DATEDIFF() 返回两个日期之间的天数DATE_FORMAT() 用不同的格式显示日期/时间常用日期格式:%原创 2021-07-30 15:01:16 · 472 阅读 · 0 评论 -
mysql清空表
mysql清空表可以用delete和truncate两个命令来完成:delete ① 语法:delete from table_name; ② 示例:DELETE FROMorder; truncate ① 语法:truncate table table_name; ② 示例:TRUNCATE TABLEorder; 区别 ① 使用delete清空表中的记录,内容的ID仍然从删除点的ID继续建立,而不是从1开始。而truncate相当于保留了表的结构而重新建立了一张同样的新表。delete的效果..原创 2021-07-30 14:56:06 · 4109 阅读 · 0 评论 -
mysql配置文件my.cnf添加max_connections不生效
业务场景:mysql连接报错 too many connections解决问题步骤:1.查看mysql最大连接数量:show variables like "max_connections";2.查看正在执行的sql语句:show processlist;3.设置mysql的max_connections参数a.使用shell登录Linux服务器b.修改mysql配置文件vim /etc/my.cnf // 添加max_connections = 期望值c.修改完成重启my原创 2021-07-30 14:55:03 · 870 阅读 · 0 评论 -
mysql count 指定字段 数量
1.业务场景mysql 查询某一字段的特定值的数量样例1:qvalue:查询的字段名称select count(qvalue = '特定值1' or null),count(qvalue = '特定值2' or null),count(qvalue = '特定值3' or null)from table注意:大家肯定会疑问为什么count 要使用 or null原因:count 计算时,当值为null时不会计数,count(qvalue="特定值") 返回值为true或者fa原创 2021-07-30 14:53:51 · 4924 阅读 · 0 评论 -
mysql 索引失效总结
下面是反面教材:1.以%开头的LIKE查询不能使用BTREE索引explain select deptName,remark,createDate from dept where deptName like'%2' and remark = 'test'and createDate ='2018-07-22'; type index2.数据类型出现隐式转换时也不能使用索引explain select deptName,remark,createDate from dept where dep原创 2021-07-29 10:42:34 · 101 阅读 · 0 评论 -
mysql for循环新增随机数
知识点:1.DELIMITER关键字:设置结束标志符号2.mysql存储过程模板DELIMITER $$CREATE PROCEDURE method()BEGIN执行sqlEND WHILE;END $$3.mysql存储过程for循环WHILE i < 1500 DOEND WHILE;4.调用存储过程:CALL method();5.mysql存储过程定义变量DECLARE param1 BIGINT;DECLARE param2 INT原创 2021-07-28 18:16:17 · 402 阅读 · 0 评论 -
Mysql 根据某个字段分组,并将多条记录的某个字段以逗号分隔成一条数据
group_concat()函数实例:CREATE TABLE `user` (`id` bigint(22) NOT NULL AUTO_INCREMENT,`uid` bigint(22) NOT NULL COMMENT '用户id',`name` varchar(255) NOT NULL COMMENT '用户姓名',PRIMARY KEY (`id`) USING BTREE,KEY `idx_uid` (`uid`) USING BTREE) ENGINE=InnoDB原创 2021-07-28 18:13:27 · 1313 阅读 · 0 评论 -
mysql 区间查询
需求:统计各个班级的学生成绩(0-60,60-80,80-100)三个区域的人数建表:CREATE TABLE `tbl_sys_study` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) COLLATE utf8mb4_esperanto_ci DEFAULT NULL,`score` int(11) DEFAULT NULL,`class_name` varchar(20) COLLATE utf8mb4_espera原创 2021-07-28 18:11:14 · 539 阅读 · 0 评论 -
mysql json 解析 JSON_EXTRACT
业务需求:数据库查询数据,json数据展示多个字段工具:mysql :5.7及以上Navicat:12.0及以上样例:json串:{"name":"大使。","sex":"男","hobby":"女"}sql片段REPLACE (JSON_EXTRACT (json串, '$.name'),'"','') AS 'name'...原创 2021-07-28 18:09:56 · 316 阅读 · 0 评论 -
Mysql 中将blob类型转换成varchar类型
select CAST(blobfield AS CHAR(10000) CHARACTER SET utf8) from table原创 2021-07-28 18:08:37 · 1846 阅读 · 0 评论 -
mysql 添加唯一键 删除唯一键冲突数据
DELETE FROMtbl_gold_resourceWHEREid IN (select * from(SELECTresource.idFROMtbl_gold_resource resource,( SELECT min( id ) id, phone, job_number FROM tbl_gold_resource GROUP BY phone, job_number HAVING count(*) > 1 ) t2WHEREresource.phone = t.原创 2021-07-28 18:07:33 · 299 阅读 · 0 评论 -
mysql 两表关联批量更新
update table1,table2 set table1.column1 = table2.column2where table1.column2 = table2.column3解释:表一和表二通过table1.column2 = table2.column3关联批量更新table1.column1 = table2.column2原创 2021-07-28 18:06:11 · 878 阅读 · 0 评论 -
mysql 查询指定两个字符串之间的值
业务场景:由于数据库中存储的值往往都是原始的,根据业务的不同我们需要提取出目前业务所需要的值现将mysql提取两个字符串之间值的sql展示分析如下:SUBSTRING(body,locate('指定字符1',body)+CHAR_LENGTH('指定字符1'),locate('指定字符2',body)-(SELECT locate('指定字符1',body)+CHAR_LENGTH('指定字符1'))) as 别名解析如下:SUBSTRING(s, start, length):原创 2021-07-28 18:05:09 · 1807 阅读 · 0 评论 -
mysql 批量插入12位随机数字
解析:批量、随机12位数字mysql随机12位数字select CEILING(RAND()*900000000000+100000000000);mysql批量处理函数delimiter //create PROCEDURE rand_data (in num int)begindeclare i int default 0;while i<num doset i=i+1;insert into table_name(column1) values (CEILING(原创 2021-07-28 18:02:51 · 920 阅读 · 0 评论 -
MYSQL排序过滤特定值或范围
有一个网站需要进行排序,添加了一个字段,在未设置排序序号的情况下,默认设置为0,在进行排序时要把序号为0的排到后面,这样就可以通过序号进行升序或降序排序。相应的SQL语句可以这样写SELECT*FROMwdja_productORDERBYp_order=0, p_orderASC这里的p_order=0是排除值为0的数据,然后再进行排序操作。相应的也可以设置p_order>=0或p_order<=0或p_order>99等...原创 2021-03-01 10:50:28 · 1163 阅读 · 0 评论