Gängige Tabellenausdrücke in MySQL

Preet Sanghavi 30 Januar 2023
  1. Einfügen von Einträgen in die Tabellen student_dates und student_details mit der INSERT-Anweisung
  2. Gängige Tabellenausdrücke in MySQL
Gängige Tabellenausdrücke in MySQL

Dieses Tutorial soll verstehen, wie man allgemeine Tabellenausdrücke in MySQL verwendet.

Die meisten Datenanalysten müssen die Ergebnisse verschiedener Abfragen speichern, um sie mit separaten Abfragen zusammenzuführen. Mit Hilfe einer gemeinsamen Tabelle können Ausdrücke ermöglicht werden. Diese werden manchmal auch als WITH-Klausel bezeichnet.

Lassen Sie uns versuchen, dies genauer zu verstehen.

Bevor wir jedoch beginnen, erstellen wir zwei Dummy-Tabellen, um zu arbeiten. Hier erstellen wir eine Tabelle, student_dates, zusammen mit ein paar Zeilen.

-- 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)
);

Ebenso können wir mit der folgenden Abfrage die Tabelle student_details und einige definierte Zeilen erstellen.

-- 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)
);

Einfügen von Einträgen in die Tabellen student_dates und student_details mit der INSERT-Anweisung

Die student_dates erstellt eine Tabelle mit dem Namen macht eine Tabelle mit dem Namen.

Versuchen wir nun, mit Hilfe der INSERT-Anweisung Daten für einige Schüler hinzuzufügen. Dieser Vorgang kann wie folgt durchgeführt werden:

-- 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'));

Der obige Code kann die Studentendaten in student_dates eintragen. der folgende Befehl kann diese Tabelle visualisieren mit:

SELECT * from student_dates;

Der oben genannte Codeblock würde die folgende Ausgabe erzeugen:

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

Lassen Sie uns auf ähnliche Weise Werte in die Tabelle student_details einfügen, indem Sie die folgende Abfrage verwenden.

-- 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");

Die Tabelle student_details kann mit Hilfe der folgenden Abfrage visualisiert werden.

SELECT * from student_details;

Ausgabe:

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

Gängige Tabellenausdrücke in MySQL

Lassen Sie uns nun versuchen, die WITH-Klausel zu verstehen.

Wir können diese Klausel verwenden, um die beiden Tabellen zusammenzuführen und die Vornamen und Daten der Schüler abzurufen. Diese beiden Tabellen können mit Hilfe der als Primärschlüssel dienenden stu_id abgeglichen werden.

Diese Operation kann mit der Verwendung der folgenden Abfrage durchgeführt werden.

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;

Die vorherige Abfrage würde uns die folgende Ausgabe liefern.

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

Aus den obigen Codeblöcken wird die Spalte stu_firstName mit Hilfe der Spalte stu_id mit dem entsprechenden stu_date abgeglichen.

Mit Hilfe der WITH-Klausel können wir also effizient allgemeine Tabellenausdrücke schreiben, um eine Abfrage in einer bestimmten Variable zu speichern, die später in MySQL verwendet werden kann.

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

Verwandter Artikel - MySQL Query