MySQL 中的常用表表示式

Preet Sanghavi 2023年1月30日 2022年5月13日
  1. 使用 INSERT 語句在 student_datesstudent_details 表中插入條目
  2. MySQL 中的常用表表示式
MySQL 中的常用表表示式

本教程旨在瞭解如何在 MySQL 中使用公用表表示式。

大多數資料分析師需要儲存不同查詢的結果,以便將它們與單獨的查詢合併。在公用表的幫助下,表示式可以成為可能。這些有時也被稱為 WITH 子句。

讓我們嘗試更深入地理解這一點。

但是,在開始之前,我們建立兩個虛擬表來工作。在這裡,我們建立了一個表 student_dates 以及幾行。

-- create the table student_dates
CREATE TABLE student_dates(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

同樣,我們可以使用以下查詢建立表 student_details 和一些已定義的行。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);

使用 INSERT 語句在 student_datesstudent_details 表中插入條目

student_dates 建立一個具有該名稱的表以建立一個具有該名稱的表。

現在在 INSERT 語句的幫助下,讓我們嘗試為一些學生新增資料。此操作可按如下方式進行:

-- insert rows to the table student_dates
INSERT INTO student_dates(stu_firstName,stu_date) 
 VALUES("Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 ("Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 ("Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 ("Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 ("Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

上面的程式碼可以在 student_dates 中輸入學生資料。以下命令可以使用以下命令視覺化此表:

SELECT * from student_dates;

上述程式碼塊將生成以下輸出:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

同樣,讓我們​​在 student_details 表中插入值可以在以下查詢的幫助下完成。

-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

student_details 表可以在以下查詢的幫助下視覺化。

SELECT * from student_details;

輸出:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

MySQL 中的常用表表示式

現在讓我們試著理解 WITH 子句。

我們可以使用這個子句來合併兩個表並獲取學生的名字和日期。這兩個表可以在充當主鍵的 stu_id 的幫助下進行匹配。

可以使用以下查詢執行此操作。

WITH
  cte1 AS (SELECT stu_id, stu_firstName FROM student_details),
  cte2 AS (SELECT stu_id, stu_date FROM student_dates)
SELECT stu_firstName, stu_date FROM cte1 JOIN cte2
WHERE cte1.stu_id = cte2.stu_id;

上一個查詢將為我們提供以下輸出。

stu_firstName	stu_date
Preet			2005-05-24
Rich			2001-06-14
Veron			2020-12-13
Geo				2003-05-14
Hash			2002-07-19

從上面的程式碼塊中,stu_firstName 列在 stu_id 列的幫助下與相關的 stu_date 匹配。

因此,在 WITH 子句的幫助下,我們可以有效地編寫公共表表示式來將查詢儲存在特定變數中,以便以後在 MySQL 中使用。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

相關文章 - MySQL Query