Der Stern in SQL (MySQL) (Der Stern in SQL (MySQL)), Lektion, Seite 722405
https://www.purl.org/stefan_ram/pub/stern_sql_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Der Stern »*« als Auswahlliste in SQL  (MySQL )

Vorbereitung

Die Vorbereitung zu dieser Lektion ist wie bei der vorherigen Lektion. Sie kann daher entfallen, wenn schon die Vorbereitung der vorherigen Lektion eingegeben wurde.

Zum Nachvollziehen der folgenden Beispiele kann das folgende Skript in einen MySQL -Klienten kopiert werden. Der Inhalt dieses Skripts kann aber ansonsten ignoriert werden. Bei Kopieren ist darauf zu achten, nur genau den Text von »DROP« bis zum letzten »;« zu kopieren und dann die Eingabetaste zu drücken.

Skript (MySQL )
DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE ZAHL ( I VARCHAR ( 255 ), DE VARCHAR ( 255 ), EN VARCHAR ( 255 ));
INSERT INTO ZAHL ( I, DE, EN ) VALUES ( '0', 'NULL', 'ZERO' );
INSERT INTO ZAHL ( I, DE, EN ) VALUES ( '1', 'EINS', 'ONE' );
INSERT INTO ZAHL ( I, DE, EN ) VALUES ( '2', 'ZWEI', 'TWO' );
SELECT * FROM ZAHL;

Der Stern »*« als Auswahlliste in SQL  (MySQL )

Konsole (MySQL, E92, C99, C03)
SELECT * FROM ZAHL;
+---+------+------+
| I | DE | EN |
+---+------+------+
| 0 | NULL | ZERO |
| 1 | EINS | ONE |
| 2 | ZWEI | TWO |
+---+------+------+

Der Stern »*« steht an einer Stelle, an der sonst die Namen der zu übernehmenden Spalten stehen würden, und bedeutet, daß alle  Spalten übernommen werden sollen. Beispiele dafür wurde schon in den vorherigen Lektionen gezeigt.

Die Verwendung des Sterns ist natürlich bequem, jedoch wird empfohlen, auf die Verwendung des Sterns zu verzichten, wenn die Abfrage irgendwo dauerhaft gespeichert wird und sichergestellt werden muß, daß genau-bestimmte Spalten in das Ergebnis übernommen werden. Dies kann beispielsweise dann der Fall sein, wenn das Ergebnis automatisch weiterverarbeitet werden soll, und dabei bestimmte Annahmen über die Anzahl, die Namen oder die Reihenfolge der Spalten des Abfrageergebnisses gemacht werden.

Falls die Anzahl oder die Bezeichnung der Spalten der Basistabellenvariablen einmal verändert wird, dann könnte sich dies nämlich bei Verwendung des Sterns so auswirken, daß die Abfrage nun eine andere  Ausgabe erzeugt, ohne  daß es irgendwelche Fehlermeldungen gibt.

Werden die gewünschten Spalten aber alle in der Abfrage aufgezählt, so ändert das Hinzufügen von Spalten zur Basistabellenvariablen nichts  am Ergebnis der Abfrage. Das Umbenennen oder Löschen von Spalten würde dann meist zu einer Fehlermeldung führen, so daß das Problem bemerkt werden kann.

In MySQL  ist es auch möglich, den Stern in einer Auswahlliste mit anderen Spalten zusammen zu verwenden, wenn die Auswahlliste mit dem Stern beginnt. Dies ist jedoch kein  Standard-SQL.

Konsole (MySQL )
SELECT *, DE FROM ZAHL;
+------+------+------+------+
| I | DE | EN | DE |
+------+------+------+------+
| 0 | NULL | ZERO | NULL |
| 1 | EINS | ONE | EINS |
| 2 | ZWEI | TWO | ZWEI |
+------+------+------+------+

Alternative SQL -Ausführer

Eventuelle können auch die folgenden alternativen SQL -Ausführer verwendet werden, falls MySQL  nicht zur Verfügung steht.

Alternative Ausführer für SQL 

http://sqlfiddle.com/

http://courses.cs.byu.edu/~cs452ng/manuals/sqlfiddle.pdf

http://Ideone.com

http://www.sqlcourse.com/create.html

http://sqlzoo.net/

http://apex.oracle.com/

http://www.oraclebin.com/2013/01/how-to-execute-sql-queries-online.html

http://www.w3schools.com/sql/sql_tryit.asp

http://demo.phpmyadmin.net/STABLE/?pma_username=root

Anhang *

Zitat *

9075-2 7.12 (Entwurf 2010, vereinfacht)
<query specification> ::= SELECT <select list> <table expression>
<select list> ::= <asterisk> | <select sublist> [ { <comma> <select sublist> }... ]
<select sublist> ::= <derived column>
<derived column> ::= <value expression> [ <as clause> ]
9075-2 7.12 (Entwurf 2010, Zitat)
the <select list> “*” is equivalent to a <value expression> sequence in which each <value expression> is a column reference that references a column of T and each column of T is referenced exactly once. The columns are referenced in the ascending sequence of their ordinal position within T.

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 stefanram722405 stefan_ram:722405 Der Stern in SQL (MySQL) Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722405, slrprddef722405, 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/stern_sql_de