范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

MySQL数据查询语言DQL数据连接语法及实例

  连接
  合并思想. N个表 --> 1个表
  连接的定义
  将2个或2个以上的表通过一定的条件拼接起来形成一个虚表的过程。连接是from子句的一部分.
  从2个表的连接开始.
  左表: 放置在你左手边的表. left_tab
  右表: 放置在你右手边的表. right_tab
  连接语法 select list from left_tab join_type right_tab on join_condition;1、连接类型
  三种基本类型:  交叉连接,内连接与外连接
  交叉连接
  返回的就是一个笛卡尔积. #数学中 A = {1,2,3} B = {4,5} AXB = {<1,4>,<1,5>,<2,4>,<2,5>,<3,4>,<3,5>} #数据库中 表就是一个集合,每一行就是一个元素 A表: a1 a2 1 1 1 2 1 3 B表: b1 b2 2 2 2 3 2 4 a1 a2 b1 b2 1 1 2 2 1 1 2 3 1 1 2 4 1 2 2 2 1 2 2 3 1 2 2 4 1 3 2 2 1 3 2 3 1 3 2 4 left_tab: m rows x cols right_tab: n rows y cols left_tab*right_tab: m*n rows x+y cols
  交叉连接语法 select list from left_tab cross join right_tab;
  内连接
  在交叉连接的基础上,仅返回满足连接条件的行.
  连接条件
  1.使用on关键字来指定.
  2.on的用法与where类似.
  3.on可以使用连接的所有表中的列值进行判断 #连接条件 on A.a2 = B.b2 #tab_name.col_name #交叉连接返回的结果 a1 a2 b1 b2 1 1 2 2 1 1 2 3 1 1 2 4 1 2 2 2 1 2 2 3 1 2 2 4 1 3 2 2 1 3 2 3 1 3 2 4 #内连接返回的结果 a1 a2 b1 b2 1 2 2 2 1 3 2 3
  内连接的语法 select list from left_tab inner join right_tab on join_condition;
  外连接
  在内连接的基础上,返回一些额外的行.
  左外连接(左连接)
  在内连接的基础上,左表除了返回满足连接条件的行之外,剩下的所有不满足连接条件的行也要一并返回,右表中与之没有匹配的行的列值设置为null #连接条件 on A.a2 = B.b2 #tab_name.col_name #内连接返回的结果 a1 a2 b1 b2 1 2 2 2 1 3 2 3 #左外连接返回的结果 a1 a2 b1 b2 1 2 2 2 1 3 2 3 1 1 null null
  右外连接(右连接)
  在内连接的基础上,右表除了返回满足连接条件的行之外,剩下的所有不满足连接条件的行也要一并返回,左表中与之没有匹配的行的列值设置为null #连接条件 on A.a2 = B.b2 #tab_name.col_name #内连接返回的结果 a1 a2 b1 b2 1 2 2 2 1 3 2 3 #右外连接返回的结果 a1 a2 b1 b2 1 2 2 2 1 3 2 3 null null 2 4
  外连接语法 select list from left_tab left|right outer join right_tab on join_condition;#查询示例 SELECT * FROM a; SELECT * FROM b; SELECT * FROM a CROSS JOIN b; SELECT * FROM a INNER JOIN b ON a.a2 = b.b2; SELECT * FROM a LEFT OUTER JOIN b ON a.a2 = b.b2; SELECT * FROM a RIGHT OUTER JOIN b ON a.a2 = b.b2;2、内连接应用
  语法: select list from left_tab inner join right_tab on join_condition where search_condition order by sort_columns;#哪些商品被用户购买过? #思路 1.确定表 数据来源于哪些表中,或需要将哪些表结合起来查询 SELECT * FROM ecs_goods; SELECT * FROM ecs_order_goods; 2.确定连接条件 找出左表与右表中有逻辑关系的列,将两个表中的列值进行比较来描述连接条件 3.确定连接类型 若仅返回满足连接条件的行则使用内连接;否则使用外连接 SELECT DISTINCT ecs_goods.goods_id, ecs_goods.goods_name, ecs_goods.shop_price FROM ecs_goods INNER JOIN ecs_order_goods ON ecs_goods.goods_id = ecs_order_goods.goods_id;
  表的别名 select list from tab_name alias_name ... #表名 别名 select list from tab_name as alias_name ... #表名 AS 别名
  注意: 一旦给表设置了别名,则以后只能通过别名引用表中的列.别名会隐藏表名. SELECT DISTINCT g.goods_id, g.goods_name, g.shop_price #此处不能写成 ecs_goods.goods_id FROM ecs_goods AS g INNER JOIN ecs_order_goods AS og ON g.goods_id = og.goods_id; #此处不能写成 ecs_goods.goods_id#列出商品表中商品类型编号对应的类型名称 SELECT * FROM ecs_goods; SELECT * FROM ecs_goods_types; SELECT g.goods_id,g.goods_name,gt.cat_name,shop_price FROM ecs_goods AS g INNER JOIN ecs_goods_type AS gt ON g.goods_type = gt.cat_id;
  join嵌套
  可以在一个join中嵌套另外一个join
  一般来说,当连接的表的个数N>=3时需要使用嵌套join.
  当连接的表的个数为N时,则至少需要N-1个连接条件. #列出哪些用户购买了哪些商品,每一次购买该商品的花费是多少? SELECT * FROM ecs_users; SELECT * FROM ecs_order_info; SELECT * FROM ecs_order_goods;SELECT u.user_id,u.user_name,og.order_id,og.goods_name, og.goods_price*og.goods_number amount FROM (ecs_order_goods og INNER JOIN ecs_order_info oi ON og.order_id = oi.order_id) INNER JOIN ecs_users u ON oi.user_id = u.user_id ORDER BY u.user_id,og.order_id; 假设有三个表:t1,t2,t3 (t1,t2),t3 t1,(t2,t3) 转换成连接语法的方法: 将","改为连接类型,在右表(连接类型后的表)后加上连接的条件 select list from (t1 inner join t2 on jc1) inner join t3 on jc2; select list from t1 inner join (t1 inner join t3 on jc1) on jc2; 四个表: t1,t2,t3,t4 ((t1,t2),t3),t4 (t1,t2),(t3,t4) t1,((t2,t3),t4) t1,(t2,(t3,t4)) select list from ((t1 inner join t2 on jc1) inner join t3 on jc2) inner join t4 on jc3;3、外连接应用
  语法: select list from left_tab left|right outer join right_tab on join_condition [where keyword is null] #过滤满足条件的数据,保留不满足条件的数据 order by sort_columns;#哪些商品没有被客户购买过? SELECT * FROM ecs_goods; SELECT * FROM ecs_order_goods; SELECT DISTINCT g.goods_id, g.goods_name, g.shop_price,og.goods_id FROM ecs_goods g LEFT OUTER JOIN ecs_order_goods og ON g.goods_id = og.goods_id WHERE og.goods_id IS NULL; #商品类型表中哪些商品类型没有出现在商品表中 SELECT gt.* FROM ecs_goods AS g RIGHT OUTER JOIN ecs_goods_type AS gt ON g.goods_type = gt.cat_id WHERE g.goods_type IS NULL;
  join嵌套
  与内连接中的join嵌套用法类似. #找出没有购买过诺基亚E66商品的客户信息 SELECT * FROM ecs_users; SELECT * FROM ecs_order_info; SELECT * FROM ecs_order_goods; SELECT u.user_id,u.user_name,u.email FROM (ecs_order_goods og INNER JOIN ecs_order_info oi ON og.order_id = oi.order_id AND og.goods_name = "诺基亚E66") RIGHT OUTER JOIN ecs_users u ON oi.user_id = u.user_id WHERE oi.user_id IS NULL;

关于go语言中的协程相关知识点总结(二)接上一篇关于go语言中的协程相关知识点总结(一)继续分享关于go协程之间进行相互通信的机制的知识点关于Channel(通道)通道是go提供的一种通信机制,允许协程间进行数据传输,通小米集团第三季度总收入达781亿元,境外市场占比52。4小米集团11月23日晚间在港交所公告,2021年第三季度,小米集团总收入达到人民币781亿元,同比增长8。2经调整净利润达到人民币52亿元,同比增长25。4。其中,智能手机业务收入如何看待知识付费?你愿意付费吗?总的看来知识付费是趋势是进步,还需要不断完善。我只对值的付费。一在线内容付费潮流正在兴起,应破除一些人的双重标准,不能一边嫌自媒体平台稿费太少,一边喷知识付费是忽悠。广义的知识付费美媒感叹中国疫苗敏捷的接种速度,敏捷如何提升用户的体验?我们来看一下敏捷的开发流程图用户极致的体验需要产品的快速迭代,服务的敏捷反应等,我们梳理了产品运营在做敏捷scrum的核心要点(3355)3个核心角色Scrum的三个核心角色分别是想买空调,哪个牌子好(柜机挂机都要)?不要买格力,其它牌子都可选三菱电机,三伏天能让你在室内穿棉袄,而且几乎能用一辈子,当然了价格也几乎是国产品牌的二倍,而且三菱定频的比国产变频的都贵,这就看你注重什么了,要质量还是要为什么你们都放弃了QQ等级?真让人难以琢磨说到现如今的互联网发展,那可谓是日新月异了。尤其是我们的互联网社交,已经发展到移动互联网社交的阶段。像是什么微信QQ之类的,基本上已经在我们的日常生活当中习以为常了。而要说现如今最(科技)新型人工智能交通信号系统有望减少拥堵新华社北京5月16日电英国阿斯顿大学近日发布的一项研究显示,由该校研发团队开发的一种新型人工智能交通信号系统可通过深度强化自主学习,快速调整交通信号灯的反应,从而减少拥堵。研究公报盘点一下下周新品发布会周一,5月16日1430,全新荣耀MagicBook14发布会同天,1930,TCL万象星河Q10GMiniLED电视新品发布会。周二,5月17日1900,一加Ace竞速版发布会同十年老电脑升级改造这台ThinkPadE420是12年初买的,到现在已经陪伴了我十年光景,从买来到现在开机都是贼慢的,一直都想给它来个升级改造,这不最近老婆工作需要使用一段时间,还没开始用就跟我吐槽未保价的快递不能要求全额赔偿?随着我国交通运输网的建设发展,快递运输从商业交易走进了人们的日常生活。实践中在使用快递公司提供的网上下单服务时,人们往往直接跳过冗长的服务条款,这种便捷迅速的下单方式一方面为人们提推特到手在即,马斯克为何喊停?美国企业家马斯克5月13日在推特上宣布,暂缓对推特的收购,等待核查这家社交媒体上存在多少垃圾虚假账户。此言一出,推特股价暴跌逾20。此后不久,马斯克又表示仍致力于完成这笔交易,推特
iPhone上用的NVMe闪存,与Android旗舰上用的UFS2。1闪存,各自的优劣是什么?首先,NVMe并不是闪存,而是一种协议,全称是NonVolatileMemoryexpress,在PC端,它是一种建立在M。2接口上的类似AHCI的一种协议,是专门为闪存类存储设计2021年了,iPhonexs还值不值得入手?这期非常非常适合不怎么爱玩游戏,爱学习的学生党,绝了。话不多说,上图片这个颜值不用我多说了,懂得都懂。它在iPhone全面屏时代开启后的旅途上霸占着绝对好手感的地位。6。1英寸OL华为mate30系列都发布两年了,怎么现在还有99新的手机?华为mate30系列都发布两年了,怎么现在还有99新的手机?正常吗?你是说在华为官网最近出来的二手机吧,这个的确有99成新的手机,不过这个并非是华为提供的手机,而是回收宝提供的手机华为5G版机型确认回归!Mate40旧旗舰全系降价配件实现了国产替代9月2日讯相信大家都知道,在遭受到了四轮断供禁令重压之下,让华为海思芯片业务手机业务遭受到了重创,其中华为海思芯片更是无法再得到芯片代工厂商所提供的芯片的代工服务,并且时隔将近一年抢先体验素诺智能可视耳勺多功能清洁套装时代在发展,科技在进步,很多传统的操作在搭配上科技的创新技术之后,往往会得到意想不到的结果。掏耳朵这件事,很多人都很喜欢,拿着挖耳勺或者棉签,伸进耳朵里,掏起耳朵来是很舒服惬意的一请教以前的胶片相机镜头用在今天的数码相机上,表现会不会输给数码镜头?胶片时代的老镜头,各方面都不及现时的所谓数码镜头的说法,很大程度上是相机厂家做的一个局,为了引诱你抛弃老镜头,买它们的新镜头而已。当然也有另一个原因,是全幅单反未普及之前,大家用半2021苹果秋季发布会前瞻丨期待已久的十三香iPhone,或许升级不大岁往月来,忽复九月九日。九为阳数,而日月并应,俗嘉其名,以为宜于长久,故以享宴高会。近期南方天气依旧炎热,但可以确认的是秋天已经到了,年复一年的科技春晚也要如期而至。据爆料本次的发为了不让家里人知道我挂科,故意填错了地址!中国邮政使命必达寄件人你好,寄个快递,请问这个地方能到吗?中国邮政能到!寄件人你还没看没问我往哪寄呢?中国邮政在中华人民共和国领土范围内都能到!哈哈,没错,中国邮政就是这么的牛!从珠峰到南沙,从南石头科技年度新品全方位自清洁成最大卖点对现代人来说,做家务绝不是一个轻松活,大部分家庭清理房间地面的方式,似乎与前人并无二致,仍旧依靠人力一点点扫拖擦。但如今的上班族们996回家后,很难提起精神拿起工具打扫卫生。因此,鼻炎患者的福音!家居空气清洁好帮手对于鼻炎患者来说,换季简直是一场大型噩梦。家里的粉尘等空气污染物,让本就敏感的鼻子更加难受!一天到晚停不下来的喷嚏,严重打乱了原有的生活节奏,继续这样下去可不行,是时候认识一下fi好处多!vivo自主研发出V1芯片,推动国产芯片行业发展说到自研芯片,相信很多朋友会想到华为小米等手机厂商,其实除了它们之外,知名手机厂商vivo也已经走上了自主研发芯片这条道路,并且目前已经取得了不错的成果。就在近日,vivo官方公布