SQL开发总结
文章平均质量分 61
SQL开发总结
ZWZhangYu
这个作者很懒,什么都没留下…
展开
-
慢SQL优化的30个思路方案整理
对于一些特别大的表,单靠索引优化可能效果有限。这时,可以通过业务层面的优化来限制查询的时间范围,从而缩小查询范围,提高查询性能。以下是一些业务上可以采取的优化措施:对大表进行时间范围分区(如按月、按季度),在查询时只针对相关时间段的分区进行查询,避免全表扫描。在业务层限制查询的时间窗口,如只允许查询最近一年的数据。对于超出时间窗口的查询,可以要求用户提供更具体的查询条件以缩小查询范围。将历史数据定期归档到历史表或其他存储介质中,保持主表的数据量在一个合理范围内。查询时先在主表中查找,如果需要再到历史表中原创 2024-08-07 20:46:27 · 2212 阅读 · 0 评论 -
MySQL 根据表名称生成完整select语句
在编写SQL语句的时候我们经常写SELECT *的方式,但是这个大多仅在临时查询,对于真正使用的时候一般还是写字段名称的方式,但是字段名称一般都比较多,一个一个写比较麻烦,对于此我们可以通过INFORMATION_SCHEMA.COLUMNS快速生成某个表的(select 字段A,字段B from 表名称),提高工作效率。它是INFORMATION_SCHEMA数据库的一部分,该数据库是一个系统目录,包含有关RDBMS中的数据库、表、列和其他数据库对象的元数据。替换表名称为自己需要的特定的表名称。原创 2023-06-11 17:39:15 · 571 阅读 · 0 评论 -
SQL解析处理和扩展开发工具 Java
SQL语句AST抽象语法树解析;SQL解析;SQL翻译 MySQL语句翻译成Oracle;SQL语句格式化;SQL语句验证;获取表名、查询字段、查询条件;修改表名;为SQL增加额外的where条件;解析select项、表信息、条件信息原创 2022-05-22 13:13:54 · 6764 阅读 · 13 评论 -
MySQL 自定义排序的三种方式
文章目录【问题描述】【需求描述】【代码】函数参考【问题描述】在某些情况下,我们希望构建的排序结果不是纯粹的根据某个字段或者多个字段进行正序或者逆序排列,而是希望按照特定数据下的某个规则进行排序【需求描述】当前有一个课程系统,有一个status字段描述了课程的状态1:未开始 2:进行中 3:已完成除了课程的状态还有一个课程的开始时间start_time期待结果:进行中的课程优先排列,如果存在多个进行中的课程则优先展示开始时间靠前的那一个【代码】SELECT status,start_ti原创 2021-09-19 11:10:16 · 2274 阅读 · 0 评论 -
SQL正则使用整理
语法整理模式描述^匹配输入字符串的开始位置$匹配输入字符串的结束位置.匹配除 “\n” 之外的任何单个字符.要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式.[…]字符集合.匹配所包括的任意一个字符.例如,’[abc]’ 可以匹配 “plain” 中的 ‘a’.[^…]负值字符集合.匹配未包括的任意字符.例如,’[^abc]’ 可以匹配 “plain” 中的’p’.p1p2*匹配前面的子表达式零次或多次.例如,zo原创 2021-07-25 11:06:13 · 3110 阅读 · 0 评论 -
SQL日期时间处理实践整理
【注意事项】在进行日期时间使用的时候一定要注意时区是否正确1.返回当前的日期和时间【MySQL】SELECT NOW(),CURDATE(),CURTIME()2.日期格式化【MySQL】SELECT date_format(NOW(),'%Y-%m') -- 年月3.返回当前年份【MySQL】select YEAR(CURDATE());4.返回当前月份【MySQL】select MONTH(CURDATE()); 5.返回N小时/分钟/秒前的日期【MySQL】#原创 2021-07-12 15:36:02 · 1671 阅读 · 0 评论 -
SQL批量插入—针对重复数据插入的总结
文章目录1. 需求分析2. on duplicate key update(1)说明(2)示例2. insert … select … where not exist(1)说明(2)示例3. replace into(1)说明(2)示例1. 需求分析需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入。那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢?向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率。原创 2021-06-25 17:22:25 · 8155 阅读 · 3 评论 -
【SQL】获取最近一周日期列表
文章目录MySQLOracleMySQL使用MySQL需要构建辅助表weekdays,表数据参考如下 select date_sub(curdate(),interval id day) rq from `weekdays`查询结果如下OracleSELECT add_days( trunc( sysdate, 'dd'), 1 - 1 * LEVEL - 1) tFROM dual CONNECT BY LEVEL < 7...原创 2021-01-19 17:50:18 · 2892 阅读 · 0 评论