FROM in SQL (FROM in SQL), Lektion, Seite 722402
https://www.purl.org/stefan_ram/pub/from_sql_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

»FROM« in SQL 

Vorbereitung

Als Vorbereitung auf Eingaben zum Abfragen eines Tabellenspeichers legen wir hier zunächst einen Tabellenspeicher an. Die folgenden Zeilen können in einem Schritt über die Zwischenablage in den Monitor kopiert werden.

Skript (MySQL )
DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE T ( I VARCHAR ( 255 ));

Abfragespezifikationen

Konsole (MySQL, E92, C99, C03)
SELECT * FROM T;
Empty set (0.08 sec)
Aussprachehinweis
from frʌm > frəm

Eine einfache Abfragespezifikation beginnt mit »SELECT * FROM«. Nach dem Schlüsselwort »FROM« muß dann eine Angabe eines Speichernamens, wie beispielsweise »T«, folgen.

Diese Angabe eines Speichernamens muß oft mit Leerraum von dem Schlüsselwort »FROM« getrennt werden, damit nicht beide zu einem Worte verschmelzen.

Der Wert dieser Abfragespezifikation ist die Tabelle in dem Speicher »T«. Da dieser Speicher derzeit noch leer ist, wird »Empty set« ausgegeben.

Dieses Ergebnis wird bei der oben dargestellte Eingabe der Abfrage in die Konsole auch ausgegeben, wie man sieht. Eine Abfragespezifikation dient daher in SQL  auch zur Ausgabe  von Informationen.

Abfrageausdruck (vereinfacht)
     .------.      .-.      .----.     .------------.
--->( SELECT )--->( * )--->( FROM )--->| Bezeichner |--->
'------' '-' '----' '------------'
Tabellenname

Es wird die Tabelle verwendet, die sich unter dem angegebenen Namen (wie »T«) in dem Schema befindet, das zuletzt mit »USE« eingestellt wurde, also in »S«.

Klauseln

Ein Teil eines SQL-Anweisung, der mit einem Schlüsselwort beginnt, wird auch Klausel  genannt.

Eine Klausel  ist ein Teil eines Quelltextes, der durch ein bestimmtes Wort (das oft von einem englischen Verb oder einer englischen Präposition abgeleitet wurde) eingeleitet wird, welches der Klausel ihren Namen gibt. (Sie entspricht einer Verbal- oder Präpositionalphrase der englischen oder deutschen Sprache.)

»FROM« leitet im vorigen Abschnitt die FROM-Klausel »FROM T« ein. Sie wird mit dem Schlüsselwort »FROM« eingeleitet und bildet hier den sogenannte „Tabellenausdruck“ der Abfrage.

Hieraus ergibt sich die Bedeutung der FROM-Klausel: Sie legt fest, welcher Tabellenspeicher abgefragt wird.

Eine Anweisung
SELECT * FROM T;
Die SELECT-Klausel der Anweisung
SELECT *
Die FROM-Klausel der Anweisung
FROM T

Die Klausel »SELECT *« wird später erklärt werden.

Übungsaufgaben

/   Tabellenspeicher anlegen und sichten

Kopieren Sie das folgende Skript (zwei Zeilen) in die Konsole und lassen Sie es dort ausführen.

Skript (MySQL )
DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( K VARCHAR ( 255 ));

Das Skript hat einen Tabellenspeicher namens »LISTE« angelegt.

Geben Sie dann eine Abfrage ein, um den Inhalt jenes Speichers auszugeben!

Hinweis: Da der Speicher »LISTE« leer ist, sollte bei der richtigen Abfrage die Ausgabe »Empty set« erscheinen.

Abfrage und Anweisungen *

Nach einem Normentwurf von 2010 ist »SELECT * FROM T« ohne das Semikolon sowohl eine Anweisung als auch eine Abfrage, mit einem nachgestellten Semikolon zusammen aber nur eine Anweisung. Die genauen Bezeichnungen kann der interessierte Leser aus einem weiter unten stehenden Zitat entnehmen. In der Praxis kann man eine alleinstehende SELECT-Abfrage sowohl als eine Abfrage als auch als eine Anweisung bezeichnen, wahrscheinlich ist die Bezeichnung als „Abfrage“ üblicher.

Aussprachehinweis *

query /ˈkwɪɚ i/

Zitate aus der Norm *

9075-2 7.4 (Entwurf von 2010, vereinfacht)*

<table expression> ::= <from clause>
<from clause> ::= FROM <table reference list>
<table reference list> ::= <table reference> [ { <comma> <table reference> }... ]
<table reference> ::= <table factor>
<table factor> ::= <table primary>
<table primary> ::= <table or query name>

9075-2 7.12 (Entwurf von 2010, vereinfacht)*

<query specification> ::= SELECT <select list> <table expression>
<select list> ::= <select sublist> [ { <comma> <select sublist> }... ]
<select sublist> ::= <derived column>
<derived column> ::= <value expression>

9075-2 7.13 (Entwurf von 2010, vereinfacht)*

<query expression> ::= <query specification>

9075-2 14.1 (Entwurf von 2010, vereinfacht)*

<cursor specification> ::= <query expression> [ <order by clause> ]

9075-2 21.2 (Entwurf von 2010, vereinfacht)*

<direct select statement: multiple rows> ::= <cursor specification>
<direct SQL data statement> ::= | <direct select statement: multiple rows>
<directly executable statement> ::= <direct SQL data statement>
<direct SQL statement> ::= <directly executable statement> <semicolon>

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 stefanram722402 stefan_ram:722402 FROM in SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722402, slrprddef722402, 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/from_sql_de