当前位置: 首页 > news >正文

信息可视化网站网络公司排名中国科技企业排行榜

信息可视化网站,网络公司排名中国科技企业排行榜,哈尔滨关键词排名工具,工程承包网站有哪些文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时,一张表不足以查询到我们想要的数据,更多的时候我们需要联表查询。 联表查询我们一般会使用连接…

文章目录

  • 前言
  • where
    • 介绍
    • 使用
      • 过滤结果集
      • 关联两个表
  • 连接
    • 外连接
    • 内连接
    • 自然连接
  • 使用inner join和直接使用where关联两个表的区别
  • 总结

前言

从数据库查询数据时,一张表不足以查询到我们想要的数据,更多的时候我们需要联表查询。

联表查询我们一般会使用连接,如inner join 、left join、right join 和 outer join等,但是个别时候也会使用where,接下来我们了解一下join on和where的区别

  • 我们创建两个表,student和class(忽略数据的多少啊,仅做举例使用)
    在这里插入图片描述

在这里插入图片描述

where

介绍

WHERE 是 SQL 中的一个关键字,用于在查询(如 SELECT、UPDATE 或 DELETE)中指定条件,以过滤出符合特定标准的数据。

  • WHERE 子句可以显著提高查询的效率,因为它限制了数据库处理的数据量。

使用

过滤结果集

  • 条件运算符 和 逻辑运算法的使用

    这里不多说了,不清楚的可以移步这里 →sql专题 之 常用命令

  • where和having的区别

    WHERE 子句只能指定行的条件,而不能指定组的条件
    HAVING 子句可以使用聚合函数,它用来指定组的条件

关联两个表

  • 查询所有的学生的信息包括其班主任名称

    select * FROM student,class WHERE student.class_id = class.id
    

    在这里插入图片描述

    相信这是大多数同学们第一次联表查询老师教的方法。
    通过关联student表中的class_id 和 class表中的id,我们获取了所有的信息。
    要知道from后的“student,class”功能可以说跟inner join一模一样。

  • where也能实现,为什么还有join on呢?

    虽然仅通过where关键字也可以进行联表查询,但是在sql中,还是需要各司其职比较好。毕竟where的定位是过滤筛选结果集。

    where拿手的是筛选,咱就别贪多嚼不烂了,联表查询还是交给join把~

连接

连接花样就多了,有外连接、内连接 和 自然连接

外连接

不仅包含符合连接条件的行,还会包括左表(左连接)、右表(右连接)或两个表中的所有数据行(全外连接)

  • 左连接

    左表为主表,左表中所有记录都会出现在结果集中,如果该行的字段在右表中没有匹配上,那么右表对应的字段以null填充

    select * FROM student left join class on student.class_id = class.id
    

    在这里插入图片描述

    left join 以左边的student表为基准,显示了表中没有class_id的数据,并以null填充。
    这样的好处是:不漏掉student表中任何一个数据

  • 右连接

    右表为主表,右表中所有记录都会出现在结果集中,如果该行的字段在左表中没有匹配上,那么左表对应的字段以null填充

    select * FROM student right join class on student.class_id = class.id
    

    在这里插入图片描述

    right join 以右边的class表为基准,id为4的班级没有学生信息录入,那扔以null填充
    坚决不漏掉class表中任意一个数据

内连接

只连接匹配的行。
即只有条件的交叉连接,会根据某个条件筛选出符合条件的记录。不符合条件的记录不会出现在结果集中

select * FROM student inner join class on student.class_id = class.id

在这里插入图片描述

看,就取这俩表的交集,谁也不特殊照顾~~

自然连接

自然连接是一种特殊的等值连接,它基于两个或多个表之间的共同字段自动进行连接。自然连接会自动选择那些在两个表中具有相同名称和兼容数据类型的字段作为连接条件

  • 两个表没有相同的字段

    select * from student NATURAL JOIN class
    

    如我们上边的表,两个表的字段没有相同的,那么结果就是一个笛卡尔积。运行结果同
    “select * from student cross join class”

  • 两个表有相同的字段

    我们对student表增加一个列“teacher”。
    在这里插入图片描述

    select * from student NATURAL JOIN class
    

    在这里插入图片描述

    这里特意试了一个小陷阱,会发现,在查询结果中,teacher列只出现了一列。说明仅仅是按照字段一模一样来匹配的。

在实际应用中,自然连接的使用相对较少,因为它可能不够灵活,并且可能导致意外的结果。通常,更推荐使用显式的JOIN操作符和ON子句来指定连接条件,这样可以更精确地控制连接行为。

使用inner join和直接使用where关联两个表的区别

  • 实现原理
    • INNER JOIN‌

      使用INNER JOIN时,连接条件放在ON子句中,这是一种显式连接。
      这种方式通过哈希表进行连接比较,效率较高‌。

    • WHERE子句

      使用WHERE子句进行连接时,连接条件放在WHERE子句中,这是一种隐式连接。
      这种方式先生成笛卡尔积,然后再进行过滤,效率较低‌。

  • 性能差异
    • INNER JOIN

      使用哈希表进行连接比较,其时间复杂度为O(LogN),效率较高。

    • WHERE子句‌

      由于先生成笛卡尔积再进行过滤,其时间复杂度为O(N^2),因此效率较低‌。

  • 使用场景
    • INNER JOIN‌

      适用于需要高效连接查询的场景
      特别是在连接条件较为复杂或需要结合多个连接条件时

    • WHERE子句‌

      适用于连接条件较为简单,且不需要显式连接操作的场景
      虽然效率较低,但在某些简单查询中仍然可以使用‌

总结

选择使用join on还是where取决于查询的具体需求和表的连接类型。

在内部连接中,‌join on和where的作用相似,‌可以互换使用。‌但在非内部连接中,‌尤其是使用left join on等连接类型时,‌on用于定义表之间的连接条件,‌而where则用于进一步筛选结果集中的记录。‌

总的来说,联表以后还是用连接查询吧😏😏😏

http://www.yayakq.cn/news/101525/

相关文章:

  • 大学html网站建设作业wordpress判断页面
  • 鹤壁网站seo优化哪位大神推荐一下好网站
  • 专业的内蒙古网站建设中瑞网络网站建设流程
  • 荣耀手机官方网站网页版梦幻西游杨洋兑换码是多少
  • 北京网站开发公司wordpress哪里编辑页脚
  • 微信 网站提成方案点做深圳市光明区
  • 专业行业网站建站报价微商来官网登录
  • 中国电子系统建设公司网站江西建筑人才网
  • 网站怎么增加关键词库wordpress需要安装php模块
  • 永州网站建设如何做电子商务网站的公司
  • asp c 网站开发四川企业网站开发
  • 上海网站建设哪家公司好贵州省住房和城乡建设厅网站
  • php调用网站导航怎么弄wordpress后台分类目录添加自定义
  • 百度云可以做网站吗广告设计月薪多少钱
  • 网站制作公司 全贵州百度推广app下载
  • 雏鸟短视频app软件下载网站网站开发企业标准
  • 网站链接文字手机版企业网站
  • 南阳网站建设赛科虚拟主机搭建网站
  • 焦作网站建设哪家权威品牌建设和品牌打造方法
  • 建设论坛网站自学本地建站工具
  • 宁波好的网站推广软件大型网站常见问题
  • 杭州劳保网站制作惠安网站建设价格
  • 永久免费网站搭建去大连需要下载哪些软件
  • 门户网站建设与开发外贸网站交易平台
  • 电影网站建设模板扬州公司做网站公司
  • 手机网站支付签约大学生创新创业大赛ppt模板
  • 网站的域名分为哪些某网站优化方案
  • 网站团队组成wordpress网站 添加微信
  • 电子商务网站设计的原则和内容百度网盘登录入口 网页
  • 兰州有制作网站常州网站建设公司信息