MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)

MySQL操作之概念、SQL约束(一)
MySQL操作之数据定义语言(DDL)(二)
MySQL操作之数据操作语言(DML)(三)
MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)
MySQL操作之数据查询语言:(DQL)(四-2)(多表查询)
MySQL操作之数据控制语言:(DC)(五)

一、简单查询(select、distinct)

查询所有的商品

select * from product;

查询商品名和商品价格

select pname,price from product;

别名查询.使用的关键字是as(as可以省略的)

select pname as pn from product as p

#去掉重复值(distinct)

select distinct price from product

价格+10元进行显示

elect price+10 from product

二、条件查询(where)

BETWEEN…AND… 显示在某一区间的值(含头含尾) 一定区间内的数
IN(set) 显示在in列表中的值,例:in(100,200) 两个数中的一个
LIKE ‘张 ‘ 模糊查询 first_name like ‘_a%’;

查询价格为800商品

SELECT * FROM product WHERE price = 800

查询价格不是800的所有商品

SELECT * FROM product WHERE price != 800

查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price = 200 OR price = 800;
SELECT * FROM product WHERE price IN (200,800);

查询含有’霸’字的所有商品

SELECT * FROM product WHERE pname LIKE '%霸%'
ELECT * FROM product WHERE pname LIKE '香%';--以香开头的
SELECT * FROM product WHERE pname LIKE '_想%'--第二个字为想的

商品没有分类的商品

SELECT * FROM product WHERE category_id IS NULL

查询有分类的商品

SELECT * FROM product WHERE category_id IS NOT NULL

三、排序查询(order by-ASC/DESC)

格式:

SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC

使用价格排序(降序)

SELECT * FROM product ORDER BY price DESC

在价格排序(降序)的基础上,以分类排序(降序

SELECT * FROM product ORDER BY price DESC,category_id DESC

四、聚合查询

  • count:统计指定列不为NULL的记录行数;
  • sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
  • max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
  • min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
  • avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

查询商品的总条数(count)

SELECT COUNT(*) FROM product

查询商品的价格和(sum)

select sum(price) as 'totalprice' FROM product

查询分类为’c002’所有商品的平均价格(AVG)

SELECT AVG(price) FROM product WHERE category_id = 'c002'

查询商品的最大价格和最小价格(MAX)

SELECT MAX(price),MIN(price) FROM product

五、分组查询(group by)

分组查询是指使用group by字句对查询信息进行分组

SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;

having与where的区别:

having是在分组后对数据进行过滤.
where是在分组前对数据进行过滤
having后面可以使用聚合函数(统计函数)
where后面不可以使聚合函数

统计各个分类商品的个数,且只显示个数大于1的信息

SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;

统计各个分类商品的平均价格,且只显示平均价格>800的信息

SELECT category_id,AVG(price) FROM product GROUP BY category_id HAVING
AVG(price)>800;
posted @ 2019-07-21 15:52  ah_lydms  阅读(113)  评论(0编辑  收藏  举报