MySQL 中的常用表表达式
本教程旨在了解如何在 MySQL 中使用公用表表达式。
大多数数据分析师需要存储不同查询的结果,以便将它们与单独的查询合并。在公用表的帮助下,表达式可以成为可能。这些有时也被称为 WITH
子句。
让我们尝试更深入地理解这一点。
但是,在开始之前,我们创建两个虚拟表来工作。在这里,我们创建了一个表 student_dates
以及几行。
-- create the table student_dates
CREATETABLEstudent_dates(stu_idint,stu_firstNamevarchar(255)DEFAULTNULL,stu_datedate,primarykey(stu_id));
同样,我们可以使用以下查询创建表 student_details
和一些已定义的行。
-- create the table student_details
CREATETABLEstudent_details(stu_idint,stu_firstNamevarchar(255)DEFAULTNULL,stu_lastNamevarchar(255)DEFAULTNULL,primarykey(stu_id));
使用 INSERT
语句在 student_dates
和 student_details
表中插入条目
student_dates
创建一个具有该名称的表以创建一个具有该名称的表。
现在在 INSERT
语句的帮助下,让我们尝试为一些学生添加数据。此操作可按如下方式进行:
-- insert rows to the table student_dates
INSERTINTOstudent_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*fromstudent_dates;
上述代码块将生成以下输出:
stu_idstu_firstNamestu_date1Preet2005-05-242Dhruv2001-06-143Mathew2020-12-134Jeet2003-05-145Steyn2002-07-19
同样,让我们在 student_details
表中插入值可以在以下查询的帮助下完成。
-- insert rows to the table student_details
INSERTINTOstudent_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*fromstudent_details;
输出:
stu_idstu_firstNamestu_lastName1PreetSanghavi2RichJohn3VeronBrow4GeoJos5HashShah6SachinParker7DavidMiller
MySQL 中的常用表表达式
现在让我们试着理解 WITH
子句。
我们可以使用这个子句来合并两个表并获取学生的名字和日期。这两个表可以在充当主键的 stu_id
的帮助下进行匹配。
可以使用以下查询执行此操作。
WITHcte1AS(SELECTstu_id,stu_firstNameFROMstudent_details),cte2AS(SELECTstu_id,stu_dateFROMstudent_dates)SELECTstu_firstName,stu_dateFROMcte1JOINcte2WHEREcte1.stu_id=cte2.stu_id;
上一个查询将为我们提供以下输出。
stu_firstNamestu_datePreet2005-05-24Rich2001-06-14Veron2020-12-13Geo2003-05-14Hash2002-07-19
从上面的代码块中,stu_firstName
列在 stu_id
列的帮助下与相关的 stu_date
匹配。
因此,在 WITH
子句的帮助下,我们可以有效地编写公共表表达式来将查询存储在特定变量中,以便以后在 MySQL 中使用。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。