silvesterlangen.de

Seite
Menü

SQL Einführung

Was ist denn SQL?

SQL ist eine Datenbanksprache und steht für Structured Query Language. Es ist eine Datenbanksprache zum bearbeiten und abfragen von relationalen Datenbanken. SQL basiert auf der relationalen Algebra. Ihre Semantik ist an der englischen Sprache angelehnt. Man könnte es wie eine Kurzform der Sprache verstehen. Beispielsweise so:

SELEKTIERE Wohnort VON Kundentabelle;

SELECT Wohnort FROM Kundentabelle;

 

D i e  B e f e h l e

 

Select Befehl - Mit dem Select Befehl wählt man die Spalte der Tabelle, die man sich ansehen möchte. Es ist der am häufigsten verwendete Befehl überhaupt. Beispielsweise haben wir die Tabelle "Kunden" und wollen uns die Spalte Abteilung ansehen. Dann sähe der Syntax wie folgt aus:

SELECT Spaltenname FROM Kunden;

Es ist auch denkbar sich  mehrere Spalten ausgeben zu lassen.

SELECT Spaltenname1, Spaltenname2, Spaltenname3 FROM Kunden;

Bei kleinen Datenbanken kann man sorgenfrei statt dem Spaltennamen einfach * einfügen, um alle Spalten und Ergebnisse angezeigt zu bekommen. Bei großen Datenbanken sollte man sich das allerdings verkneifen. ;-)


 

Distinct Befehl - Dieser Befehl kommt direkt hinter das SELECT und dient dazu doppelte/mehrfach auftretende Ergebnisse auszublenden.

Nehmen wir an, dass wir in der Tabelle "Kunden" die Wohnorte isolieren wollen. Es reicht uns, dass die Wohnorte nur ein mal angezeigt werden. Also wählen wir folgenden Syntax:

SELECT DISTINCT Wohnort FROM Kunden;

Nun erhalten wir eine Liste mit allen Wohnorten aus unserer Kundentabelle. Jeder Ort wird nur ein mal angezeigt, egal wie oft er tatsächlich in der Spalte Wohnort vorkommt.


 

Where Befehl - Man könnte das wie einen Filter verstehen womit man bestimmte Einträge "rauszieht", die auf ein Kriterium passen. Wir wollen uns aus der Spalte Vorname der Tabelle Kunden alle Kunden anzeigen lassen, die Kurt heißen.

SELECT Vorname FROM Kunden WHERE Vorname = 'Kurt';

Wichtig ist, dass Kurt in diesem Falle ein String ist, also eine Zeichenkette und die gehört grundsätzlich in Hochkommata.

Es lassen sich allerdings auch Vergleichsoperatoren verwenden, falls man bspw. einen Zahlenwert vergleichen muss. Zu verwenden sind = (gleich), != (ungleich), <(kleiner als) und > (größer als).

Wollen wir Gehälter aus der Mitarbeitertabelle anzeigen lassen, die größer als 2500 sind, so müssten wir folgendes eingeben:

SELECT brutto FROM Mitarbeiter WHERE bruttogehalt > 2500;

Selbstverständlich funktioniert das mit allen weitere Vergleichsoperatoren auch. Einfach ein bischen ausprobieren und damit "spielen".


 

WHERE AND Befehl - Nun haben wir gelernt mit WHERE aus der Tabelle einen bestimmten Wert herauszuholen bzw.  mit Vergleichsoperationen zu arbeiten. Blöd allerdings, wenn wir zwei Bedingungen haben, die angewendet werden müssen. Desshalb gibt es WHERE AND. Damit ist es möglich beispielsweise aus der Tabelle Mitarbeiter alle Mitarbeiter herauszufiltern, die männlich sind UND ein Gehalt unter 2000 haben. Das Syntax wäre dann folgender:

SELECT brutto FROM Mitarbeiter WHERE Geschlecht = "m" AND bruttogehalt < 2000;

Der AND Befehl dient zum zusammenfassen und kann mehrfach verwendet werden.


 

WHERE OR Befehl - Er funktioniert wie AND, nur eben als OR und kann ebenfalls mehrfach verwendet werden.


 

Der Join - Manchmal ist es so, dass wir verschiedene Informationen aus mehreren Tabellen zusammenfassen und in eine Ausgabe packen müssen. Beispielsweise haben wir die Tabelle Kunden worin sich die Kundennummern, Namen und Adressen befinden und nun brauchen wir die dazugehörigen Telefonnummern und E-Mail Adressen. Diese jedoch stehen in einer anderen Tabelle. Wir müssen nun einen Weg haben diese Datensätze miteinander zu verbinden, die zusammengehören.

 

Cross Join (kartesisches Produkt) - Ein Cross Join macht eigentlich nichts weiter als alle Informationen aus einer Tabelle mit allen Informationen aus der anderen Tabelle miteinander zu verbinden. 10 Einträge in der einen Tabelle, und 20 in der anderen ergibt 200 (10 x 20) Kombinationen.  Das ist natürlich ziemlich sinnfrei und die eigentlich wichtigen Verbindungen stecken dann irgendwo mittendrin.

Ein einfacher Cross Join wäre folgender:

SELECT * FROM Mitarbeiter CROSS JOIN Abteilung;

 

Inner Join - Wie der Cross Join ist das eine Verknüpfung der Tabellen miteinander. Dabei wird mit der WHERE-Klausel aus beiden Tabellen der entsprechende Wert verknüpft, der zusammengehört.

Ein einfacher Inner Join wäre folgender:

SELECT * FROM Mitarbeiter INNER JOIN Abteilung WHERE Mitarbeiter.m_id = Abeilung.m_id;

Jetzt wird man stutzen und sagen, dass das fast das Gleiche ist und JA! Es ist fast das Gleiche. Jeder JOIN ist zunächst ein katesisches Produkt. Die Wahl der richtigen Datensätze ist der springende Punkt. Im oberen INNER JOIN haben wir zunächst zwei Tabellen miteinander verbunden. Das ist ein katesisches Produkt. Dann aber haben wir mit WHERE  die Datensätze gewählt, die zusammengehören. Nehmen wir an, dass m_id die Personalnummer ist. Wir sagen in unserem Statement also, dass er die Datensätze miteinander verbinden soll, die die gleiche Mitarbeiternummer haben.

 

Dies ist jetzt nur ein kleiner Ausschnitt aus den Möglichkeiten, die man mit SQL-Statements hat. Programmierung ist in SQL ebenfalls möglich, um kleine Datenbankanwendungen zu schreiben, die das Administratorleben etwas erleichtern.

« vorige Seite Seitenanfang nächste Seite »
Seite
Menü
Earned Certificates:
LPIC-1 LPIC-1 LPIC-1
Powered by CMSimple | Template by CMSimple | Login