![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
梦想不会灭
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
展开
-
MySQL - 使用不等于条件时值为NULL的数据也消失
MySQL - 使用不等于条件时值为NULL的数据也消失问题原因以及解决方案原创 2022-08-14 22:34:08 · 689 阅读 · 1 评论 -
MySQL 中文姓名 按照26字母顺序排序
MySQL 中文姓名 按照26字母顺序排序不生效原创 2022-08-14 22:30:23 · 916 阅读 · 0 评论 -
Mysql错误Error writing file ‘/opt/common/xxxxxx’ (Errcode: 28)的解决方法
1、问题现象在执行相关查询sql时报下图所示的错2、原因对于一些复杂的sql或者操作数据比较多的sql时,如果此时临时目录的剩余空间不足就会出现次错误。3、解决办法/opt/common/xxxx为配置文件my.cnf中配置的临时目录,可以通过删除该目录数据或者指向更大目录的方法来解决次问题,或者查看占用存储空间较大的文件是什么文件来决定如何处理。......原创 2022-05-16 19:53:42 · 1383 阅读 · 0 评论 -
mysql时区怎么修改?
mysql默认使用的SYSTEM时区,即EST时区,查询相关资料可知,EST时区要比北京时间(东八区)慢13个小时1、查看数据库时区show variables like '%time_zone%';2、修改数据库时区1、通过sql命令临时修改设置全局时区:set global time_zone = '+8:00';设置时区为东八区:set time_zone = '+8:00';刷新权限使权限立即生效:flush privileges;2、修改my.cnf.原创 2022-05-10 20:47:38 · 3299 阅读 · 0 评论 -
java.sql.SQLException: HOUR_OF_DAY: 2 -> 3
1、问题报错2、原因由于没过的夏令营导致的报错。夏令时:由于美国有夏令时,CST非夏令时对应 UTC-06:00,夏令时对应 UTC-05:00 。美国的夏令时,从每年3月第2个星期天凌晨开始,到每年11月第1个星期天凌晨结束。以2020年为例:夏令时开始时间调整前:2020年03月08日星期日 02:00:00,时间向前拨一小时.调整后:2020年03月08日星期日 03:00:00夏令时结束时间调整前:2020年11月01日星期日 02:00:00,时间往回拨一小时.调整后:202原创 2022-05-09 21:53:28 · 3896 阅读 · 0 评论 -
视图和表的区别和联系
数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert和delete等操作最终会作用于与其相关的表中数据。因此,表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。表是物理存在的,你可以理解成计算机中的文件!视图是虚拟的内存表,你可以理解成Windows的快捷方式!1.原创 2020-09-30 16:01:19 · 7508 阅读 · 0 评论 -
Mysql not in查询返回为空
这个问题的根源在于null,众所周知,当判断一个值是否为null的时候,sql要用is null 或者is not null, 在SQL中,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身解决:select ID from SmartCustomer where ID not in (select distinct CustomerID from SmartPromote原创 2020-09-30 15:28:46 · 1157 阅读 · 2 评论 -
浅谈 mysql 悲观锁与乐观锁的理解以及使用方式
文章目录一、并发控制二、悲观锁(Pessimistic Lock)三、乐观锁(Optimistic Locking)四、实现方式1、悲观锁实现方式2、乐观锁实现方式五、如何选择一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复原创 2020-08-09 16:30:05 · 878 阅读 · 1 评论 -
事务解答之事务的四大特性以及隔离级别
一、事务的四大特性(ACID)如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:1、原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。2、一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A和用户B两者的钱加起来一共是5原创 2020-08-08 11:57:19 · 228 阅读 · 0 评论 -
com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large
在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。[修改mysql配置中my.conf中max_allowed_packet变量]查看目前配置show VARIABLES like ‘%max_allowed_packet%’;显示的结果为:±-原创 2020-08-07 12:55:15 · 485 阅读 · 0 评论 -
mysql表里的datetime字段自动更新的设置与取消
问题:MySQL更新一个字段时,表中的datetime类型字段全部变成了当前时间解决:先查看一下表的DDL语句 `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',当设置为ON UPDATE的时候就会自动更新取消自动更新语句如下:原创 2020-08-06 19:14:42 · 6565 阅读 · 4 评论 -
Mybatis批量删除、新增实现方法
在业务场景中,很多时候我们会对某一个表实现批量新增或者删除操作,如果我们循环调用接口,循环操作数据库,虽然需求是可以实现的,但是显示是不合理的。这时就用到了批量操作,让其数据库自己做循环,避免多次调用同一个接口。1.批量新增mapper接口int insert(@Param("list") List<Entity> list);mybatis实现<insert id="insert" keyColumn="id" keyProperty="id" par原创 2020-08-06 15:15:53 · 803 阅读 · 2 评论 -
sql求平均数并保留两位小数
使用round 和 avg函数select round(AVG(grade),2) AS avgGrade from table;AVG(grade)求得平均数round(AVG(grade),2),对平均数四舍五入保留两位小数结果:6.66当平均数多余两位时才进行四舍五入保存两位小数当为整数或一位小数时不进行取舍操作...原创 2020-08-05 20:24:44 · 7521 阅读 · 0 评论 -
sql查询将多个结果合并成一个字符串并用逗号隔开
1.user表id name roles1 张三 null2 李四 null3 王五 null2.role表id name1 管理员2 业务员3 工程师3.user_role表user_id role_id1 12 22 33 3原创 2020-08-05 15:55:11 · 4386 阅读 · 1 评论 -
创建索引原则及SQL添加索引
一、数据库建立索引的原则1.确定针对该表的操作是大量的查询操作还是大量的增删改操作。2.尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。3.尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。4.对于小型的表,建立索引可能会影响性能5.应该避免对具有较少值的字段进行索引。6.避免选择大型数据类型的列作为索引。A.mysql索引建立的原则索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字原创 2020-05-28 09:15:50 · 720 阅读 · 0 评论 -
sql语句查询最近七天 三十天 数据
几个小时内的数据DATE_SUB(NOW(), INTERVAL 5 HOUR)今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)近原创 2020-05-27 17:04:42 · 1095 阅读 · 0 评论 -
解决错误 使用子查询时 这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询
出现场景:使用子查询时这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询意味着下列查询不能正确的执行select * from my_table where id in (select id from my_table limit 10)解决方案:select * from my_table where id in (select t.id from (select * from my_table limit 10)as t) 再套一次查询就OK了原创 2020-05-27 17:03:11 · 641 阅读 · 0 评论 -
mysql中bigint、int、mediumint、smallint 和 tinyint的区别
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:类型 占用字节tinyint 1smallint 2mediumint 3int 4bigint 8mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint、int、mediumint、smallint 和原创 2020-05-18 15:10:45 · 737 阅读 · 0 评论 -
MySQL忘记密码破解密码的方法
1、打开mysql配置文件/etc/my.cnf在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。2、service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。3、mysql -uroot -p //此时直接回车,既可以进入数据库。出现mysql>就说明你已...转载 2020-03-20 15:22:00 · 509 阅读 · 0 评论 -
linux上mysql的安装
1.首先从官网下载安装mysql-serve # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server2.安装成功后,重...原创 2020-03-20 15:21:32 · 111 阅读 · 0 评论 -
在阿里云服务器上安装mysql及重置密码
下载与安装MySQL:这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。1.安装MySQL官方的yum repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch...原创 2020-03-20 15:15:09 · 507 阅读 · 0 评论 -
MySQL忘记密码破解密码的方法
1、打开mysql配置文件/etc/my.cnf在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。2、service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。3、mysql -uroot -p //此时直接回车,既可以进入数据库。出现mysql>就说明你...原创 2020-03-20 15:12:16 · 269 阅读 · 0 评论 -
mysql开启远程访问权限
mysql -u root -puse mysql;GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’; 这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址flush privileges; 这句表示从mysql数据库的grant表中重新加载权限数据select *...原创 2020-03-20 15:09:39 · 207 阅读 · 0 评论 -
Mysql如何创建索引
1.添加PRIMARY KEY(主键索引)mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column )2.添加UNIQUE(唯一索引)mysql>ALTER TABLE table_name ADD UNIQUE (column)3.添加INDEX(普通索引)mysql>ALTER TABLE table_name ...原创 2019-11-28 18:11:42 · 366 阅读 · 0 评论 -
Mysql数据库的索引和视图
一、 Mysql的索引1.什么是Mysql的索引?索引就像是书的目录,是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引中包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效地查找与键值关联的行。2.索引的原理索引的原理大致概括为以空间换时间,数据库在未添加索引的时候进行查询默认的是进行全量搜索,也就是进行全局扫描,有多少条数据...原创 2019-11-26 20:35:48 · 215 阅读 · 0 评论 -
Mysql的优化
Mysql的优化<strong>SQL优化准则</strong></p>禁用select *使用select count(*) 统计行数尽量少运算尽量避免全表扫描,如果可以,在过滤列建立索引尽量避免在where子句对字段进行null判断尽量避免在where子句使用!= 或者<>尽量避免在where子句使用or连接尽量避免对字段进...转载 2019-11-24 23:11:31 · 72 阅读 · 0 评论 -
mysql查询表里的重复数据方法和删除重复数据
mysql查询表里的重复数据方法:1234INSERT INTO hk_test(username, passwd) VALUES('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test where ...转载 2019-11-24 23:03:19 · 241 阅读 · 0 评论