mysql实践操作总结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql实践操作总结 抽取公共的sql语句 在mybatis的动态sql编写中,通过<sql>标签抽取可重用的sql片段,常见于可重复利用的查询语句,实现语句复用;在使用时,通过<include refid="sql_id"></include>引入,可达到跟写在同一个查询语句中一样的效果。

mysql实践操作总结

抽取公共的sql语句

在mybatis的动态sql编写中,通过<sql>标签抽取可重用的sql片段,常见于可重复利用的查询语句,实现语句复用;在使用时,通过<include refid="sql_id"></include>引入,可达到跟写在同一个查询语句中一样的效果。


AI 代码解读
<!-- =====================公共sql语句===================== -->
<!-- 用于读者移动端,根据关键字搜索(类型,图书名,作者) -->
<sql id="searchBy">
<where>
<if test="bookType!= null and bookType !=''">
and instr(book_type,#{bookType})>0
</if>
<if test="searchContent!= null and searchContent !=''">
and instr(book_name,#{searchContent})>0 or instr(book_auth,#{searchContent})>0
</if>
and book_status=0
</where>
</sql>
<!-- =====================读者移动端====================== -->
<!--按分类或关键字查找 -->
<select id="findBooksBy" resultMap="BookResultMap">
select * from t_ts_book
<include refid="searchBy"></include>
limit #{start},#{end}
</select>

mysql中INSTR函数的用法

INSTR(STR,SUBSTR) 即在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX);

STR 是被搜索的字符串,SUBSTR 是希望搜索的字符串。 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始),即通过where限定,当满足大于0的条件的数据即被查出(instr返回索引值>0)。       

该函数常用于数据的模糊查询,通过在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快。


AI 代码解读
#传统方式
SELECT * FROM t_ts_book
WHERE book_type like "%computer%"
#使用instr函数
SELECT * FROM t_ts_book
WHERE instr(book_type,"computer")>0

mybatis中批量操作

foreach的格式:<foreach collection="" item="" index="" separator=","  open="("  close=")"></foreach>                           

foreach元素的属性主要有collection,item,index,separator,open,close                                                             

collection 表示要进行循环遍历的指定集合                                                                                                                             

item 表示集合中每一个元素迭代时候的别名               

index 表示在迭代过程中的索引值,相当于for循环中的索引i                                                                                       

separator 表示每次迭代过程中以什么符号作为分隔符                                                                                                   

open 表示该语句以什么开始     

close 表示该语句以什么结束 


AI 代码解读
<!-- 批量插入图书信息-->
<insert id="insertBooks" parameterType="java.util.List">
insert into t_ts_book(book_id,book_type,book_num,book_name,book_auth,book_pub,book_pub_num,
book_desc,book_had,book_img,book_status)
VALUES
<foreach collection="books" item="book" index="index" separator="," open="(" close=")">
#{book.bookId},#{book.bookType},#{book.bookNum},#{book.bookName},#{book.bookAuth},#{book.bookPub},
#{book.bookPubNum},#{book.bookDesc},#{book.bookHad},#{book.bookImg},#{book.bookStatus}
</foreach>
</insert>

mysql中日期操作

日期格式化:

DATE_FORMAT(date,format),date 参数是合法的日期。format 规定日期/时间的输出格式

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。常见的数据格式如下                                                     

%Y 年,四位
%y 年,两位
%M  月,月名 
%m 月,数值(00-12)
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%S 秒(00-59)
%s 秒(00-59)

查询指定时间(格式指定要求)的数据

select * from t_order where date_format(eattime,'%Y%m')='201806'   
AI 代码解读

日期计算:                                                                                                                                                  DATE_ADD(date,INTERVAL expr type),DATE_ADD() 函数向日期添加指定的时间间隔。通过BETWEEN可实现用于查询指定时间区间的数据


AI 代码解读
<!-- 公众号消息推送(移动端) -->
<select id="sendMsgReturnBook" resultMap="BorrowResultMap">
select * from t_ts_borrow where borrow_status not in(4,5) and end_time
between date_add(date_format(now(),'%y-%m-%d 00:00:00'),interval 1 day) and date_add(date_format(now(),'%y-%m-%d 23:59:59'),interval 1 day)
</select>

获取今天日期范围now()

select date_format(now(),'%y-%m-%d 00:00:00'), date_format(now(),'%y-%m-%d 23:59:59')
AI 代码解读

 原文地址https://blog.csdn.net/zhang_jiayuan/article/details/81202900

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
48
分享
相关文章
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
53 16
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
135 4
MySQL 索引优化与慢查询优化:原理与实践
通过本文的介绍,希望您能够深入理解MySQL索引优化与慢查询优化的原理和实践方法,并在实际项目中灵活运用这些技术,提升数据库的整体性能。
263 5
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
114 0
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
174 2
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
354 3
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
188 1
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
337 9
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等