在之前的查询都需要对查询的关机中进行“精确”、“完整”完整的输入才能查询相应的结果,
但在实际开发过程中,通常需要考虑用户可能不知道“精确”、“完整”的关键字,
那么就需要提供一种不太严格的查询方式,即模糊查询,只需要输入大概的部分内容就能完成查询。 一、模糊查询
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:被减数

MySQL 05章_模糊查询和聚合函数的更多相关文章

  1. mysql 06章_分组查询和链接查询

    一.分组查询 在进行查询时,通常需要按某个或某些字段进行一些统计,因此就需要使用分组查询,但分组后通常需要与聚合函数使用,分组才有意义. 语法:SELECT <字段列表|*> FROM 表 ...

  2. sql sever模糊查询和聚合函数

    使用is null 的时候 要确保 查询的列 可以为空! null:  01.标识  空值  02.不是0,也不是空串""  03.只能出现在定义 允许为null的字段  04.只 ...

  3. SQL Server数据库————模糊查询和聚合函数

    ***********模糊查询*********/ 关键字: like (!!!!字符串类型) in (,,)  匹配()内的某个具体值(括号里可以写多个值) between... and.. 在某两 ...

  4. MySQL 07章_子查询

    子查询就是查询中还可以嵌套其他的查询,通常是内层查询的结果作为外层查询的条件来使用 执行循序,自内向外依次执行 一.内层查询返回“单列单行”的结果 -- 1.查询宋江的出生日期 SELECT TIME ...

  5. 【软件实施面试】MySQL和Oracle联合查询以及聚合函数面试总结

    软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子 ...

  6. MySQL中使用Like模糊查询太慢

    问题:明明建立了索引,为何Like模糊查询速度还是特别慢? Like是否使用索引? 1.like %keyword    索引失效,使用全表扫描.但可以通过翻转函数+like前模糊查询+建立翻转函数索 ...

  7. MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用

    在统计查询中,经常会用到count函数,这里是基础的 MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用 -- 创建表 CREATE TABLE `tb ...

  8. mysql数据库查询和聚合函数

    1.模糊查询 like % 表示多个任意字符 _ 表示任意一个字符 例如:查询黄姓同学 select * from student where name '黄%' select * from stud ...

  9. 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

    -- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...

随机推荐

  1. Haproxy负载均衡/动静分离(haproxy各选项详细解释)

    在前端领域做负载均衡,动静分离的程序有很多,比较常用的是nginx和Haproxy,今天就说一下 Haproxy在这两方面的表现,文章参考很多网文写成,再加上自己的实验成果,文中所有解释都经过实际环境 ...

  2. 54-Ubuntu-打包压缩-4-bzip2压缩和解压缩介绍

    bzip2 tar和bizp2命令结合可以实现文件打包和压缩 tar只负责打包,但不压缩 用bzip2压缩tar打包后的文件,其扩展名一般为xxx.tar.bz2 在tar命令有一个选项-j可以调用b ...

  3. Vuex 源码解析

    先来看一下这张Vuex的数据流程图,熟悉Vuex使用的同学应该已经有所了解. Vuex实现了一个单向数据流,在全局拥有一个State存放数据,所有修改State的操作必须通过Mutation进行,Mu ...

  4. Cause: java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配

  5. ARM TK1 安装ROS- indigo

    之前安装不成功是因为校园网无法访问源的问题. Ubuntu ARM install of ROS Indigo There are currently builds of ROS for Ubuntu ...

  6. CentOS7.6下安装MySQL

    注:本教程使用XShell ssh到CentOS服务器,并使用root用户登录,如使用其他普通用户登录,请在命令前加sudo 1).在/usr/local/目录下(看个人情况)新建文件夹mysql用来 ...

  7. python 生成推导式

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  8. VS2017 打包(详细)

    1.安装打包插件:Microsoft Visual Studio 2017安装程序项目 ​ 2.联机查找下面的组件,然后安装,重启VS,进行插件安装 3.新建安装项目,另外,有些人可能会想这么多安装类 ...

  9. 【学术篇】luogu3768 简单的数学题(纯口胡无代码)

    真是一道"简单"的数学题呢~ 反演题, 化式子. \[ ans=\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j) \\ =\sum_{i=1}^n\sum_{j ...

  10. easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”

    昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b ...