15621857753

Mysql四大常用操作:增删改查之查询记录

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2022-12-30

本文介绍了Mysql四大常用操作:增删改查之查询记录,方法有很多,比如指定字段查询,查询单个字段不重复记录 distinct,条件查询 where,where后可接的条件,结果集排序……等等,一起来看看操作吧。

一、基础查询

类别 详细解示
基本语法 select * from 表;
示例 select * from money;
示例说明 查询money表中所有字段中的所有结果

”*” 是一种正则表达式的写法,表示匹配所有

二、指定字段查询

类别 详细解示
基本语法 select 字段 from 表;
示例 select id,username, balance from money;
示例说明 查询money表中id,username, balance字段中的所有结果

三、查询单个字段不重复记录 distinct

类别 详细解示
基本语法 select distinct 字段 from 表;
示例 select distinct age deptno from money;
示例说明 查询money表中年龄唯一的所有结果

实测中,加不加 deptno 结果都是一样的~

四、条件查询 where

类别 详细解示
基本语法 select  字段 from 表 where 条件;
示例 select * from money where age = 29;
示例说明 查询money表中年龄为29的所有结果

五、where后可接的条件

1、比较运算符

符号 说明
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
= 等于

2、逻辑运算符

符号 说明
or 或者
and 并且

举例:

select * from money where id <10 and province='湖北';

六、结果集排序 order by

类别 详细解示
基本语法 select 字段 from 表 order  by 字段 排序关键词
示例 select id,username, balance from money order by balance desc;
示例说明 查询money表中的id,username,balance字段,按照余额进行降序排序

排序用到的关键词:

关键词 说明
asc 升序排列,从小到大(默认)
desc 降序排列,从大到小

在 select 出来之后的结果集中排序使用 order by ,其中 desc 和 asc 是排序顺序中的关键字。

desc 表示按照字段进行降序排列,asc 表示升序排列,如果不写关键字默认升序排列。

七、多字段排序

类别 详细解示
基本语法 select 字段 from 表 order  by 字段1 排序关键词,... ...字段n desc|asc;
示例 select id,username, balance from money order by balance desc,age asc;
示例说明 查询money表中的id,username,balance字段,按照余额进行降序排序,若余额全都一样,则再使用age进行升序排序

如果第一个字段已经将结果给排好。第二个字段排序字段不生效。本例中,第二个字段无效

order by 后面可以跟多个不同的字段排序,排序字段的不同结果集的顺序也不同,如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序

八、结果集限制 limit

类别 详细解示
基本语法 select 字段 from 表  limit 数量;
示例 select id,username, balance from money limit 5;
示例说明 显示前五个用户

对于查询或者排序后的结果集,希望只显示一部分而不是全部,使用 limit 关键字结果集数量限制

九、限制结果集并排序

类别 详细解示
基本语法 select 字段 from 表 order by 字段 关键词 limit 数量
示例 select id,username, balance from money order by balance desc limit 5;
示例说明 按照钱来排序,显示前五个最有钱的用户

十、结果集区间选择

假设我从第0条开始取了3条记录。又想再从第3条开始取3条记录。再想从第6条开始取4条记录怎么办?

这时候就需要使用到结果集区间选择。

类别 详细解示
基本语法 select 字段 from 表  limit 偏移量,数量

注:第一条记录为0。

从第0条开始取了3条记录

select id,username, balance from  money limit 0,3;

从第三条开始再取三条

select id,username, balance from  money limit 3,3;

从第6条开始取4条记录

select id,username, balance from  money limit 6,4;

上面也是分页的由来~

第1页为  limit 0,10
第2页为  limit 10,10
第3页为  limit 20,10

十一、统计类函数使用(以下为常用)

函数 说明
sum 求和
count 统计总数
max 最大值
min 最小值
avg 平均值

基本语法

select 函数(字段) from 表

举例1 - id的总数:

select count(id) from money; 

给字段取别名 as

select count(id) as zongshu from money;

举例2 - 平均金额:

select avg(balance) from money;

举例3 - 总金额:

select sum(balance) from money;

举例4 - 查询最大金额

select max(balance) from money;

十二、分组 group by

基本语法  

select * from 表 group by 字段

举例1 - 按地区进行分组

select * from money group by province;

举例2 - 统计分组(分类)各总数

select deptno, count(1) from emp group by deptno;

举例3 - 统计省份数量后再进行分组显示

select count(province),province  from money group by province;

十三、在分组基础上进行统计 with rollup

用的比较少,了解级别

主要功能是对于分组的数据进行统计后,再进行一次总数统计

基本语法

select * from 表 group by 字段 with rollup

举例:

select count(province),province  from money group by province with rollup;

十四、结果再过滤 having

aving子句与where有相似之处但也有区别,都是设定条件的语句

having 是筛选组 而where是筛选记录

基本语法

select * from 表 group by 字段 having 条件

举例:对地区分组并统计总数,将分组结果中大于2的分组地区显示出来

select count(province) as result ,province  from money group by province having result >2;

十五、整体使用SQL

语法结构如下:

SELECT
     [字段1 [as 别名1],[函数(字段2) ,]......字段n]
 FROM 表名
 [WHERE where条件]
 [GROUP BY 字段]
 [HAVING where_contition]
 [order 条件]
 [limit 条件]

注:上面的语句中可以[] 代表可选

语法总结如下:

关键词 说明
select 选择的列
from
where 查询的条件
group by 分组属性  having 分组过滤的条件
order by 排序属性
limit 起始记录位置,取记录的条数

举例:

查询money表字段:id,username,balance,province 要求id>1 余额大于50,使用地区进行分组。使用用户id进行降序,要求只准显示3条

select id,username,balance,province from money where id > 1 and balance > 50 group by province order by id desc limit 3;

展开