Gängige Tabellenausdrücke in MySQL
-
Einfügen von Einträgen in die Tabellen
student_dates
undstudent_details
mit derINSERT
-Anweisung - 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.