数据库
stepMoreForever
step more
展开
-
MySQL按时间段查询数据
【代码】MySQL按时间段查询数据。原创 2023-03-14 16:08:13 · 289 阅读 · 1 评论 -
MySQL CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP使用问题记录
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',如上面所示,建表语句中有一条,自动更新更新时间的语句。只要这条记录发生变化,更新时间就会更新为当前时间。一次执行批量更新业务时:update tableDemo set xxx='' where yyy='';这时我们发现只要被更新的数据,更新时间都变为当前时间了,如果你的更新时间是有业务作用的..原创 2022-05-28 21:57:59 · 643 阅读 · 0 评论 -
MySQL order by单个数据库字段遇到分页的问题
MySQL数据库order by使用的一些注意事项原创 2022-05-22 13:55:07 · 231 阅读 · 0 评论 -
MyBatis 通用Mapper中的通用example(排序)
Example example = new Example(User.class);example.setOrderByClause("created_at DESC");原创 2021-12-31 15:25:02 · 1003 阅读 · 0 评论 -
MySQL同表中一个字段的值赋值给另一个字段
update account set business_time=created_at;# 类型一样的两个字段值互换update account a1,account a2 set a1.business_time=a2.created_at,a2.created_at=a1.business_time原创 2021-12-28 11:04:19 · 1873 阅读 · 0 评论 -
MySQL in查询优化
select sum(integral_left) from `integral_produce_available` where `DELETED` =0 and integral_produce_id in (select id from `integral_produce` where account_Id='1446656640503070720' and `STATUS` =1 and `DELETED` =0 and activate_flag=1 and expired_flag=0 and原创 2021-11-29 11:04:49 · 3601 阅读 · 0 评论 -
MySQL查询某个字段相同的数据
select *,count(*) as count from integral_total where INTEGRAL_PRODUCE=500 and `DELETED` =0 group by INTEGRAL_PRODUCE, `ACCOUNT_ID`, `CHANNEL` having count>1;原创 2021-11-29 10:52:34 · 2331 阅读 · 0 评论 -
MySQL外键检查和主动提交
外键检查关闭和打开SET FOREIGN_KEY_CHECKS = 0;SET FOREIGN_KEY_CHECKS = 1;MySQL主动提交打开或关闭## 关闭set @@autocommit=0;select @@autocommit;## 打开set @@autocommit=1;原创 2021-11-01 10:58:32 · 210 阅读 · 0 评论 -
MySQL的for update的理解
我们都知道select查询语句是不会加锁的,但是select…for update除了有查询的作用外,还会加琐。如果查询条件用了索引/主键,那么select…for update就会进行行锁。如果是普通字段(没有索引/主键),那么select…for update就会锁表。...原创 2021-11-01 10:34:30 · 195 阅读 · 1 评论 -
MySQL update语句的执行条件
UPDATE items SET retail = retail * 0.9 WHERE id IN (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity > 100);上面的语句执行会报如下错误You can’t specify target table integral_total for update in FROM clause.我们只能使用多表更新的方式:UPDATE items,原创 2021-09-24 14:51:56 · 517 阅读 · 3 评论 -
MySQL max()的正确使用方法
问题查询数据库中积分最多的用户 SELECT MAX(integral_left) AS integral_left, ACCOUNT_IDFROM integral_total GROUP BY ACCOUNT_ID ORDER BY `integral_left` desc;SELECT MAX(integral_left) AS integral_left, ACCOUNT_ID FROM integral_total ORDER BY `integral_left` desc;查询出来原创 2021-09-09 19:16:34 · 4579 阅读 · 0 评论 -
Redis更新数据的时候如何不重置过期时间
Redis我们再使用的时候一般都会设置过期的时间,但是get和set操作都会重置过期时间。有时我们需要过期时间不进行相关的变化,所以我们需要自己进行相关的设置操作。Long time = RedisUtils.stringRedisTemplate.getExpire(command);Date date = new Date(Instant.now().toEpochMilli() + time * 1000);RedisUtils.setString(command, JSONUtil.toJso原创 2021-08-27 12:09:33 · 3320 阅读 · 0 评论 -
MySQL常用命令行操作
CREATE DATABASE my_db;CREATE DATABASE IF NOT EXISTS my_db;CREATE DATABASE IF NOT EXISTS my_db default character set utf8 COLLATE utf8_general_ci;查看数据库列表show databases;使用数据库use my_db;命令行登录MySQL(本地)mysql -uroot -p命令行登录MySQL(远程)mysql -uroot -hlo原创 2021-07-19 19:25:28 · 64 阅读 · 0 评论 -
MySQL将表字段和字段释义作为值插入另一张表中
insert into config_table_field (field,field_desc) select COLUMN_NAME,COLUMN_COMMENT from information_schema.COLUMNS where table_name = 'source_0149' and table_schema = 'gawj_data';原创 2021-03-29 13:55:42 · 190 阅读 · 0 评论 -
MySQL的唯一插入,增量更新
唯一插入首先我们先创建一个用户表:DROP TABLE IF EXISTS `nb_sys_user`;CREATE TABLE `nb_sys_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除', `gmt_create` datetime NOT NULL DEFAULT '2020-12-30原创 2020-12-30 11:44:49 · 1605 阅读 · 0 评论 -
MySQL Left Join使用注意事项
在我们使用MySQL进行联表查询的时候,经常使用Left Join的方式。如果两张表的关联条件是唯一对应的,那么自然没问题。用户:组织:联表查询结果:当有多个组织的时候,问题就出现了:联表查询结果:出现了两个相同的结果。其实我们的本意是查询用户,顺便将用户所属的组织带出来,这样用户列表中查询出来的数据就会多处一些不是我们想要的数据了,查询返回的数据是有问题的。我们来看看Left Join的特性:左表中的记录数是它将返回的最小记录数。如果右表中有两条记录与左表中的一条记录匹配,它将返原创 2020-12-28 08:58:48 · 671 阅读 · 0 评论 -
MySQL查询数据库表中某个字段相同数据的数量
用户表:sys_user姓名字段:real_name示例:查询用户表中真实姓名相同的人的个数SELECT real_name,count(real_name) AS countRealName FROM sys_user WHERE is_deleted=0 GROUP BY real_name HAVING countRealName > 1;原创 2020-11-28 17:07:18 · 4086 阅读 · 0 评论 -
MySQL数据库中时间字段取出来后和实际存储在数据库中不一致的问题
后端使用MyBatis技术连接数据库时的解决方案:serverTimezone=Asia/Shanghai在这个问题上,我们可以了解相关的查看服务器端的时间和时区的方法:博文链接:linklink查看MySQL数据库的时区的方法:博文链接:link...原创 2020-09-22 10:37:01 · 706 阅读 · 0 评论 -
MyBatis报错:Data truncation: Incorrect datetime value: '0' for column 'xxx'
今日项目MyBatis报错: 原blog连接link原博文截图:这样发现了问题的所在,是配置文件那赋值语句出现了问题,上图:配置文件写的不对,多了红色标记的地方。为什么会导致这个错误。是自己复制粘贴代码导致的,后并仔细检查导致的错误。...原创 2020-03-03 14:44:39 · 1414 阅读 · 0 评论 -
关于MySQL收藏的文章整理
自己在平时的开发中或多或少接触到MySQL相关的问题,自己也在浏览器收藏夹中收藏了一些,近期进行相关的整理工作。MySQL索引MySQL索引的使用方式Mysql检查列是否存在并新增、修改、删除列Mysql检查列是否存在并新增、修改、删除列SQL语句性能优化SQL语句性能优化介绍MySQL性能优化的最佳20+经验MySQL性能优化的最佳20+经验数据库事物的四大特性以及事物隔离级别...原创 2020-01-31 15:14:48 · 235 阅读 · 0 评论 -
Invalid default value for `xxxx`错误引起的原因之CURRENT_TIMESTAMP
引起错误的SQL语句CREATE TABLE `nb_sxgl` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID,自增', `is_deleted` int(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否删除:0 未删除,1 删除', `gmt_create` datetime N...原创 2020-01-08 14:36:55 · 2564 阅读 · 0 评论 -
MySQL 小知识点
关闭外键检查:SET FOREIGN_KEY_CHECKS = 0;可以执行一些操作,这些操作,不受外键约束,执行完成后,可以用下面的语句再打开外键约束。打开外键检查:SET FOREIGN_KEY_CHECKS = 1;...原创 2019-12-26 15:08:25 · 101 阅读 · 0 评论 -
MyBatis错误:Caused by:java.lang.NumberFormatException:For input string:“xxxxxx”
最近接手解决前同事遗留下来的项目BUG,出现如下图所示的错误:从上图我们可以很明显的看到是数值转换异常,也就是String类型的数据无法转换为Number类型的。可是代码中并没有进行相对应的转换操作呀!错误发生在MyBatis的配置文件中的,找到对应的赋值字段,如下图所示:也就是说,sampleCode字段的值在和0进行比较之前先进行的类型转换操作,所以导致问题的发生。找到问题了,可是...原创 2019-12-15 10:17:23 · 10119 阅读 · 3 评论 -
MySQL存储过程
Notes:SQL文件什么是存储过程存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。为什么要使用存储过程通过把处理封装在容易使用的单元中,简化操作。由于不要求反复建立一系列处理步骤,这保证了数据的完整性。简化对变动的管理。提高性能。因为使用存储过程比使用单独的SQL语句要快。存在一些只能用在单个请求中的MySQl元素和特性,存储过程可以使...原创 2018-08-22 09:06:08 · 138 阅读 · 0 评论 -
MySQL游标简析
Notes:SQL文件游标的概念游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。MySQL的游标只能用于存储过程(和函数)。使用游标在能够使用游标前,必须...原创 2018-08-22 10:32:53 · 271 阅读 · 0 评论 -
MySQL触发器
触发器触发器是MySQL响应以下任意语句而自动执行的一条语句(或位于BEGIN和END语句之间的一组语句)如下:DELETEINSERTUPDATE触发器注意事项唯一的触发器名(最好做到在每个数据库中唯一)触发器关联的表触发器应该响应的活动(DELETE、INSERT或UPDATE)触发器何时执行(处理之前或之后)只有表才支持触发器每个表最多支持6个...原创 2018-08-22 11:34:47 · 212 阅读 · 0 评论 -
事务处理
Notes:SQL文件事务处理(transaction processing)为什么需要事务处理?事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果。术语事务(transaction)指一组SQL语句。回退(rollback)指撤销指定的SQL语句的过程。提交(commit)指将未存储的SQL语句结果写入数据库。保留点(s...原创 2018-08-22 14:36:15 · 7006 阅读 · 0 评论 -
《MySQL必知必会》读书笔记
看完《MySQL必知必会》这本书把自己不怎么清楚的总结一下。 Notes:SQL文件第一章–了解SQL数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件)数据库管理系统(Database Management System)英文缩写:DBMS结构化查询语言(Structured Query Language)英文缩写:SQL表:一种结构化的文件,可用来存...原创 2018-08-22 14:37:33 · 310 阅读 · 0 评论 -
《MySQL必知必会》SQL文件
《MySQL必知必会》SQL文件:表的创建和外键绑定:# 在Mysql中取消外键约束 SET FOREIGN_KEY_CHECKS=0; DROP TABLE customers;DROP TABLE orderitems;DROP TABLE orders;DROP TABLE products;DROP TABLE vendors;DROP TABLE product...翻译 2018-08-21 15:57:52 · 4054 阅读 · 3 评论 -
MySQL的UNION用法
Notes:SQL文件介绍MySQL中的组合查询MySQL允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并或复合查询。什么时候需要使用组合查询:在单个查询中从不同的表返回类似结构的数据; 对单个表执行多个查询,按单个查询返回数据。使用UNIONSELECT vend_id,prod_id,prod_price FROM pr...原创 2018-08-21 16:02:39 · 24642 阅读 · 0 评论 -
MySQL视图
Notes:SQL文件为什么使用视图重用SQL语句。简化复杂的SQL操作。使用表的组成部分而不是整张表。保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。更改数据格式和表示。视图的性能问题因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时所需的人一个检索。如果你用多个联结和过滤创建了复杂的视图或者嵌套了视图,可能会发现性能下降得很厉...原创 2018-08-21 22:43:23 · 133 阅读 · 0 评论 -
MySQL的基础知识
数据库事物的四大特性(ACID)原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability)数据库的四种隔离级别:Serializable(串行化):可避免脏读、不可重复读、幻读的发生Repeatable read(可重复读):可避免脏读、不可重复读的发生Read committed(读已提交):可避免脏读的发生...原创 2018-06-28 18:26:00 · 122 阅读 · 0 评论