欢迎来到天天文库
浏览记录
ID:39711979
大小:535.50 KB
页数:31页
时间:2019-07-09
《数据库第08章多表联接》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章多表联接使用表的别名组合多个表中的数据合并多个结果集使用表的别名两种方式给字段起名使用多表联接时,必须慎重地指定字段名,任何数据库对象名称包含四个标识:服务器名、数据库名、主人名称、对象名SELECT*FROMserver.database.schema.tableAS别名SELECT*FROMserver.database.schema.table别名使用表的别名(续)举例从订单详细表中查询单价高于100的订单号、产品号、单价SELECTod.orderid,od.productid,od.unitpriceFROM[orderdetails]ASodWhereod.u
2、nitprice>100表的别名第8章多表联接使用表的别名组合多个表中的数据合并多个结果集组合多个表中的数据联接概述使用内联接使用外联接使用交叉联接联接两个以上的表自联接(Self-Join)联接概述从多个表中选择指定的字段关键字JOIN指定要联接的表,以及这些表联接的方式关键字ON指定联接条件查询两个或多个表并生成单个结果集所有联接的表必须共同拥有某些字段,这些字段必须有相同的或兼容的数据类型如果联接的表有相同字段,则引用这些字段时必须指定表名联接概述(续)连接类型交叉连接:CrossJoin(不太用)内连接:[Inner]Join(最常用)外连接:左外连接:Left[Out
3、er]Join右外连接:Right[Outer]Join完全连接:Full[Outer]Join自连接:SelfJoin使用内联接内联接通过比较被联接的表所共同拥有的字段,把多个表联接起来语法SELECT列名列表FROM表名1[INNER]JOIN表名2ON表名1.列名<比较运算符>表名2.列名注意INNER可以省略。<比较运算符>包括=、>、<、<>等。使用内联接(续)buyer_idprod_idqty114323151553711421003buyersbuyer_nameabcdbuyer_id1234结果buyer_nameaacdbuyer_idqty1134155
4、1137d41003USEjoindbSELECTbuyer_name,sales.buyer_id,qtyFROMbuyersINNERJOINsalesONbuyers.buyer_id=sales.buyer_idGOsales列出购买产品的顾客信息使用内联接(续)USEjoindbSELECTbuyer_name,sales.buyer_id,qtyFROMbuyers,salesWHEREbuyers.buyer_id=sales.buyer_idGOUSEjoindbSELECTbuyer_name,sales.buyer_id,qtyFROMbuyersINNER
5、JOINsalesONbuyers.buyer_id=sales.buyer_idGO示例比较之一使用内联接(续)USEjoindbSELECTbuyer_name,sales.buyer_id,qtyFROMbuyersINNERJOINsalesONbuyers.buyer_id=sales.buyer_idGOUSEjoindbSELECT*FROMbuyersINNERJOINsalesONbuyers.buyer_id=sales.buyer_idGObuyer_nameaadcbuyer_idqty11431553711d41003buyer_nameaadcdbu
6、yer_id11434buyer_id11434prod_id23152qty15537111003尽量不要使用*比较之二使用外联接左外联接的结果表中除了满足连接条件的行,还包括左表中的所有剩余行,但不包括右表中的不匹配行使用左外联接时,请注意不满足联接条件的记录将显示空值左联接可以显示左表中所有记录可以把LEFTOUTERJOIN简写为LEFTJOIN使用外联接(左联接)USEjoindbSELECTbuyer_name,sales.buyer_id,qtyFROMbuyersLEFTOUTERJOINsalesONbuyers.buyer_id=sales.buyer_id
7、GOsalesbuyer_idprod_idqty114323151553711421003buyersbuyer_nameabcdbuyer_id1234结果buyer_nameaabcbuyer_idqty11NULL3155NULL11d437d41003不满足条件的显示null查询所有购买者的购买情况使用外联接(右联接)右外联接结果表中除了满足连接条件的行,还包括右表中的所有剩余行,但不包括左表中的不匹配行使用右外联接时,请注意不满足联接条件的记录将显示空值右联接可以显示右表中所有记
此文档下载收益归作者所有