《mysql必知必会》读书实战笔记16-高级联结查询

第16章 创建高级联结

16.1使用表别名

除了列别名,也可以使用表别名,作用是:

a.缩短sql语句;
b.允许在单条select中,多次使用相同的表别名;
c.与列别名不同,表别名不返回到客户端显示。

例:统计所有订购货品TNT2的客户信息:select cust_name,cust_contact from customers as a,orders as b,orderitems as c where a.cust_id=b.cust_id and b.order_num=c.order_num and c.prod_id='TNT2' order by cust_name;

16.2 使用不同类型的联结

前面几章介绍的是内连接,或称等值联结,属于简单连接。
下面看另外3中连接:自联结、自然联结、外联结。

16.2.1自联结

例:发现某物品id为DTNTR存在问题,想找出该物品供应商的其他产品是否也有问题:
a.子查询方式:select prod_id,prod_name from products where vend_id=(select vend_id from products where prod_id='DTNTR');

b.自联结方式:select a.prod_id,a.prod_name from products as a,products as b where a.vend_id=b.vend_id and b.prod_id='DTNTR';

自联结通常代替相同表中的子查询,效率通常比子查询高,但实际效率,需要比较得知。

16.2.2自然联结

自然联结:只能检索展示唯一的列,即对第一个表可以用“ * ”通配符,联结的其他表只能使用明确的列名,不能产生重复列。


16.2.3 外部联结

外部联结:相关表中可能没有对应的关联行,例如:客户表中客户1,在关联的订单表中,没有客户1的订货记录。

内连接与外连接的区别:

内部联结inner join——关联两个表中相同的行。

例:统计所有客户及其订单:select c.cust_id,o.order_num from customers as c inner join orders as o on c.cust_id=o.cust_id;

外部联结——关联两个表中所有的行,包括不同的行。
外部联结outer join有两种:左外连接left outer join、右外连接right outer join,区别只是表的顺序不同。

例:统计所有客户及其订单,包括没有订单的客户:select c.cust_id,o.order_num from customers as c left outer join orders as o on c.cust_id=o.cust_id;

16.3使用带聚集函数的联结

outer join on + group by

例:查询所有客户及其订单数:select c.cust_id,c.cust_name,count(o.order_num) as num_ord from customers as c left outer join orders as o on c.cust_id=o.cust_id group by c.cust_id;

16.4联结和联结条件

使用连接时,必须提供连接条件,否则会得出笛卡尔积。


《mysql必知必会》是一本好书,是一本sql语言入门书,豆瓣评分很高。

作者是英国的Ben Forta,世界知名的技术作家,由人民邮电出版社发行,我觉得原作名: MySQL Crash Course,直译为:《MYSQL速成》更具畅销书潜质,只是比较俗吧,呵呵。

书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。

前三章是基础概念,讲了SQL和数据库的基本概念,Mysql数据库的概念和使用方法,第四章开始SQL实操练习,这里是本书的一些实操练习笔记,有兴趣的话可以按这个练习几遍,相信对新手会很有帮助,让你不经意间功力大增。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容