【Day 13】MySQL Basics II

啊啊啊啊啊啊啊啊啊 我打了老半天结果不小心按到上一页
说好的自动储存呢QQQQQQQQQQQQQQQQQQQ
崩溃
时间快到了... 我一千多字都没ㄌQQ 崩溃
先上 placeholder... 乾

本篇有 3 sections:
6. Subqueries
7. Common Table Expressions
8. Set operators (Union 那些)

6. Subqueries

Subquery

  • correalted subquery:subquery 与 outer select 有关。
  • 配合 EXISTS()

之前这边打了一些东西,但忘了QQ

Derived table

https://ithelp.ithome.com.tw/upload/images/20210929/20131394nfiChiGtZJ.png
文章提供了一些比较复杂的使用案例

EXISTS

  • EXISTS(subquery):有一个 record 就回传 True,所以比起去 join 等效能好。
  • select 什麽不是重点,毕竟会有几条 record 是後面 from where 等决定
  • 放在 WHERE 後面当过滤条件
  • 大部分时候,EXISTSIN
    可以用 EXISTS 就不要用 IN

例子:把没有 order 的 customer reocrds 移入 customer_archive table

  1. 先建立新表 customers_archive,并复制「没有 order 的 customer」过去
INSERT INTO customers_archive
SELECT * 
FROM customers
WHERE NOT EXISTS( 
   SELECT 1
   FROM
       orders
   WHERE
       orders.customernumber = customers.customernumber
);
  1. 删除已经复制过去 archive 的 customer 纪录
DELETE FROM customers
WHERE EXISTS( 
    SELECT 
        1
    FROM
        customers_archive a
    
    WHERE
        a.customernumber = customers.customerNumber);

7. Common Table Expressions

CTE

Recursive CTE

8. Set operators

UNION and UNION ALL

INTERSECT

MINUS


<<:  第二十三天:再探 Gradle Plugin

>>:  [Day 17] 第一主餐 pt.9-战前准备

网格交易机器人第一天测试纪录

感觉还是有bug,他会一直买停不下来,可能要再找一两天请假来盯着机器人,然後上线前下单的金钱限制要设...

用 Python 畅玩 Line bot - 07:Audio message

这次想要介绍的部分是 Audio message,它跟 Image message 一样可以透过li...

[ Day 19 ] - 箭头函式

这边先简单介绍前面有用到的函式陈述式和函式表达式 函式陈述式:特性是放在宣告的 function 前...

[Day 4]餐前浓汤-Vagrant环境设定及BeautifulSoup安装

昨天我们介绍了Python跟Vagrant这两个东东是干啥的 以及这两个东东如何安装 今天我们会把剩...