SQL查询数据库对象

191 阅读3分钟

一、如何查询:

1、语句格式: image.png 2、关键字解析:

  • select:指定要显示的属性列
  • distinct:去掉重复的行
  • all:没去掉重复的行,显示原本查询结果
  • from:指定查询对象(基本表/视图)
  • where:指定查询条件(基于基表/视图)
  • escape:指明换码字符
  • group by:将属性列值相等的元组分为一个组
    • 细化聚集函数的作用对象
  • having:只有满足指定条件的组才能输出(基于组,过滤出满足条件的结果进行显示)
  • order by:对查询结果按指定列的值进行排序(升序ASC/降序DESC)
    • 空值由具体系统实现来决定显示顺序
  1. 常用的查询条件:
  • 确定范围:(not) between and
  • 确定集合:(not) in
  • 匹配字符:(not) like
    • %:代表任意长度
    • _:代表任意单个字符
  • 空值:is (not) null
  • 多重条件:and>not>or(优先级排序)

二、单表查询:

  1. 特点:
    • 查询仅涉及一个表
  2. 语法补充:
    • 可在显示结果中添加值相同的列:加''
    • 可对查询结果进行处理:写成表达式
    • 改列的名字:在列名后添加别名
  3. 聚集函数:
    • count():统计元组个数
    • sum():计算总和
    • avg():计算平均值
    • max()/min():最大、最小值

三、连接查询

  1. 特点:
    • 同时涉及两个以上的表的查询
  2. 等值与非等值连接查询
    • 连接操作执行过程:
      • 先在表1里找到第一个元组,然后从头开始遍历表2,逐一查找满足连接件的元组,将找到的元组与表1的元组拼接起来形成结果表中的一个元组
      • 表2查找完毕后重新在表1中找第二个元组,重复第一步操作
      • 重复上述操作,直到表1的全部元组处理完毕
  3. 自身连接:
    • 是什么:
      • 一个表与其自己进行连接
    • 特点:
      • 需要给表起别名以示区别
  4. 外连接:
    • 左外连接、右外连接
  5. 多表连接:
    • 是什么:
      • 两个以上的表进行连接

四、嵌套查询

  1. 是什么:
    • 将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询
  2. 相关概念
    • 外层查询/父查询
    • 内层查询/子查询
      • 不能用order by
  3. 相关谓词:
    • in,any,all,(not) exist

五、集合查询

  1. 种类:
    • 并操作union
      • 系统会自动去除重复元组,但如果加上all就会保留重复元组
    • 交操作intersect
    • 差操作expect
  2. 参与集合查询需满足的条件:
    • 参加集合操作的各查询结果的列数必须相同,对应项的数据类型也必须相同

六、基于派生表的查询

  1. 是什么:
    • 在SQL查询中使用派生表来处理数据(派生表:通过在查询中嵌套使用SELECT语句创建的临时表)