mysql--②dql:基本查询


• 数据库最重要的功能
• 使用select语句
• 查询语句

select * 列名字 fromwhere 条件

在这里插入图片描述

• 数据准备

1、创建数据库和表
2、添加数据
在这里插入图片描述

• 简单查询(不加条件)

1、查询所有商品
两种方法:
一是把所有的列都列出来
二是 用 * 代替
在这里插入图片描述

2、查询指定列
在这里插入图片描述

3、别名查询

①表别名
在这里插入图片描述

②列别名
可以用汉字,在实际的开发中,一般用英文
在对有些列进行相加相减的时候,起别名比较方便

在这里插入图片描述

4、去掉重复值:distinct
第一条语句是删除某一列重复的信息
第二条语句是删除所有列都重复的信息

select distinct price from product;
select distinct * from product;

5、查询结果是表达式(运算查询):将所有商品的加价10元进行显示

这个你如果不加new_price 的话,那个表名字就是price+10;
在这里插入图片描述

• 基本查询

在这里插入图片描述

<=> 完全等于,用于比较null值
regexp 比较运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

对二进制进行 位运算的位运算符
在这里插入图片描述

• 运算符操作

在这里插入图片描述

• 运算符操作 条件查询

在这里插入图片描述

查询:
大于等于
在两个数据之间

between   ...andand&&

满足两个条件其中之一

in 关键字
② or||

在这里插入图片描述

查询带有某个字的:like关键字
如:查询含有“鞋”字的所有商品

select * from product where pname like '%%’;  --%用来匹配任意字符

查询某个字开头的
在这里插入图片描述

查询第二个字是:hi 的商品--下划线匹配单个字符
在这里插入图片描述

查询某一项为null,不能用等于null,因为null和任何数都不等,要用 is null
不是null ,要用 is not null
在这里插入图片描述

查询最大最小值,要使用相关函数
least()
greatest()
在这里插入图片描述

• 位运算符

与运算:只有全为1,结果才为1
或运算:有一个1,结果为1
在这里插入图片描述

异或:相同0,不同1
右移,正数补0
在这里插入图片描述

取反:~
0---->1
1---->0
计算机底层32位
• 排序查询:order by

在这里插入图片描述
在这里插入图片描述

第三个查询:由于是经过 去重的,不能选择某一列,要整表查询

• 聚合查询

null 不统计
在这里插入图片描述

1、查询商品的总条目
一般查询主键的条数

  • :代表不为空的列

– 查询商品的总条数

select count (pid) from product;
select count (*) from product;

2、查询约束条件下的条目数
–查询价格大于200商品的总条数

select count(pid) from product where price > 200;

3、查询约束条件下的总和
–查询分类为‘c001’的所有商品的总和

select sum (price) from product where category_id = 'c001' ;

4、查询最大 Max 最小 min
在这里插入图片描述

5、查询约束条件下的平均值
在这里插入图片描述

• 聚合函数--NULL处理:视而不见

在这里插入图片描述
在这里插入图片描述

给他默认0,求平均值的时候就把它算上了

• 分组查询--group by ,having

在这里插入图片描述
在这里插入图片描述

执行过程
注意: 分组之后,select 的后边只能写分组字段和聚合函数
这是因为,分组之后的数据是一组数据,不能用其中一行来表示其他的数据
在这里插入图片描述

分组查询--分组之后的条件筛选-having语句

注意:
1、分组之后对统计结果进行筛选的货必须使用having,不能使用where
2、where子句用来筛选from 子句中指定的操作所产生的行
3、group by 子句用来从分组where子句的输出
4、having子句用来从分组的结果中筛选行
在这里插入图片描述

where 后面不能加聚合函数
在这里插入图片描述

group by 后分组必须用having

在这里插入图片描述

在这里插入图片描述

• 分页查询--limit

第一条是0,第n条是n—1

在这里插入图片描述
在这里插入图片描述

• insert into select 语句

将一张表的数据导入到另一张表中
要求;
目标表必须存在
前面表的字段和后面表都存在,类型一致
在这里插入图片描述

例子:
按类别分组插入查询
在这里插入图片描述

• 总结

1、简单查询
2、运算符操作
3、排序查询--order by asc (升序)| desc(降序)
4、聚合查询
5、分组查询
6、分页查询
• 基本查询DQL

1、简单查询:在这里插入图片描述

2、运算符操作:


在这里插入图片描述
在这里插入图片描述

3、排序查询-order by
在这里插入图片描述

4、聚合查询-count sum max min avg
count(*) = count(1)
如果列中有null,不进行计算,当做不存在
在这里插入图片描述

分组之后是对每组进行查询:
eg:
--统计各个分类商品的个数
--注意:分组之后,select 的后边只能写分组字段和聚合函数

select  category_id , count(pid)  from product group by category_id;

5、分组查询-group by

6、分页显示-limit
查询product 表的前5 条记录

select  * from product limit5;
#从第4 条开始显示,显示2条
select* from product limit3,5; 

7、sql 的书写顺序:

select
category_id,count(pid) cnt
from
product
where
price >1000
group by
category_id
having
cnt > 4
order by
cnt
limit 1
;

8、SQL 的执行顺序

from
where
group by
count(pid)
having
select
orderby
limit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值