[Day5]DML语句中的命令:SELECT语句

https://ithelp.ithome.com.tw/upload/images/20210920/20140915DBAsF6rOb9.png
SELECT是SQL的DQL语句中的命令,功能分别有

  • 检索资料
  • 表格合并
  • 函数等,基本格式如下:
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915LJR8TnNyO1.png

而使用SELECT语句检索资料的方法有三种:

  • 投射(Projection)
    https://ithelp.ithome.com.tw/upload/images/20210920/201409159Xz9cjgYvD.png
  • 选择(Selection)
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915mSroOgO2Y3.png
  • 合并(Join),合并又分成三种,分别是自然合并、自我合并和外部合并。
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915jxk5he2Uqf.png
    合并的基本观念:
  1. 当两个以上的资料表具有相同名称栏位时,需要在SELECT子句的栏位前加上资料表名称。
  2. 大部分合并查询会包含一个重复合并条件,可放在FROM或WHERE子句。
  3. 合并时,会依条件将相同属性的资料俩俩结合。
  4. 比较条件内的栏位不一定要出现在SELECT子句中。
  5. 包含比较条件的WHERE子句可同时包含用来缩小查询范围的其他限制条件,限制资料列的数量。

自然合并(NATURE JOIN)
https://ithelp.ithome.com.tw/upload/images/20210920/20140915svkj3ELHRL.png

  1. 栏位内容相同的资料会合并成一笔资料,所以两表中相同的名称,资料类型也要相同。
  2. 只能合并两张表。
  3. 如输入条件式,WHERE子句一定要在最後输入。

JOIN…USING…子句合并资料表,使用时机:合并的两个资料表有多个栏位名称相同,资料类型却不同时。
https://ithelp.ithome.com.tw/upload/images/20210920/20140915Qt0sQ1PMSP.png

  1. 一个USING子句仅能比对一个栏位。
  2. 不能再输入其他条件。
  3. USING子句和NATURAL JOIN子句不可同时出现。
  4. 如要合并多张表时,JOIN子句要分开输入。

JOIN…ON…子句合并资料表,使用时机:指定合并比较栏位时。
https://ithelp.ithome.com.tw/upload/images/20210920/20140915DbDW9tnm9F.png

  1. 可不含有同名或是同类别的栏位。
  2. 使用ON子句可将多个资料表依指定栏位及合并条件合并,不同的合并条件需个别独立。

外部合并:OUTER JOIN
https://ithelp.ithome.com.tw/upload/images/20210920/201409156MHAEDdrmt.png

  1. 把未符合比较条件的资料栏合并到目标资料列。
  2. 左外部合并:将不符合的左侧资料栏并入目标资料列。
  3. 右外部合并则反之。
  4. 全外部合并:将资料表1、2所有符合的资料结合,且保留未匹配的左右两侧栏位,并在不符合的那一侧填入空值。

下一篇则会实际运用使用SELECT语句检索资料并列出结果!


<<:  Day 5— 自动化回信机(2) 读取试算表内容

>>:  Router

Day12,YAML Engineer 初登板

正文 今天准备来将Day04、Day06的东西布署上来。 先写个namespace的yaml之後,东...

Day 3:建立专案(一)

软件专案通常由许多程序码档案以及资源档组成,C++ 专案透过编译、连结产生各平台的可执行档。多数专案...

Day-23 Toast

本篇的主角是Toast, 但这边的Toast并非吐司的意思, 而是显示讯息, 常用於提示或警示使用者...

Day 15 云安全中心 & 云防火墙

在网路不断蓬勃发展的现今,资讯化逐渐与生活上的所有脱离不了关系,带来便利与高效率的生产及生活模式,...

在AI的时代追求人性:写在最後

不可思议,我竟然写到了最後一天了!! 想当初最开始知道铁人赛, 是看了邦友Leo大大的「深入浅出An...