栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库相关问题

数据库相关问题

文章目录
  • 一、排序的窗口函数
  • 二、IN 和 EXISTS 区别
  • 三、索引
  • 四、连接


一、排序的窗口函数
  1. row_number(): 1,2,3
    依次排序,在排序时序号连续不重复。
  2. rank(): 1,1,3
    并列跳跃排名,并列即相同的值保留重复名次。遇到下一个不同值时,跳跃到总共的排名。
  3. DENSE_RANK(): 1,1,2
    组内的数据按ORDER BY子句排序,然后给每一行赋一个序号,形成一个序列。该序列从1开始,每次ORDER BY表达式的值发生变化时,该序列的序号值也随之增加。如果有值相同的话,序号也是相同的(认为null时相等的)。
    序列返回时序号无间隔。
二、IN 和 EXISTS 区别
  1. 内外表查询
    (1) IN先执行内表查询获取结果集,然后对外表查询匹配结果集,返回数据。
    (2)EXISTS先执行外表查询,将外表中的每一条数据代入内表查询中,看是否满足条件。
    EXISTS返回的结果是一个 boolean 值 true 或者 false ,而不是某个结果集。因为它不关心返回的具体数据是什么,只是外层查询需要拿这个布尔值做判断。
  2. 索引
    IN在内表查询和外表查询中都会用到索引,EXISTS只在内表查询中使用索引。
  3. 效率
    如果外表较小,子查询的结果集较大时,使用EXISTS,效率高
    如果外表较大,子查询的结果集较小时,使用IN,效率更高
  4. not in 和not exists
    not exists的效率比not in的效率高,与子查询的结果集无关。
    not in对内外表都进行了全表扫描,没有用到索引。not exists对内表使用了索引。
三、索引 四、连接

将两个表的数据连接在一起。

  1. 外连接
    左外连接:根据左表的记录,在被连接的右表中找出符合条件的记录与之匹配,
    如果找不到与左表匹配的,用null表示。
    右外连接:显示右表所有数据及左表中符合条件的记录,左边不符合条件的记录用null表示。
  2. 内连接
    两表中符合条件的记录。
  3. 交叉连接
    使用笛卡尔积的连接。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号