MySQL中的多表查询
来源:互联网 发布:几个excel表数据合并 编辑:程序博客网 时间:2024/06/06 06:55
MySQL中的多表查询
1、连接查询
a、交叉连接:(cross join)
返回多表的记录的笛卡尔积。(第一张表:5 第二章表:7,返回5*7=35)
select * from CUSTOMER,ORDERS;
select c.ID,c.NAME,o.ORDER_NUMBER,o.price from CUSTOMER c,ORDERS o;
b、内连接(inner join)
隐式内连接:select * from CUSTOMERc,ORDERS o where c.ID=o.CUSTOMER_id;
显式内连接:
select * from CUSTOMER c inner join ORDERS o on c.Id=o.CUSTOMER_id;
c、外连接(outer join)
查看所有客户信息,同时有订单的显示订单的详细信息。
左外:返回满足连接条件的记录,同时返回左表中剩余的其他记录。
select * from CUSTOMER c left outer join ORDERS o onc.ID=o.CUSTOMER_ID;
查看所有订单信息,同时返回下单的客户信息
右外:返回满足连接条件的记录,同时返回右表中剩余的其他记录。
select * from CUSTOMER c right outer join ORDERS o onc.ID=o.CUSTOMER_ID;
2、子查询
又称之为嵌套查询。查询中有查询。
执行顺序:先执行子查询(内查询),再执行外查询。
子查询:必须放在小括号之内。
查询陈冠希的所有订单信息。
形式一:多条查询语句
select ID fromCUSTOMER where NAME='陈冠希';
select * fromORDERS where CUSTOMER_ID=1;
形式二:subselect(子查询)
select * fromORDERS where CUSTOMER_ID=(select ID from CUSTOMER where NAME='陈冠希');
查询订单价格大于100的有哪些客户
select * fromCUSTOMER where ID in (select CUSTOMER_ID from ORDERS where PRICE>100);
3、MySQL常用的函数
SUM():求和
COUNT():计数
AVG():求平均
MAX():求最大
MIN():求最小
统计一个班级共有多少学生?
select count(*)from STUDENT;
统计数学成绩大于90的学生有多少个?
select count(*)from STUDENT where MATH>=90;
统计总分大于250的人数有多少?where可以使用表达式
select count(*)from STUDENT where (ENGLISH+CHINESE+MATH)>250;
统计一个班级数学总成绩?
select sum(MATH)from STUDENT;
统计一个班级语文、英语、数学各科的总成绩
selectsum(CHINESE),sum(ENGLISH),sum(MATH) from STUDENT;
统计一个班级语文、英语、数学的成绩总和
selectsum(ENGLISH+CHINESE+MATH) from STUDENT;
统计一个班级语文成绩平均分
selectsum(CHINESE)/count(*) from STUDENT;
selectavg(CHINESE) from STUDENT; #如果字段为null,不参与平均的计算。
4、分组(报表)查询:group by
对订单表中商品归类后,显示每一类商品的总价
select PRODUCT,sum(PRICE) from PRODUCTSgroup by PRODUCT;
查询购买了几类商品,并且每类总价大于100的商品
select PRODUCT,sum(PRICE) from PRODUCTSgroup by PRODUCT having sum(PRICE)>100;
- MySQL中的多表查询
- mysql中的多表查询基础
- MySQL数据库中的多表数据记录查询
- MySQL联表查询中的驱动表
- 【MySQL】MySQL多表查询
- 查询某数据库中的表 Mysql
- mysql查询表中的列名
- mysql分表后查询所有表中的记录
- MySQL 查询所有表中的记录数
- MySQL中的连接查询
- mysql中的联合查询
- MySql 查询中的 REGEXP
- mysql中的模糊查询
- mysql中的连接查询
- mysql中的子查询
- Mysql中的查询语句
- mysql中的高级查询
- mysql中的连接查询
- 动态规划1017
- Matlab作图后,使用data cursor实现显示多个点的数据值
- android 自定义ListView实现下拉刷新
- 灵活的坐标系变换:CSS的position定位方式
- 题目23
- MySQL中的多表查询
- 计蒜客 硬币翻转(二进制压缩)
- LeNet5的基本结构
- 题目29
- 《DO圣堂刺客2》国服首测今天拉开
- 两种方法求解逆序对
- java内存区域理解-初步了解
- 三种静态查找的思路及具体实现
- javascript笔试题(3)