震惊!MySQL连接查询这么简单?今天你学废了吗???

查询的分类:

  1.内连接查询

      #交叉连接CROSS JOIN没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积

   2.多表连接查询

      #内连接就是两个表的交集 ,左外连接就是左边表加两表交集 ,右外连接就是右边表加两表交集

   3.外连接查询

      #左外连接:LEFT OUTER JOIN或LEFT JOIN 

      #右外连接:RIGHT OUTER JOIN或RIGHT JOIN

   4.连接查询综合运用

查询的语法:

   1.内连接查询 

 select * from line  CROSS  JOIN  vehicle   或者   select  *  from  line ,vehicle

例如:实现路线表与车辆表笛卡尔积如下图所示

   2.多表连接查询

 如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。

例如:车牌号和型号来源于车辆表;司机姓名来源于司机表;线路号、起点站和终点站来源于线路表,因而需要连接3张表:车辆表、司机表和线路表,SQL 语句如下

select name 司机姓名,plateNo 车牌号,model 型导,lineNo 线路号,from_station 起点站 end_station 终点站 from vehicle V join Driver D on V.driverlD=D.driverlD join line L on V. linelD=LlinelD where type=' 非空调车

   3.外连接查询

 SELECT 字段名称 FROM 表名1 LEFTIRIGHTIFULL JOUTERI JOIN 表名2 ON 表名 1. 字段名 1= 表名 2.字段名 2

      #左外连接:LEFT  JOIN

例如: 由于需要显示所有的非空调车,所以只能外连接。如果将车辆表vehicle作为连报左表,线路表line作为右表则该连接为左外连接。具体的 SQL 语句如下:

select plateno 主牌, model g, tineno s 线路, roistation t 起点站, and station se from vehiclo v left join line t on v linetDalneld where type” 非空汽车

      

      #右外连接:RIGHT  JOIN

   右外连接是左外连接的反向连接 。

例如:由于需要显示所有的线路信息,所以只能外连接。如果车锅表 vehicle作为连报在表,钱络表ine作为有表。则该连接为右外连接。具体的 SQL 语句如下:

 select plateNo 车牌号,model 型号,lineNo 线路号, from_station 起点站,end_station 终点站  from vehicle v right join line L on V.linelD=LlinelD

 

4.连接查询综合运用

综合使用连接查询,聚合函数和分组查询,可以实现很多复杂的查询需求。

例如:(1)由于需要显示所有的线路信息,所以只能外连接。如果车锅表 vehicle作为连报在表,钱络表ine作为有表。则该连接为右外连接。具体的 SQL 语句如下:
 

select plateNo 车牌号,model 型号,lineNo 线路号,from_station 起点站,end_station 终点站  from vehicle v right join line L on V.linelD=LlinelD where type='非空调车'

                              统计每件商品的销售数量和销售金额

(2)需要连接订单表、订单明细表、商品表和客户表,具体的 SQL语句如下:

select o.orderslD 订单ID,o.ordersDate 下单日期 ,sum(od.quantity*g unitPrice)  订单金额
 c.cName 客户名 from orders o,ordersdetail od,goods g,customer c where  o.orderslD=od.ordersid and od goodslD=g.goodslD and o.customerlD=c.customerlD group by o.ordersld order by 下单日期,订单金额 desc

 

                                                  计算订单金额

 

就是这么简简单单!今天的你学会了吗?快去试试看吧!!!

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值