Home
SQL / MySQL
Datenbanken?
  ---------------
Select
Insert
Update
Delete
  ---------------
Where
Order By
Group By
  ---------------
Create Table
Alter Table
Rename Table
Drop Table
Optimize Table
Repair Table
Backup Table
Restore Table
Show Tables
Describe Table
  ---------------
Use DB
Create DB
Drop DB
Show DBs
  ---------------
Funktionen
Indizes
Fulltext
Feldtypen
Gästebuch
Download
Kontakt
 
57949 Seitenaufrufe

Select - Statement


  1. Alle Daten aus einer Tabelle holen

  2. Eine bestimmte Spalte aus einer Tabelle holen

  3. Mehrere bestimmte Spalten aus einer Tabelle holen

  4. Spalten aus mehreren Tabellen holen

  5. Mehrere Tabellen aus verschiedenen Datenbanken abfragen

  6. Tabellen exportieren: SELECT * INTO OUTFILE

  7. Einschränken von Ergebnismengen



Bedeutung:
Mit der SELECT-Anweisung lassen sich alle oder bestimmte Daten aus einer oder mehreren Tabellen holen.


Alle Daten aus einer Tabelle holen
Allgemeine Form:
SELECT * FROM tabelle

Im Beispiel werden alle Daten aus der Tabelle adressen geholt (alle Werte aus allen Spalten). Das Sternchen in derAnweisung fungiert als Platzhalter. Da alle Daten aus der Tabelle geholt werden ist das Ergebnis dieser Abfrage identisch mit der Tabelle adressen.

SELECT * FROM adressen



Eine bestimmte Spalte aus einer Tabelle holen
Häufig benötigt man aber garnicht alle Daten aus einer Tabelle sondern nur einige Spalten. In diesem Fall muß der Name des gewünschten Feldes (Spalte) explizit angegeben werden.

SELECT nachname FROM adressen

Als Ergebnis der obigen Abfrage werden alle Werte des Feldes nachname der Tabelle adressen ausgegeben. Kurz: Alle Nachnamen werden ausgegeben. Das Ergebnis könnte dann z.B. wie in der folgenden Abbildung aussehen.

Beispiel:
nachname
Laberbacke
Tratschig
Timmers



Mehrere bestimmte Spalten aus einer Tabelle holen
Will man mehrere Felder gleichzeitig abfragen müssen die Feldnamen - durch Komma und Leerzeichen getrennt - hintereinander geschrieben werden.

SELECT anrede, vorname, nachname, strasse, ort FROM adressen

Als Ergebnis der obigen Abfrage werden alle Werte der angegebenen Felder der Tabelle adressen ausgegeben. Folgendes Ergebnis wäre denkbar:

Beispiel:
anrede vorname nachname strasse ort
Herr Ludwig Laberbacke Laberstrasse 11 Lordhausen
Frau Paula Tratschig Sonnenstraße 56 Augustburg
Frau Petra Timmers Feldweg 1 Langenort


Außer den Feldern id und plz sind alle Felder - wie in der Anweisung angegeben - in der Abfrage enthalten.



Spalten aus mehreren Tabellen holen
Will man mehrere Felder aus mehreren Tabellen in einem Statement abfragen müssen die Namen der Tabellen durch Komma und Leerzeichen getrennt hintereinander (hinter FROM) geschrieben werden.

Beispiel:
SELECT vorname, nachname, verein, pkw FROM adressen, interessen


Kommt ein Feld in beiden Tabellen vor, so muss jedem Feld der Tabellenname vorangestellt werden da der Feldname ansonsten nicht eindeutig ist.

Beispiel:
SELECT adressen.vorname, nachname, interessen.vorname, verein, pkw FROM adressen, interessen


Es können auch mehr als zwei Tabellen in einer Abfrage angesprochen werden. Hier ist jedoch Vorsicht angesagt: Je größer die abgefragten Tabellen sind und je mehr Tabellen und Felder abgefragt werden desto größer die Ergebnismengen. Hier können schnell riesengroße Ergebnismengen entstehen.

Beispiel:
SELECT adressen.vorname, adressen.nachname, interessen.vorname, interessen.nachname, interessen.verein, beruf.gehalt
FROM adressen, interessen, beruf




Mehrere Tabellen aus verschiedenen Datenbanken abfragen
Um Tabellen aus verschiedenen Datenbanken auf dem selben MySQL-Server abzufragen muß den einzelnen Tabellen ein Präfix mit dem Namen der Datenbanken vorangestellt werden.

Allgemeine Form:
SELECT db1.tabelle3.feldname, db2.tabelle2.feldname
FROM db1.tabelle3, db2.tabelle2.feldname




Tabellen exportieren: SELECT * INTO OUTFILE
Mit MySQL ist es möglich, ganze Tabelleninhalte (oder auch Teile) in Textdateien zu exportieren. Und das in einer hohen Geschwindigkeit. Diese Dateien können dann als Sicherungsdatei dienen oder aber auch in Access, StarCalc oder ähnliches importiert werden.

Die grundsätzliche Syntax ist recht einfach:
SELECT * INTO OUTFILE 'C:/temp/data.csv' FROM tabelle


Es ist auch möglich, die Trennzeichen zwischen den Feldwerten und am Ende jedes Datensatzes zu bestimmen:
SELECT * INTO OUTFILE 'C:/temp/data.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
FROM tabelle

Das obige Beispiel würde eine CSV-Datei (Felder getrennt durch Semikolon, Zeilenende durch Zeilenumbruch) generieren, die später z.B. mit Excel weiter bearbeitet werden kann.

Hinweis: Der Name der Datei, in der das Ergebnis der Abfrage gespeichert werden soll, muß vor FROM stehen. Wenn die Datei nicht existiert versucht MySQL sie anzulegen.

Beim Exportieren von Daten können wie beim 'normalen' SELECT alle Optionen benutzt werden. Im folgenden Beispiel werden nur bestimmte Spalten aus zwei Tabellen exportiert.
SELECT tabelle1.feld1, tabelle1.feld2, tabelle2.feld1
INTO OUTFILE 'C:/temp/data.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
FROM tabelle




Einschränken von Ergebnismengen
Wenn man Tabellen abfragt will man im seltensten Fall den gesamten Tabelleninhalt anzeigen. In MySQL gibt es dazu (wie bei anderen Datenbanken auch) weitere Möglichkeiten, die u.a. in Kombination mit dem SELECT-Statement benutzt werden können:
 
Letzte Änderung: 17. Mai 2002, 22:26 Uhr


© 2002, Klaus Becker, becker-k@web.de