Tach Leute,
Vorab: Die Farben benutze ich, um euch die Zusammenhänge klar zu machen. Wenn euch die Farbe stört, kopiert den Text in einen Texteditor und lest es euch da durch!
Ich hab jetzt mal den Entschluss gefasst, ein
SQL Tutorial für die OV-Community zu schreiben. Es gibt zwar genug Tutorials im Internet, jedoch sind diese manchmal nicht ganz einfach geschrieben. Ich versuche hier eins zu schreiben, was für
jeden verständlich sein sollte! (Wenn nicht, dann haut mich :/ ).
Ich werde hier bewusst keine Beispiele nennen. Versucht erstmal, SQL zu verstehen. Wenn ihr meint, ihr könnt es einigermaßen, dann schreibt mir eine PN und ihr bekommt Übungsaufgaben
Erstmal ein Paar Grundbegriffe:
Was ist eigentlich SQL?
- SQL bedeutet Structured Query Language, was auf deutsch ungefähr Strukturierte Abfragen Sprache heißt. In SQL arbeitet man mit Datenbanken.
Wie ist eine solche Datenbank aufgebaut?
- Eine Datenbank ist folgendermaßen aufgebaut:
- Datenbank -> Tabelle -> Spalten
Die Datenbank ist der Oberbegriff. Ein Datenbankname sollte nur einmal existieren und mit einem eindeutigem Namen gekennzeichnet werden, damit man zwei Datenbanken nicht verwechselt. In der Datenbank sind beliebig viele Tabellen. Wie man diese erstellt, erfahren wir später. Die Tabellen enthalten Spalten, welche Informationen enthalten. Mehr dazu später.
Was kann ich also mit
SQL machen?
- Mit SQL kann man Datenbanken erstellen, bearbeiten, löschen oder diese Datenbank "befragen", genauer: Daten auslesen. Hier auf OV werden hauptsächlich folgende Funktionen von SQL genutzt:
=> Auslesen bereits existierender Daten
=> Einfügen / Löschen von Daten in bereits existierende Tabellen
=> Bearbeiten bereits existierender Einträge in Tabellen
Zusatz:Folgende Funktionen von
SQL benutzen wir hier in der Regel nicht, können aber vorkommen:
* Ordnen von existierenden Daten
* Zählen von Einträgen in einer
Tabelle* Abkürzungen von Tabellennamen (Auch: Alias)
* Eine neue
Tabelle erstellen
* Struktur einer
Tabelle ändern
* Eine
Tabelle löschen
* Alle Daten einer
Tabelle löschen
So, das wäre alles, was man wissen muss! Im folgendem Abschnitt erkläre ich, wie die Befehle funktionieren:
Erstmal:Die Befehle von
SQL werden immer groß geschrieben bei uns, auch wenn Groß-/Kleinschreibung keinen Unterschied machen. Jedoch ist es so übersichtlicher und für andere leichter zu verstehen, was derjenige geschrieben hat. Ebenfalls wird
hinter jeder Abfrage ein Simikolon (;) verwendet. So wird die Abfrage beendet.
Der wohl einfachste Befehl ist der
SELECT Befehl, was so in diesem Zusammenhang auslesen bedeutet. Mit dem
SELECT Befehl liest man Daten aus einer bereits existierender
Datenbank aus. Man kann aber nicht nur einfach
SELECT eingeben, darauf würde einen Syntaxfehler folgen. Man muss noch auswählen, aus welcher
Tabelle der
Datenbank man etwas auslesen möchte. Das geht folgendermaßen:
SELECT *
FROM `Tabellenname`;
SELECT bedeutet, wie oben bereits geschrieben, auslesen
* bedeutet, dass ich
alle Spalten aus der
Tabelle haben will
FROM `Tabellenname` bedeutet, dass ich die Daten aus der
Tabelle `Tabellenname` haben will.
Kurz:Ich möchte alles aus der
Tabelle `Tabellenname` haben.
Jetzt kann man die "Auslese" noch spezifizieren. Die wohl häufigste Variante ist die, dass man eine Bedingung einbaut. Diese Bedingung wird mit
WHERE eingeleitet. Oft brauch man die nun folgende Formel:
SELECT *
FROM `Tabellenname`
WHERE `Spaltenname` = `wert`;
SELECT bedeutet, wie oben bereits geschrieben, auslesen
* bedeutet, dass ich
alle Spalten aus der Tabelle haben will
FROM `Tabellenname` bedeutet, dass ich die Daten aus der
Tabelle `Tabellenname` haben will.
WHERE `Spaltenname` = `wert` bedeutet, dass die Bedingung der Spalte `Spaltenname` gleich dem `wert` sein sollte. Sonst kommt ein leeres Resultat.
Kurz:Ich möchte alle Einträge aus der
Tabelle `Tabellenname` haben, wo der Wert `wert` in der Spalte `spaltenname` ist.
Jetzt kann man mehrere Sachen ausgeben lassen, indem man ein Stichwort hinzufügt. Nämlich
IN( ). Mit
IN( ) kann man viele Einträge gleichzeitig ausgeben lassen. Was hat man davon? Vieles, denn man brauch nicht für jeden Eintrag eine neue SQL-Abfrage
.
Statt:
SELECT *
FROM `tabellenname`
WHERE `spaltenname` = `wert1`;
SELECT *
FROM `tabellenname`
WHERE `spaltenname` = `wert2`;
schreibt man also:
SELECT *
FROM `tabellenname`
WHERE `Spaltenname`
IN(`wert1`, `wert2`, ....
);
Wie euch sicher beim aufmerksamen durchlesen aufgefallen ist, wird das " = " weggelassen. Das kommt daher, dass das " = " nur bei genau einem Wert verwendet wird!
/***************************************************************************************************************
Das war's mit mit Teil 1, Teil 2 wird nächste Woche Mittwoch erscheinen. Falls ihr Fragen habt, schreibt mir einfach. Entweder hier oder per PN
***************************************************************************************************************/