数据库
数据库
伤魂孤傲
物竞天择,适者生存
展开
-
mybatisplus格式化mysql日期查询
场景:数据库字段是年月日时分秒通过java转换时间格式查询当天数据。原创 2024-04-11 15:42:38 · 1458 阅读 · 0 评论 -
mybatisPlus注解将List集合插入到数据库
将List集合插入到数据库原创 2024-01-18 16:07:17 · 1019 阅读 · 0 评论 -
MySql递归查询子级
sql递归查询原创 2022-12-06 10:33:50 · 251 阅读 · 0 评论 -
MyBatis一次执行多条SQL语句的操作
有个常见的场景:删除用户的时候需要先删除用户的外键关联数据,否则会触发规则报错。1、修改数据库连接参数加上allowMultiQueries=true,如:hikariConfig.security.jdbcUrl=jdbc:mysql://xx.xx.xx:3306/xxxxx?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true2、直接写多条语句,用转载 2022-05-24 14:09:36 · 4228 阅读 · 0 评论 -
使用mybatis plus添加返回主键id
使用mybatis plus时返回的主键id,返回的数据是1515287203954688002的,这显然不是我想要的orderDAO.insert(orderDO);return orderDO.getId();原因:实体类没有加自增主键 @TableId(value = "id",type = IdType.AUTO) private Long id;...原创 2022-04-16 19:17:54 · 5763 阅读 · 1 评论 -
Navicat设置自动补零功能
最近发现navicat有一个自动补零的功能,下面分享一下设置添加数据后,长度不够后面会自动补零原创 2022-04-15 11:14:21 · 2296 阅读 · 0 评论 -
Field ‘Id‘ doesn‘t have a default value解决方法
在mysql不设置注解自增的情况下,出现了该问题,解决办法可以通过实体类修改注解!@TableId(tyрe = IdType.Auto)private Long id:修改注解@TableId(tyрe = IdType.INPUT)//用户输入ID 该类型可以通过自己注册自动填充插件进行填充private Long id:...原创 2021-12-22 15:28:13 · 1434 阅读 · 0 评论 -
which is not functionally dependent on columns in GROUP BY clause;...sql_mode=only_full_group_by
mysql使用group分组时,出现该问题,解决办法在重复字段使用any_value函数错误示例:select id,name,create_time from t_person group by create_time因为根据创建创建时间分组时,名字可能会对应多个,既一个组对应多条数据,所以需要加上any_value,随机选择一个值,作为分组后对应的值。解决示例:select id,any_value(name),create_time from t_person group by cre.原创 2021-09-01 16:33:14 · 280 阅读 · 0 评论 -
Mysql行锁和表锁区别
mysql常用引擎有MYISAM和InnoDB,而InnoDB是mysql默认的引擎。MYISAM不支持行锁,而InnoDB支持行锁和表锁。1.行锁和表锁在mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁。表锁:不会出现死锁,发生锁冲突几率高,并发低。行锁:会出现死锁,发生锁冲突几率低,并发高。锁冲突:例如说事务A将某几行上锁后,事务B又.原创 2021-07-05 11:09:35 · 3742 阅读 · 0 评论 -
mysql查询数据表某个字段出现频率最高的那个值
查询names字段出现次数最多的一个sql语句select names,count(1) as number from ceshi GROUP BY names ORDER BY count(1) desc limit1转载 2021-03-27 14:24:30 · 2164 阅读 · 1 评论 -
索引失效场景
1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不是使用的第一部分,则不会使用索引3.like查询是以%开头4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引...转载 2021-02-26 09:43:00 · 135 阅读 · 0 评论 -
mysql数据备份
使用定时任务进行备份/** * 每天中午十二点备份 * */@Scheduled(cron = "0 0 12 * * ?")public void saveBackup() { Runtime rt = Runtime.getRuntime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); String password = "12.原创 2021-02-19 09:48:43 · 86 阅读 · 0 评论 -
索引
索引的概念MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。可以简单理解为排好序的快速查找数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址。为了加快 Col2 的查找,可以维护一个 右边所示的二原创 2021-01-11 16:50:26 · 158 阅读 · 0 评论 -
mysql统计结果去重
mysql的sql语句中,count这个关键词能统计表中的数量,如有一个tableA表,表中数据如下:id name age1 tony 182 jacky 193 jojo 18SELECT COUNT(age) FROM tableA以上这条语句能查出table表中有多少条数据。查询结果是3 而COUNT这个关键词与 DISTINCT一同使用时,可以将统计的数据中某字段不重复的数量。 如:SELECT COUNT(DISTINCT age) from tableA以上语句的查转载 2020-12-02 16:07:08 · 1219 阅读 · 0 评论 -
navicat时间字段自动更新
找到creattime,类型选datetime,然后默认值设置“CURRENT_TIMESTAMP”原创 2020-11-09 18:04:55 · 395 阅读 · 0 评论 -
迁移表中一列数据到另一张表中的SQL语句
一、如何用slq语句把一个表中的某几个字段的数据插入到另一个新表中,就要用下面这条slq语句:insert into 表名1(字段1,字段2) select 字段1,字段2 from 表名2这里有一点值得注意的是这2个字段要一一对应,并且按顺序。二、如果另一个表是已经有数据的表,只希望更改其中的一列或几列的话,则用下面的sql语句: update 表名1,表名2 set 表名1.字段1 = 表名2.字段1 where 表名1.字段2 = 表名2.字段2因为第二个表是更新,所以只要指定与原创 2020-10-28 15:32:32 · 2120 阅读 · 1 评论 -
Failed to convert property value of type ‘java.lang.String‘ to required type ‘java.util.Date
查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日期而产生的错误:Failed to convert property value of type ‘java.lang.String’ to required type 'java.util.Date解决方法:在相应的属性上使用 @DateTimeFormat 注解,并指定格式:@DateTimeF原创 2020-09-04 16:42:18 · 365 阅读 · 0 评论 -
MySQL学习笔记_如何选择合适的存储引擎
MyISAM:适合用于以select和insert为主,只有很少的update和delete,并且对事务的完整性、并发性要求不是很高的场合。MySQL是在Web、数据仓库和其它应用环境下最常使用的存储引擎之一。InnoDB:用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了insert和select以外,还包括很多的update和delete,那么InnoDB存储引擎应是比较合适的选择。InnoDB存储引擎除了有效地降低由于删除和更新导致的锁定转载 2020-08-24 14:34:19 · 122 阅读 · 0 评论 -
查找IN语句在表中不存在的值
sql的一个查询,情景:a表中存在的数据,且在b表中不存在 (not in,not exists 这里需要强调的是b表中关联字段的值是唯一的这种情况,并且b表尽量是列举类型的,意味着表比较小。准备数据:建两个类似表,test1,test2,只有id和val两个字段。CREATE TABLE `test1` (`id` int(8) unsigned NOT NULL AUTO_INCREMENT,`val` varchar(20) DEFAULT NULL,PRIMARY KEY (.转载 2020-07-06 10:29:03 · 5383 阅读 · 0 评论 -
Mysql
MySQL的数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM,TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB日期类型:Date、DateTime、TimeStamp、Time、Year其他数据类型:BINARY、VAR原创 2020-06-09 17:23:06 · 238 阅读 · 0 评论 -
SQL优化之Explain计划详解
当Explain 与 SQL语句一起使用时,MySQL 会显示来自优化器关于SQL执行的信息。也就是说,MySQL解释了它将如何处理该语句,包括如何连接表以及什么顺序连接表等。 表的加载顺序 sql 的查询类型 可能用到哪些索引,哪些索引又被实际使用 表与表之间的引用关系 一个表中有多少行被优化器查询转载 2020-06-06 16:36:58 · 152 阅读 · 0 评论