zoukankan      html  css  js  c++  java
  • SQL:多表查询

    参考网址:  https://zhuanlan.zhihu.com/p/91973413

    此次主要介绍多表查询中的三部分:合并查询结果、连接查询(交叉连接、内连接、左连接、右连接、全连接)和CASE表达式。

    1、合并查询结果

    · 含义:

    利用UNION关键字可以给出多条SELECT语句,并将结果组合成单个结果集。

    · 用法:

    自动删除重复行:SELECT语句1 UNION SELECT语句2保留重复行(不自动排序):SELECT语句1 UNION ALL SELECT语句2

    · 注意事项

    ① 合并时,两个表对应的列数和数据类型必须相同,如果列数不同,需要补足其他字符代替,如使用'或null。

    ② UNION ALL关键字语句执行时所需要的资源少,如无需删重,建议选择使用。

    2、交叉连接

    · 含义:

    交叉连接(CROSS JOIN)又可称为笛卡尔积,将左表中每一行与右表中每一行分别连接形成新记录。实际业务中运用较少,需要大量运算成本,但它是其他连接的基础。

    3、内连接查询

    · 含义:

    内连接(INNER JOIN) 使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新记录。简而言之,查找出同时存在在不同表中的关联数据形成结果表。

    · 用法:

    SELECT 字段1,字段2,字段3,…… FROM 表名1 INNER JOIN 表名2 ON 关联条件;
    等同于
    SELECT 字段1,字段2,字段3,…… FROM 表名1,表名2 WHERE 关联条件;

    · 注意事项

    ① 如果某字段在多表中都有,则以"表名.列名"限定;

    ② 与INNER JOIN组合使用ON子句,而不是WHERE。ON和WHERE后面的指定条件相同, WHERE子句定义条件更简单明了,但某些时候会影响查询性能,而INNER JOIN语法是ANSI SQL的标准规范,能够确保不忘记连接条件。

    4、左连接查询

    · 含义:

    左连接(LEFT JOIN) 以左表为基准,将右表中的信息匹配进去,如果右表无对应值,则以空值显示。

    · 用法:

    SELECT 字段1,字段2,字段3,…… FROM 表名1 LEFT JOIN 表名2 ON 关联条件;

    若去掉左表有而右表为空的部分,在SELECT语句末尾加上"WHERE 表2.关联字段=NULL"

    5、右连接查询

    可类比左连接查询。

    · 含义:

    右连接(RIGHT JOIN) 以右表为基准,将左表中的信息匹配进去,如果左表无对应值,则以空值显示。

    · 用法:

    SELECT 字段1,字段2,字段3,…… FROM 表名1 RIGHT JOIN 表名2 ON 关联条件;

    若去掉右表有而左表为空的部分,在SELECT语句末尾加上"WHERE 表2.关联字段=NULL"

    6、全连接查询

    (由于MySQL不支持,仅作了解)

    · 含义:

    全连接(FULL JOIN)将左表和右表合并。无论哪张表的匹配字段缺少对应值,会以空值填充。

    连接关系总结:

    连接查询的应用案例:

    1. 查询所有学生的学号、姓名、选课数目和总成绩

    2. 查询平均成绩大于85分的所有学生的学号、姓名和平均成绩

    3. 查询学生的选课情况:学号,姓名,课程号,课程名称

    7、Case表达式

    用于解决复杂的查询问题,相当于进行条件判断的函数。

    · 用法:

    CASE WHEN <判断表达式> THEN <表达式>
         WHEN <判断表达式> THEN <表达式>
         WHEN <判断表达式> THEN <表达式>
         …
         ELSE <表达式>
    END;

    ELSE可以不写,默认为空值,但就完整性而言建议写上。

    应用案例:

    1. 查询出每门课程的及格人数和不及格人数。

    2. 使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计各分段人数:课程ID和课程名称

    习题:

    习题总结:

    在习题中的第8、11、13题遇到问题。

    第8题:首先没读懂题目,“被进球”没理好思路。其次是没想过查重的问题。

    第11和13题:GROUP BY的联合分组使用掌握不好。

    查看全文
  • 相关阅读:
    Solr与Lucene的区别
    查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)
    按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分
    按各科平均成绩从低到高和及格率的百分数从高到低顺序
    设计模式
    查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
    什么是Session共享?请举出使用场景
    vue中监听路由参数变化
    获取DOM元素到页面顶部的距离,亲测有效版本(转载)
    css页面滚动条出现时防止页面跳动的方法
  • 原文地址:https://www.cnblogs.com/bruce1992/p/15196049.html
  • 最新文章
  • nginx多server配置记录
    shell脚本批量推送公钥
    centos7网络配置方法
    Keepalived脑裂
    centos7个人shell编写环境
    centos7中mail实测(qq邮箱)
    centos7操作记录
    Advanced Installer 打包程序
    C#如何调用以管理员身份运行的cmd命令提示符
    在AspNetCore中json序列化日期格式自定义
  • 热门文章
  • git 的使用笔记
    ASP.NET Core 使用Redis 存储Session 实现共享 Session
    iis反向代理tomcat
    C# 使用 quartz.net 做定时任务
    C# 使用 Topshelf 创建Windows服务
    C# PDFLibNet PDF转JPG
    Navicat Premium 12.1.20 最新版激活工具及方法
    SpringMVC接收前端传值有哪些方式?
    Solr
    Lucene如何实现多条件搜索?
Copyright © 2011-2022 走看看

聚圣源店铺取名起名大全评分xampp睿字和什么字搭配起名字新的领导班子个人日志七个人无cd皮肤管理工作室起名字牛年男宝宝起名债权融资无人机公司起名奇思妙想喜羊羊西南航空专修学院xnjd如意起名网刘能赵四打架三界劳改局个人独资企业名称工程造价软件宝宝在线起名网免费取名魔兽世界appNBA直播篮球在线直播公司起名字大全免费打分中华医用器械网姓氏三才五格起名在线起名你看那盛放的花带着期盼的种子起名8笔画的汉字7t7t.com1970年4月24日起名字打分100分的众字开头公司起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化