Lektion zu einzelnen Tabellen in MySQL (Einzelne Tabellen in MySQL), Lektion, Seite 722369
https://www.purl.org/stefan_ram/pub/einzelne_tabelle_in_mysql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Lokale Namen für Tabellen in SQL  (MySQL )

Vorbereitung

Konsole (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;

CREATE TABLE STADT
( STADT VARCHAR ( 255 ), BEZEICHNUNG VARCHAR ( 255 ), LAND VARCHAR ( 255 ));

INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '1', 'Paris', '1' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '2', 'Marseille', '1' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '3', 'Lyon', '1' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '4', 'Rom', '2' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '5', 'Mailand', '2' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '6', 'Neapel', '2' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '7', 'Tokio', '3' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '8', 'Yokohama', '3' );
INSERT INTO STADT ( STADT, BEZEICHNUNG, LAND ) VALUES ( '9', 'Osaka', '3' );

CREATE TABLE LAND ( LAND VARCHAR ( 255 ), BEZEICHNUNG VARCHAR ( 255 ));

INSERT INTO LAND ( LAND, BEZEICHNUNG ) VALUES ( '1', 'Frankreich' );
INSERT INTO LAND ( LAND, BEZEICHNUNG ) VALUES ( '2', 'Italien' );
INSERT INTO LAND ( LAND, BEZEICHNUNG ) VALUES ( '3', 'Japan' );

CREATE TABLE ZIFFER ( SPALTENNAME VARCHAR ( 255 ));

INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '0' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '1' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '2' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '3' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '4' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '5' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '6' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '7' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '8' );
INSERT INTO ZIFFER ( SPALTENNAME ) VALUES ( '9' );

SELECT * FROM STADT;

SELECT * FROM LAND;

SELECT * FROM ZIFFER;

AS-Klauseln

as ” (englisch) Aussprache: /æz/ > /əz/, deutsch: „als“

alias ” (englisch) Aussprache: /ˈe li əs/

Konsole (MySQL, E92, C99, C03)
SELECT * FROM STADT;
+-------+-------------+------+
| STADT | BEZEICHNUNG | LAND |
+-------+-------------+------+
| 1 | Paris | 1 |
| 2 | Marseille | 1 |
| 3 | Lyon | 1 |
| 4 | Rom | 2 |
| 5 | Mailand | 2 |
| 6 | Neapel | 2 |
| 7 | Tokio | 3 |
| 8 | Yokohama | 3 |
| 9 | Osaka | 3 |
+-------+-------------+------+

Lyon /lijɔ̃/

Konsole (MySQL, E92, C99, C03)
SELECT BEZEICHNUNG FROM STADT;
+-------------+
| BEZEICHNUNG |
+-------------+
| Paris |
| Marseille |
| Lyon |
| Rom |
| Mailand |
| Neapel |
| Tokio |
| Yokohama |
| Osaka |
+-------------+
Konsole (MySQL, T92, C99, C03)
SELECT BEZEICHNUNG FROM STADT AS ORT;
+-------------+
| BEZEICHNUNG |
+-------------+
| Paris |
| Marseille |
| Lyon |
| Rom |
| Mailand |
| Neapel |
| Tokio |
| Yokohama |
| Osaka |
+-------------+

Die AS-Klausel direkt hinter dem Tabellennamen legt einen neuen Namen »ORT« für die Tabelle mit diesem Tabellennamen fest.

In der Ausgabe sieht man keinen Unterschied zur Ausgabe ohne die AS-Klausel, weil der Tabellenname bei der Ausgabe normalerweise nicht mit ausgegeben wird.

Diese AS-Klausel direkt hinter dem Tabellennamen bezieht sich auf die Tabelle und nicht auf eine der Spalten!

Die Umbenennung einer Tabelle ersetzt den bisherigen Tabellennamen durch einen neuen. Der bisherige Tabellenname kann danach nicht  mehr verwendet werden, um sich auf die Tabelle zu beziehen.

Konsole (MySQL, E92, C99, C03)
SELECT BEZEICHNUNG FROM STADT;
+-------------+
| BEZEICHNUNG |
+-------------+
| Paris |
| Marseille |
| Lyon |
| Rom |
| Mailand |
| Neapel |
| Tokio |
| Yokohama |
| Osaka |
+-------------+

Lyon /lijɔ̃/

Konsole (MySQL, T92, C99, C03)

SELECT STADT.BEZEICHNUNG FROM STADT AS ORT;

ERROR 1054 (42S22): Unknown column 'STADT.BEZEICHNUNG' in 'field list'

Konsole (MySQL, T92, C99, C03)
SELECT ORT.BEZEICHNUNG FROM STADT AS ORT;
+-------------+
| BEZEICHNUNG |
+-------------+
| Paris |
| Marseille |
| Lyon |
| Rom |
| Mailand |
| Neapel |
| Tokio |
| Yokohama |
| Osaka |
+-------------+
Konsole (MySQL, T92, C99, C03)
SELECT ORT.BEZEICHNUNG FROM STADT;
ERROR

Lyon /lijɔ̃/

Man beachte, daß der neue Name einer Tabelle in der SELECT-Klausel verwendet werden, obwohl seine Definition im Text der Abfrage erst später  in der FROM-Klausel folgt.

Die Umbennennung kann verwendet werden, um einen langen Tabellennamen für die wiederholte Verwendung in einer Abfrage abzukürzen. (In dem folgenden Beispiel wäre die Qualifikation aber nicht nötig.)

Konsole (MySQL, T92, C99, C03)
SELECT S.STADT, S.BEZEICHNUNG, S.LAND FROM STADT AS S;
+-------+-------------+------+
| STADT | BEZEICHNUNG | LAND |
+-------+-------------+------+
| 1 | Paris | 1 |
| 2 | Marseille | 1 |
| 3 | Lyon | 1 |
| 4 | Rom | 2 |
| 5 | Mailand | 2 |
| 6 | Neapel | 2 |
| 7 | Tokio | 3 |
| 8 | Yokohama | 3 |
| 9 | Osaka | 3 |
+-------+-------------+------+

Der neue Name wird aber nur innerhalb der Abfrage  für die Tabelle festgelegt. Der Name der verwendeten Basistabelle wird nicht dauerhaft  verändert.

Das folgende Beispiel zeigt die Vergabe neuer Namen für mehrere Tabellen.

Konsole (MySQL, T92, C99, C03)
SELECT S.BEZEICHNUNG, L.BEZEICHNUNG FROM STADT AS S, LAND AS L WHERE S.LAND = L.LAND;
+-------------+-------------+
| BEZEICHNUNG | BEZEICHNUNG |
+-------------+-------------+
| Paris | Frankreich |
| Marseille | Frankreich |
| Lyon | Frankreich |
| Rom | Italien |
| Mailand | Italien |
| Neapel | Italien |
| Tokio | Japan |
| Yokohama | Japan |
| Osaka | Japan |
+-------------+-------------+

Lyon /lijɔ̃/

Das folgende Beispiel zeigt, daß »AS« auch weggelassen werden kann.

Konsole
SELECT S.BEZEICHNUNG, L.BEZEICHNUNG FROM STADT S, LAND L WHERE S.LAND = L.LAND;
+-------------+-------------+
| BEZEICHNUNG | BEZEICHNUNG |
+-------------+-------------+
| Paris | Frankreich |
| Marseille | Frankreich |
| Lyon | Frankreich |
| Rom | Italien |
| Mailand | Italien |
| Neapel | Italien |
| Tokio | Japan |
| Yokohama | Japan |
| Osaka | Japan |
+-------------+-------------+

Kartesisches Produkt einer Tabelle mit sich selbst

Das kartesische Produkt der 10 Ziffern mit sich selbst ergibt alle Zahlen von 0 bis 99.

Konsole (MySQL, E92, C99, C03)
SELECT * FROM ZIFFER;
+-------------+
| SPALTENNAME |
+-------------+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+-------------+
SELECT * FROM ZIFFER AS A, ZIFFER AS B;
+-------------+-------------+
| SPALTENNAME | SPALTENNAME |
+-------------+-------------+
| 0 | 0 |
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 0 |
| 0 | 1 |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 0 | 2 |
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2 |
| 5 | 2 |
| 6 | 2 |
| 7 | 2 |
| 8 | 2 |
| 9 | 2 |
| 0 | 3 |
| 1 | 3 |
| 2 | 3 |
| 3 | 3 |
| 4 | 3 |
| 5 | 3 |
| 6 | 3 |
| 7 | 3 |
| 8 | 3 |
| 9 | 3 |
| 0 | 4 |
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 4 |
| 5 | 4 |
| 6 | 4 |
| 7 | 4 |
| 8 | 4 |
| 9 | 4 |
| 0 | 5 |
| 1 | 5 |
| 2 | 5 |
| 3 | 5 |
| 4 | 5 |
| 5 | 5 |
| 6 | 5 |
| 7 | 5 |
| 8 | 5 |
| 9 | 5 |
| 0 | 6 |
| 1 | 6 |
| 2 | 6 |
| 3 | 6 |
| 4 | 6 |
| 5 | 6 |
| 6 | 6 |
| 7 | 6 |
| 8 | 6 |
| 9 | 6 |
| 0 | 7 |
| 1 | 7 |
| 2 | 7 |
| 3 | 7 |
| 4 | 7 |
| 5 | 7 |
| 6 | 7 |
| 7 | 7 |
| 8 | 7 |
| 9 | 7 |
| 0 | 8 |
| 1 | 8 |
| 2 | 8 |
| 3 | 8 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
| 7 | 8 |
| 8 | 8 |
| 9 | 8 |
| 0 | 9 |
| 1 | 9 |
| 2 | 9 |
| 3 | 9 |
| 4 | 9 |
| 5 | 9 |
| 6 | 9 |
| 7 | 9 |
| 8 | 9 |
| 9 | 9 |
+-------------+-------------+

Übungsfragen

?   Kartesisches Produkt ermitteln

Es gebe zwei Tabellen »A« und »N« gemäß der folgenden Auflistung.

Wie lauten die Zeilen des kartesischen Produktes »SELECT * FROM A, A AS B;«?

Wie lauten die Zeilen des kartesischen Produktes »SELECT * FROM N, N AS M;«

Konsole
SELECT * FROM A;
+------+
| A |
+------+
| X |
| Y |
+------+
SELECT * FROM N;
+------+
| N |
+------+
| 1 |
+------+

Übungsaufgabe ⃖

?   Kartesisches Produkt ermitteln ⃖

Schreiben Sie Eingaben um die beiden Tabellen der vorangehenden Übungsfrage anzulegen und um die vier kartesischen Produkte der vorangehenden Übungsfrage auszugeben.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722369 stefan_ram:722369 Einzelne Tabellen in MySQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722369, slrprddef722369, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/einzelne_tabelle_in_mysql