在之前的查询都需要对查询的关机中进行“精确”、“完整”完整的输入才能查询相应的结果, 但在实际开发过程中,通常需要考虑用户可能不知道“精确”、“完整”的关键字, 那么就需要提供一种不太严格的查询方式,即模糊查询,只需要输入大概的部分内容就能完成查询。 一、模糊查询 1、使用LIKE关键字 语法:SELECT <字段列表|*> FROM 表名 [WHERE 字段名 LIKE %关键字%]; 说明:通配符_(表示任意0到1个字符)、%(表示任意的0到多个字符) 举例:SELECT * FROM tb_student WHERE student_name LIKE '%娘%' OR phone LIKE '%娘%' OR address LIKE '%娘%' OR email LIKE '%娘%'; 2、使用BETWEEN END关键字 语法:SELECT <字段列表|*> FROM 表名 [WHERE 字段名 BETWEEN 起始值 AND 终止值]; 说明:“起始值”和“终止值”都包含 举例:SELECT * FROM tb_score WHERE student_score >=80 AND student_score <= 90; SELECT * FROM tb_score WHERE student_score BETWEEN 80 AND 90; 3、使用IN关键字 语法:SELECT <字段列表|*> FROM 表名 [WHERE <字段名 IN (可取值列表)>]; 说明:查询的关键字若包含在IN后面的“可取值列表”中,认为是合法的 举例:-- 查询“java”和“HTML”的课程信息 SELECT * FROM tb_subject WHERE subject_name = "java" OR subject_name = "html"; SELECT * FROM tb_subject WHERE subject_name IN("java","html"); 4、使用正则表达式 (REGEXP)子句 语法1、:SELECT <字段列表|*> FROM 表名 [WHERE <字段名 REGEXP正则表达式规则 >]; 语法2、:SELECT <被匹配的值> REGEXP <正则表达式规则>; 说明:被匹配的值若满足正则表达式规则,表示匹配成功显示1,否则显示0 举例:SELECT * FROM tb_student WHERE email REGEXP '^([a-zA-Z0-9]+)*@([a-zA-Z0-9]+).([a-zA-Z]{2,5})$'; -- ^[u2E80-u9FFF]+$ SELECT * FROM tb_student WHERE not student_name REGEXP "^([u0391-uFFE5]{2,4})$"; 二、聚合函数 1、COUNT():统计满足条件的记录数 2、SUM():计算求和 3、AVG():计算平均值 4、MAX():求最大值 5、MIN():求最小值 SELECT * FROM tb_score LIMIT 10,5; -- 针对tb_score表,每页最多显示5条记录,请查询第二页 SELECT * FROM tb_score LIMIT 5,5; SELECT SUM(student_score) FROM tb_score; SELECT AVG(student_score) FROM tb_score; SELECT MAX(student_score) FROM tb_score; SELECT MIN(student_score) FROM tb_score; pageCount = (rowCount%pageSize == 0) ? rwoCount / pageSize : rowCount / pageSize + 1; 三、mysql中常用函数: 1、与字符相关的函数: SELECT CONCAT(student_no,'----',student_name) FROM tb_student; SELECT address, LENGTH(address) 长度 FROM tb_student; SELECT UPPER("afaag"); SELECT LOWER("asdKKJF"); 2、与数值相关的函数: -- ROUND(X,D) 四舍五入 SELECT ROUND(85.65622,2); -- ROUND(X) 四舍五入,d为0 SELECT ROUND(85.65622); -- `TRUNCATE`(X,D) 截断函数 SELECT TRUNCATE(85.65622,2); -- `MOD`(N,M) 取模 SELECT MOD(10,3); 3、与日期相关的函数: 计算日期时间差的函数 TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2); 说明: unit:指点计算哪种类型的差值 datetime_expr1:减数 datetime_expr2:被减数