欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库系统2:SQL数据查询

程序员文章站 2024-03-17 13:52:16
...

1、单关系查询

重点

  • 优先级:NOT>AND>OR
  • 涉及到空值的查询条件只能使用is/is not,不能使用=、!=、<>等。
  • DISTINCT作用范围是所有目标属性,只能出现一次。
  • ORDER BY只能用于对最终结果进行排序,不能对中间结果排序。
  • ORDER BY只能出现在查询语句的最后。
  • 聚集函数不能出现在where子句里。
  • select子句的目标属性只能包含分组属性和聚集函数;
  • havingz子句的分组筛选条件允许出现聚集函数
  • where、group by、having的执行顺序:
    - where子句从from子句中给定的关系选择满足查询条件的元组
    - group by子句对where子句过滤后得到的元组进行分组
    - having对分组内的元组进行筛选;

1.1 投影操作

不去除重复元组(与关系代数投影操作不同)。
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询

1.2 重命名操作

数据库系统2:SQL数据查询

1.3 查询满足条件的元组

数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询

1.4 集合操作

数据库系统2:SQL数据查询

1.5 分组聚集查询

数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
数据库系统2:SQL数据查询

2、连接查询

若一个查询同时涉及到两个或两个以上的关系的连接,则叫做连接查询;

  • inner join =join
  • left outer join=left join
  • right outer join=right join;

2.1 内连接

//笛卡尔积+选择方式
select 属性 from1,表2... where 条件;
//ANSI连接方式
select 属性 from1 [inner] join2 on 连接条件;
//等值连接且连接属性名相同时
select 属性 from1 [inner] join2 using 连接属性列表;

2.2 外连接

外连接分为:

  • 左外连接(left outer join)
  • 右外连接(right outer join)
  • 全外连接(full outer join)

数据库系统2:SQL数据查询
数据库系统2:SQL数据查询
FULL OUTER JOIN产生1和2的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。
数据库系统2:SQL数据查询

2.3 自然连接

自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,

2.4 自连接

  • 语法与连接相同
  • 属性名前必须使用别名做前缀
  • 必须为关系取别名

3、嵌套查询

数据库系统2:SQL数据查询
数据库系统2:SQL数据查询

4、视图

相关标签: 数据库系统

上一篇: PromQL查询

下一篇: SQL数据查询