文章目录 一、练习题目 二、使用 switch 语句实现代码 三、将代码改写回 if else 的选择结构 一、练习题目 编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数...月份为 1、3、5、7、8、10、12 时,天数为 31 天。 月份为 4、6、9、11 时,天数为 30 天。 月份为 2 时,若为闰年,天数为 29 天,否则,天数为 28 天。...% 400 == 0)); switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12...例如,我们输入月份为 13 时,程序终止并输出报错信息,如下图所示: 三、将代码改写回 if else 的选择结构 我们将代码改写回 if else 的选择结构,代码如下: package rjxy2019...; if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12
题目描述 已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词 1月 January 2月 February 3月 March...4月 April 5月 May 6月 June 7月 July 8月 August 9月 September 10月 October 11月 November 12月 December 输入 第一行输入...t表示t个测试实例 接着每行输入一个月份的数字 依次输入t行 输出 每行输出相应的月份的字符串,若没有这个月份的单词,输出error 输入样例1 3 5 11 15 输出样例1 May November...代码 #include #include using namespace std; int main() { int t,n; const char *p[12]...July","August","September","October","November","December"}; cin>>t; while(t--) { cin>>n; if(n12&
日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢?今天田螺哥就跟大家聊聊导致MySQL慢查询的12个常见原因,以及对应的解决方法。 1....使用覆盖索引 把%放后面 2.4 查询条件不满足联合索引的最左匹配原则 MySQl建立联合索引时,会遵循最左前缀匹配的原则,即最左优先。...name为非空的语句,其实会走索引的,如下: 单个card字段加上索引,并查询name为非空的语句,其实会走索引的,如下: 但是它两用or连接起来,索引就失效了,如下: 很多时候,也是因为数据量问题...redo log写满了,要刷脏页,这时候会导致系统所有的更新堵住,写性能都跌为0了,肯定慢呀。一般要杜绝出现这个情况。 一个查询要淘汰的脏页个数太多,一样会导致查询的响应时间明显变长。...`name`) 可以发现,实际执行的时候,MySQL对select in子查询做了优化,把子查询改成join的方式,所以可以走索引。
前言 大家好,我是三友~~ 日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢?今天田螺哥就跟大家聊聊导致MySQL慢查询的12个常见原因,以及对应的解决方法。...使用覆盖索引 把%放后面 2.4 查询条件不满足联合索引的最左匹配原则 MySQl建立联合索引时,会遵循最左前缀匹配的原则,即最左优先。...name为非空的语句,其实会走索引的,如下: 单个card字段加上索引,并查询name为非空的语句,其实会走索引的,如下: 但是它两用or连接起来,索引就失效了,如下: 很多时候,也是因为数据量问题...redo log写满了,要刷脏页,这时候会导致系统所有的更新堵住,写性能都跌为0了,肯定慢呀。一般要杜绝出现这个情况。 一个查询要淘汰的脏页个数太多,一样会导致查询的响应时间明显变长。...`name`) 可以发现,实际执行的时候,MySQL对select in子查询做了优化,把子查询改成join的方式,所以可以走索引。
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 group by 关键字可以根据一个或多个字段对查询结果进行分组...group by 一般都会结合Mysql聚合函数来使用 如果需要指定条件来过滤分组后的结果集,需要结合 关键字;原因:where不能与聚合函数联合使用 having group by 的语法格式 GROUP...group by 单字段分组的栗子 对sex单个字段进行分组查询 select * from yyTest group by sex; ?...知识点 多个字段分组查询时,先按照第一个字段分组,如果第一个字段有相同值,则把分组结果再按第二个字段进行分组,以此类推 如果第一个字段每个值都是唯一的,则不会按照第二个字段再进行分组了,具体原理可看下图
(时间字段名) 近6个月 select * from 表名 where submittime between date_sub(now(),interval 6 month) and now(); 查询本季度数据...select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now()); 查询上季度数据 select *...from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER)); 查询本年数据...select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW()); 查询上年数据 select * from `ht_invoice_information
使用覆盖索引 把 % 放后面 2.4 查询条件不满足联合索引的最左匹配原则 MySQl 建立联合索引时,会遵循最左前缀匹配的原则,即最左优先。...name 为非空的语句,其实会走索引的,如下: 单个 card 字段加上索引,并查询 name 为非空的语句,其实会走索引的,如下:图片 但是它两用 or 连接起来,索引就失效了,如下: 很多时候...但是很遗憾,对于 delete in 子查询,MySQL 却没有对它做这个优化。 日常开发中,大家注意一下这个场景哈,大家有兴趣可以看下这篇文章哈:生产问题分析!...后面的字段加索引 order by null 不用排序 尽量只使用内存临时表 使用 SQL_BIG_RESULT 大家可以看下我这篇文章哈:看一遍就理解:group by 详解 12...如果有的话,欢迎评论区留言交流哈 12个MySQL慢查询的原因分析 | Laravel China 社区 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
mysql float字段类型数据查询为空问题 作者:matrix 被围观: 224 次 发布时间:2021-12-28 分类:mysql PHP | 无评论 » 结论 不要用float、double...普通的查询没问题,个别数据就出现查询为空的问题。后来发现都是浮点类型数据,排查框架的sql日志到PDO的参数绑定找遍了都没找到根源。...$this->PDOStatement->bindValue(':ThinkBind_1_', 51.6, PDO::PARAM_STR) 虽然字段设置了精度float(10,2),但是依然有查询为空出现...sql输出日志为where wi=51.6,实际上执行是where wi="51.6",这也增加了排查的难度。...办法 浮点数查询使用like 使用函数比如oncat(wi)=51.6,或者format(wi,2) = format(51.6 ,2) 使用decimal字段类型 参考: https://www.cnblogs.com
SqlSessionUtil.getSqlSession(); EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); // 查询功能之前开启分页查询...null); list.forEach(System.out::println); sqlSession.close(); } 分页插件的使用 a>在查询功能之前使用...PageHelper.startPage(int pageNum, int pageSize)开启分页功能 pageNum:当前页的页码 pageSize:每页显示的条数 b>在查询获取 list...size:当前页显示的真实条数 total:总记录数 pages:总页数 prePage:上一页的页码 nextPage:下一页的页码 isFirstPage/isLastPage:是否为第一页
MySQL联合查询 联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。...语句1 + union + [union选项] + select 语句2 + …; union 选项:与select选项一样有两种 all:无论重复与否,保留所有记录; distinct:表示去重,为默认选项...意义 联合查询的意义有两种,分别为: 查询同一张表,按时需要不同,例如查询学生信息,要求男生按年龄升序排序,女生按年龄降序排序; 多表查询,多张表的结构是完全一样的,保持的数据结构也是一样的。...根据我们刚刚学到的联合查询,貌似很容易啊!...好吧,这是因为要想在联合查询中使order by生效,我们必须将其与limit搭配使用,而limit的限定数,我们设置为一个非常大的数即可。
初探InnoDB行格式(ROW_FORMAT) 我们平时都是以记录为单位向MySQL的表中插入数据的,这些记录在磁盘中的存放的格式就是InnoDB的行格式。...),比如我指定row_format_table表的行格式为COMPACT mysql> CREATE TABLE row_format_table( -> id INT, -> c1 VARCHAR...,直到找到id为4的记录为止。...现在我们再来看看在这个数据页中,我们查询id为7的记录,过程是怎样的。...但是对于我们这篇文章的主题——MySQL的主键查询为什么这么快,只能算是回答了一半,毕竟在数据页中进行搜索的前提是你得先找到数据页啊。这就是每次面试必问的MySQL索引的知识了,下一篇文章再介绍吧。
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中...long_query_time的默认值为10,意思是运行10S以上的语句。...配置 默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启,如下所示 mysql> show variables like ‘...这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒,可以使用命令修改,也可以在my.cnf参数里面修改。...也就是说,在mysql源码里是判断大于long_query_time,而非大于等于。从MySQL 5.1开始,long_query_time开始以微秒记录SQL语句运行时间,之前仅用秒为单位记录。
今天说一说JavaScript获取当前月份的前12个月,获取最近的12个月,希望能够帮助大家进步!!!...data = new Date(); var year = data.getFullYear(); data.setMonth(data.getMonth()+1, 1)//获取到当前月份...,设置月份 for (var i = 0; i 12; i++) { data.setMonth(data.getMonth() - 1);//每次循环一次 月份值减1
概述MySQL查询是数据库操作中最常用的操作之一,通过查询可以从数据库中按照一些条件来检索数据,本文介绍了MySQL查询的基本语法和常用操作。...- 查询age等于20且name为张三的所有数据SELECT * FROM user WHERE age = 20 OR name = '张三'; -- 查询age等于20或name为张三的所有数据SELECT...* FROM user WHERE age = 20 AND name = '张三' OR name = '李四'; -- 查询age等于20且name为张三或name为李四的所有数据SELECT *...FROM user WHERE (age = 20 AND name = '张三') OR name = '李四'; -- 查询age等于20且name为张三或name为李四的所有数据SELECT *...WHERE name LIKE '_张%'; -- 查询name第二个字符为张的所有数据SELECT * FROM user WHERE name LIKE '张__'; -- 查询name以张开头且长度为
tb12( num2 INT); Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO tb11 VALUES(1),(5),(13),(27...只有大于表tb12字段num2任意的值就符合条件。...mysql> SELECT num1 FROM tb11 WHERE num1 > ANY (SELECT num2 FROM tb12); +------+ | num1 | +------+ |...ALL 关键字需要满足所有内层查询的条件 mysql> SELECT num1 FROM tb11 WHERE num1 > ALL (SELECT num2 FROM tb12); +------+...,主要至少返回一行,那么EXIST的结果为true,如果子查询没有返回任何行,那么EXISTS 返回的结果是false。
这是Mysql系列第12篇。 环境:mysql5.7.25,cmd命令中进行演示。 本章节非常重要。 子查询 出现在select语句中的select语句,称为子查询或内查询。...子查询分类 按结果集的行列数不同分为4种 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般为多行多列) 按子查询出现在主查询中的不同位置分...mysql中的in、any、some、all in,any,some,all分别是子查询关键词之一。...NULL的时候,外查询的结果为空。...建议:建表是,列不允许为空。 总结 本文中讲解了常见的子查询,请大家务必多练习 注意in、any、some、any的用法 字段为空的时候,in查询有大坑,这个要注意 建议创建表的时候,列不允许为空
:索引没有设计好、SQL 语句没写好、MySQL 选错了索引 ’mysql慢查询优化 第一步:开启mysql慢查询日志,通过慢查询日志定位到执行较慢的SQL语句。...EXPALIN 只能解释 SELECT 操作,其他操作要重写为 SELECT 后查看执行计划 EXPLAIN PLAN 显示的是在解释语句时数据库将如何运行 SQL 语句,由于执行环境和 EXPLAIN...SUBQUERY 在 SUBQUERY 基础上,子查询中的第一个SELECT,取决于外部的查询 DERIVED 在 FROM 列表中包含的子查询,被标记为 DERIVED(衍生),MYSQL会递归执行这些子查询...MySQL在查询中实际使用的索引,若没有使用索引,显示为 NULL 查询中若使用了覆盖索引,则该索引可能出现在 key 列表,不出现在 possible_keys key_len: 表示索引中使用的字节数...,可通过该列计算查询中使用的索引的长度 key_len 显示的值为索引字段的最大可能长度,并非实际使用长度,即 key_len 是根据表定义计算而得,不是通过表内检索出的 在不损失精确性的前提下,长度越短越好
我们都知道在数据库查询时,索引可以极大的提高查询效率。通常在使用的时候,都会针对频繁查询的关键字段建立索引。...比如,当以交易日期(trans_date)来查询交易记录时,通常会对该字段添加索引,以便在大量数据的情况下提升查询效率。...针对trans_date字段,创建union_idx_query索引,那么在下面以trans_date为查询条件的语句中,毫无疑问是会走索引的: select count(1) from A; // 40000...* from t_trans_log_info where trans_date > '20220122'; 上面的查询语句使用了”>“来进行范围的查询,而且trans_date字段同样创建了索引,那么上述...也就是说,当Mysql发现通过索引扫描的行记录数超过全表的10%-30%时,优化器可能会放弃走索引,自动变成全表扫描。某些场景下即便强制SQL语句走索引,也同样会失效。
MySQL 子查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 [NOT] IN (SELECT 语句); 二、带EXISTS关键字的查询 意思就是内层的select查到了(至少查到了一行)才进行查询...,没有查到就不进行查询。...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)
目录 联合查询 子查询 分页查询 联合查询 联合查询是指将多个查询结果合并成一个结果集(二维表),通常出现在统计分析中。 语法: 查询语句1 UNION 查询语句2 UNION ......查询语句N 注意: 1.所有查询语句的返回结果的列数必须相等 2.每列的数据类型必须一致,【查询语句1中字段列表的类型必须和查询语句2中的字段列表类型对应且一致】 代码实例: SELECT user_id...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...按出现位置分: 1、 SELECT 后面:只能出现标量子查询 2、 FROM 后面:表子查询(查询结果必须起别名) 3、 WHERE|HAVING:支持标量子查询,列子查询,行子查询 4、 EXISTS...; 如果offset为0 SELECT * FROM b_user LIMIT 2; 注意: 在SQL Server中使用top关键字进行分页;所谓top 7,代表查询前7条记录。