目录
数据库的基本查询 DQL
简单查询
聚合查询
分组查询
排序查询
分页查询
数据库的基本查询 DQL
简单查询
代码语言:sql复制--查询所有的商品
select * from 表名;
--查询商品名和商品价格
select 列名1,列名2 from 表名;
--别名查询使用关键字as(as可以省略)
select * from 表名 as 别名;
select 列名 as 别名 from 表名;
--去掉重复值(distinct)
select distinct 列名 from 表名;
--查询结果是表达式(运算查询)
select 列名1,列名2(运算)from 表名;
select pname,price 10 from product;
--条件查询:
select 列名1,列名2...from 表名 where 条件,条件2...
聚合查询
根据定义,聚合函数对一组值执行计算并返回单个值。. MySQL提供了许多聚合函数,包括 AVG , COUNT , SUM , MIN , MAX 等。. 除 COUNT 函数外,其它聚合函数在执行计算时会忽略 NULL 值。
代码语言:sql复制--查询商品的总条数
select count(*) from product;
--查询价格大于200商品的总条数
select count(*) from product where price > 200;
--查询分类为'c001'的所有商品的总和
select sum(price) from product where category_id = 'c001';
--查询商品的最大价格
select max(price) from product;
--查询商品的最小价格
select min(price) from product;
--查询分类为'c002'所有商品的平均价格
select avg(price) from product where category_id = 'c002';
分组查询
格式
select 字段1,字段2,...from 表名 group by 分组字段 having 分组条件
代码语言:javascript复制select category_id ,count(*) from product group by category_id ;
select category_id ,count(*) from product group by category_id having count(*) > 1;
注意:在使用分组查询时应该使用 having 条件语句
排序查询
格式:select 字段名1,字段名2,...from 表名order by 字段名1 [asc|desc],字段名2[asc|desc]…
order by 子句来设定你想按哪个字段哪种方式来进行排序
1.asc代表升序,desc代表降序,如果不写默认升序 2.order by用于子句中可以支持单个字段,多个字段,表达式,函数,别名 3.order by子句,放在查询语句的最后面。LIMIT子句除外
分页查询
分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条。
代码语言:javascript复制-- 方式1-显示前n条 select 字段1,字段2... from 表明 limit n -- 方式2-分页显示 select 字段1,字段2... from 表明 limit m,n m: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数 n: 整数,表示查询多少条数据
-- 查询product表的前5条记录
select * from product limit 5
-- 从第4条开始显示,显示5条
select * from product limit 3,5