《mysql 必知必会》整理3
来源:互联网 发布:qt creator linux调试 编辑:程序博客网 时间:2024/06/14 05:55
12章 ----- 汇总数据(avg、count、max、min、sum)
聚集函数:
avg 返回某字段的平均值
count 返回某字段的行数
max 返回某字段的最大值
min 返回某字段的最小值
sum 返回某字段的值之和
语法:
select avg(字段) from 表;
select count(字段) from 表;
select max(字段) from 表;
select min(字段) from 表;
select sum(字段) from 表;
注意:
avg()函数:
①、表后可加where条件、
②、查询多个字段的平均值,需要使用多个avg()。
如: select avg(字段1),avg(字段2) from 表;
count()函数:
①、select count(*),表示对表所有行数(包括null值行)都进行计数
avg()函数、max()函数、min()函数、sum()函数、select count(字段)
①、忽略字段中为null的值
distinct 可排除字段中相同的值
如:select avg(distinct 字段) from 表;
组合聚集函数
select count(字段),min(字段),max(字段),avg(字段),sum(字段) from 表;
13章-----分组数据
数据分组 group by:
select count(*)/avg(字段)/count(字段)/max(字段)/min(字段)/sum(字段) from 表 group by 分组依据字段;
①、根据不同的分组条件进行分组计算(如:根据不同日期进行统计)
②、在where之后,order by之前
过滤数据 having:
select count(*)/avg(字段)/count(字段)/max(字段)/min(字段)/sum(字段) from 表 group by 分组依据字段 having 过滤分组条件;
select count(*)from sutdent group by day having count(*)>2;
注意:
①、having用法与where相似,但having是过滤分组条件(如count(*)/avg(字段)/count(字段)/max(字段)/min(字段)/sum(字段)),而where是过滤条件.
②、where在分组前进行过滤,having在分组后进行过滤
③、where和having一起同用:select count(*) from products where prod_price≥10 group by vend_id having count(*)>2;
排序 order by
限制查询显示的行数 limit
第15章------联结
主键(该表的唯一值,如id)
外键(是另外一个表的主键值,在此表中就叫外键)
一、两个表以两个表中都存在的关系字段进行联结
方法一:where
表A和表B关联的字段为:id
联结查询如下:
Select 字段a1,字段a2,字段b1
from 表A , 表B
where表A.id=表B.id
order by 字段a;
注意:select 指定的列字段a1、字段a2在表A中存在,字段b1在表B中存在。
例子:
①、【两表联结】
Select vend_name,prod_name,prod_price
From vendors, products
where vendors.vend_id = products.vend_id
Order by vend_name, prod_name;
②、【多表联结】
Select prod_name,vend_name,prod_price,quantity
From orderitems,products,vendots
Where products.vend_id = vendors.vend_id
And orderitems.prod_id = products.prod_id
And order_num =2005;
③、优化前:
select cuts_name ,cust_contact
From customers
Where cust_id in(select cust_id
from orders
Where order_num in (select order_num
From orderitems
Where prod_id =‘TNT2’))
④、优化后
Select cuts_name,cust_contact
From customers,ordres,orderitmes
Where customers.cust_id=orders.cust_id
And ordertiems.order_num=orders.order_num
And prod_id=‘TNT2’
注意:③和④的查询结果相同方法二:inner join....on
表A和表B关联的字段为:id
联结查询如下:
Select 字段a1,字段a2,字段b1
from 表A inner join表B
on 表A.id=表B.id;
例子:
select vend_name,prod_name,prod_price
from vendors inner join products
on vendors.vend_id = products.vend_id;
二、两个表不以关系字段进行联结
笛卡儿积方法(结果查询出来的结果显示的行数=表A行数*表B行数)
Select 字段a1,字段a2,字段b1
from 表A , 表B
order by 字段a;
例子:
select vend_name,prod_name,prod_price
From vendors,products
order by vend_name,prod_name;
第16章
- 《mysql 必知必会》整理3
- 《mysql 必知必会》整理1
- mysql整理
- mysql 整理
- mysql 整理
- mysql 整理
- mysql整理
- mysql 整理
- mysql整理
- MySQL知识整理(3)一些常用命令
- mysql 整理之mysql 复制
- mysql 整理之mysql MMM
- mysql使用心得整理
- Mysql收集整理
- MySQL 常用命令整理
- mysql学习整理(一)
- MySQL日志整理
- MySql操作要点整理
- 事件原理(再续)
- spring+springmvc+Interceptor+jwt+redis实现sso单点登录
- 2017-11-7 文本编辑工具vim
- ZTree的使用
- Linux 网络管理
- 《mysql 必知必会》整理3
- LazyInitializationException
- Shortest Prefixes POJ
- webView loadData 中文乱码问题快速解决(API提供的标准用法不可行)
- 快消品图像识别丨无人店背后的商品识别技术
- Java多线程编程-(19)-多线程异步调用之Future模式
- Xutils3 如何使用gzip
- Django基本模块
- 关键字