网站开发研究资料书籍,开发平台 华为,wordpress 404页面模板,建设信息发布平台多少钱文章目录
DQL数据查询语言
一、数据集准备
二、select查询
三、简单查询
四、条件查询
1、比较查询
2、范围查询
3、逻辑查询
4、模糊查询
5、非空查询
五、排序查询
六、聚合查询
七、分组查询与having子句
1、分组查询介绍
2、group by的使用
3、group by 聚…
文章目录
DQL数据查询语言
一、数据集准备
二、select查询
三、简单查询
四、条件查询
1、比较查询
2、范围查询
3、逻辑查询
4、模糊查询
5、非空查询
五、排序查询
六、聚合查询
七、分组查询与having子句
1、分组查询介绍
2、group by的使用
3、group by 聚合函数的使用
4、group by having的使用
八、limit分页查询
九、总结 DQL数据查询语言
一、数据集准备
CREATE TABLE product
(pid INT PRIMARY KEY,pname VARCHAR(20),price DOUBLE,category_id VARCHAR(32)
);
插入数据
INSERT INTO product VALUES (1,联想,5000,c001);
INSERT INTO product VALUES (2,海尔,3000,c001);
INSERT INTO product VALUES (3,雷神,5000,c001);
INSERT INTO product VALUES (4,杰克琼斯,800,c002);
INSERT INTO product VALUES (5,真维斯,200,c002);
INSERT INTO product VALUES (6,花花公子,440,c002);
INSERT INTO product VALUES (7,劲霸,2000,c002);
INSERT INTO product VALUES (8,香奈儿,800,c003);
INSERT INTO product VALUES (9,相宜本草,200,c003);
INSERT INTO product VALUES (10,面霸,5,c003);
INSERT INTO product VALUES (11,好想你枣,56,c004);
INSERT INTO product VALUES (12,香飘飘奶茶,1,c005);
INSERT INTO product VALUES (13,海澜之家,1,c002); 二、select查询
# 根据某些条件从某个表中查询指定字段的内容
格式select [distinct]*| 列名,列名 from 表where 条件 三、简单查询
# 1.查询所有的商品.
select * from product;
# 2.查询商品名和商品价格.
select pname,price from product;
# 3.查询结果是表达式运算查询将所有商品的价格10元进行显示.
select pname,price10 from product; 四、条件查询 1、比较查询
# 查询商品名称为“花花公子”的商品所有信息
SELECT * FROM product WHERE pname 花花公子;
# 查询价格为800商品
SELECT * FROM product WHERE price 800;
# 查询价格不是800的所有商品
SELECT * FROM product WHERE price ! 800;
SELECT * FROM product WHERE price 800;
# 查询商品价格大于60元的所有商品信息
SELECT * FROM product WHERE price 60;
# 查询商品价格小于等于800元的所有商品信息
SELECT * FROM product WHERE price 800; 2、范围查询
# 查询商品价格在200到1000之间所有商品
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;
# 查询商品价格是200或800的所有商品
SELECT * FROM product WHERE price IN (200,800); 3、逻辑查询
# 查询商品价格在200到1000之间所有商品
SELECT * FROM product WHERE price 200 AND price 1000;
# 查询商品价格是200或800的所有商品
SELECT * FROM product WHERE price 200 OR price 800;
# 查询价格不是800的所有商品
SELECT * FROM product WHERE NOT(price 800); 4、模糊查询
# 查询以香开头的所有商品
SELECT * FROM product WHERE pname LIKE 香%;
# 查询第二个字为想的所有商品
SELECT * FROM product WHERE pname LIKE _想%; 5、非空查询
# 查询没有分类的商品
SELECT * FROM product WHERE category_id IS NULL;
# 查询有分类的商品
SELECT * FROM product WHERE category_id IS NOT NULL; 五、排序查询
# 通过order by语句可以将查询出的结果进行排序。暂时放置在select语句的最后。
格式SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;
ASC 升序 (默认)
DESC 降序# 1.使用价格排序(降序)
SELECT * FROM product ORDER BY price DESC;
# 2.在价格排序(降序)的基础上以分类排序(降序)
SELECT * FROM product ORDER BY price DESC,category_id DESC; 六、聚合查询
之前我们做的查询都是横向查询它们都是根据条件一行一行的进行判断而使用聚合函数查询是纵向查询它是对一列的值进行计算然后返回一个单一的值另外聚合函数会忽略空值。
学习如下五个聚合函数
聚合函数作用count()统计指定列不为NULL的记录行数sum()计算指定列的数值和如果指定列类型不是数值类型则计算结果为0max()计算指定列的最大值如果指定列是字符串类型使用字符串排序运算min()计算指定列的最小值如果指定列是字符串类型使用字符串排序运算avg()计算指定列的平均值如果指定列类型不是数值类型则计算结果为0
案例演示
# 1、查询商品的总条数
SELECT COUNT(*) FROM product;
# 2、查询价格大于200商品的总条数
SELECT COUNT(*) FROM product WHERE price 200;
# 3、查询分类为c001的所有商品的总和
SELECT SUM(price) FROM product WHERE category_id c001;
# 4、查询分类为c002所有商品的平均价格
SELECT AVG(price) FROM product WHERE categ ory_id c002;
# 5、查询商品的最大价格和最小价格
SELECT MAX(price),MIN(price) FROM product; 七、分组查询与having子句
1、分组查询介绍
分组查询就是将查询结果按照指定字段进行分组字段中数据相等的分为一组。
分组查询基本的语法格式如下
GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]
说明: 列名: 是指按照指定字段的值进行分组。 HAVING 条件表达式: 用来过滤分组后的数据。 WITH ROLLUP在所有记录的最后加上一条记录显示select查询时聚合函数的统计和计算结果 2、group by的使用
group by可用于单个字段分组也可用于多个字段分组
-- 根据gender字段来分组
select gender from students group by gender;
-- 根据name和gender字段进行分组
select name, gender from students group by name, gender;
① group by可以实现去重操作
② group by的作用是为了实现分组统计group by 聚合函数 3、group by 聚合函数的使用
-- 统计不同性别的人的平均年龄
select gender,avg(age) from students group by gender;
-- 统计不同性别的人的个数
select gender,count(*) from students group by gender; 4、group by having的使用
having作用和where类似都是过滤数据的但having是过滤分组数据的只能用于group by
-- 根据gender字段进行分组统计分组条数大于2的
select gender,count(*) from students group by gender having count(*)2; 案例演示
#1 统计各个分类商品的个数
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id ;#2 统计各个分类商品的个数,且只显示个数大于1的信息
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) 1; 八、limit分页查询
分页查询在项目开发中常见由于数据量很大显示屏长度有限因此对数据需要采取分页显示方式。例如数据共有30条每页显示5条第一页显示1-5条第二页显示6-10条。
格式
SELECT 字段1字段2... FROM 表名 LIMIT M,N
M: 整数表示从第几条索引开始计算方式 当前页-1*每页显示条数
N: 整数表示查询多少条数据
SELECT 字段1字段2... FROM 表明 LIMIT 0,5
SELECT 字段1字段2... FROM 表明 LIMIT 5,5 九、总结
条件查询select *|字段名 form 表名 where 条件 排序查询SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC; 聚合查询函数count()sum()max()min()avg()。 分组查询SELECT 字段1,字段2… FROM 表名 GROUP BY 分组字段 HAVING 分组条件; 分页查询 SELECT 字段1字段2... FROM 表名 LIMIT M,N M: 整数表示从第几条索引开始计算方式 当前页-1*每页显示条数 N: 整数表示查询多少条数据 博客主页https://lansonli.blog.csdn.net 欢迎点赞 收藏 ⭐留言 如有错误敬请指正 本文由 Lansonli 原创首发于 CSDN博客 停下休息的时候不要忘了别人还在奔跑希望大家抓紧时间学习全力奔赴更美好的生活✨