Hauptmenü

Untermenü

MySQL - SQL - Befehle

1. Vorwort

Was nun kommt, ist als erster Einstieg in den Sprachumfang von SQL gedacht. Dabei gebe ich euch einen Überblick über die Dinge, die man für den ersten Hausgebrauch benötigt. Die Feinheiten zeige ich euch dann beim Tutorial Advanced MySQL.

Ach ja, die drei folgenden Punkte solltet ihr zumindest kurz überfliegen. Auch wenn kein Praxisbezug da ist. Manchem wird das nicht gefallen, aber dieser Abschnitt zu MySQL wurde so konzipiert, dass man hier erst mal nur die Theorie zu Gesicht bekommt, um dann bei den Tutorials mit der Praxis konfrontiert zu werden.

2. Aufteilung

SQL unterteilt sich in vier verschiedene Bereiche, wobei die Zugehörigkeit der einzelnen Befehle abhängig ist von deren Aufgabe.

Data Definition Language

Hierunter fällt alles, mit denen man Datenbanken und Tabellen erstellt bzw. löscht oder mit denen man Modifikationen an Tabellen vornehmen kann. Also zum Beispiel Spalten hinzufügen, ihren Datentyp ändern oder einen anderen Namen vergeben. Das findet ihr unter dem Punkt Definieren.

Data Query Language

Sie umfasst alles, was man für eine Suchabfrage benötigt. Das gibt es unter Suchen

Data Manipulation Language

Hiermit können die Inhalte einer Datenbank geändert werden, also Datensätze einfügen, ersetzen oder löschen. Die Infos dazu befinden sich unter dem Punkt Ändern.

Data Control Language

Legt die Rechte für den Zugriff auf eine Datenbank fest. Da man in den meisten Fällen eh keinen Einfluss darauf hat, ignoriere ich diesen Abschnitt erst mal und werde die entsprechenden Informationen später nachliefern. Wen es trotzdem interessiert, der sollte mal nach GRANT und REVOKE suchen. Oder ihr schaut euch den Punkt Rechte setzen unter der Einführung an. Da gibt es schon ein ipsig kleines Beispiel dazu.

3. Unterschiede

Bisher habe ich im Zusammenhang mit SQL von Befehlen und Funktionen gesprochen. Allerdings gibt es noch eine dritte Kategorie. Nur weiß ich ehrlich gesagt selber nicht ganz genau, wie man die nennt. Sprachkonstrukte oder Hilfskonstrukte? Möglich wäre auch noch so was wie Befehlserweiterung. Laut Wikipedia werden die Teile Klauseln oder Attribute genannt. Aber so wirklich hilfreich ist das auch nicht.

Daher gehe ich einfach mal von der praktischen Seite an das Problem heran. Also, jeder Befehl beinhaltet optionale Zusatzangaben, mit der man eine Abfrage präzisieren kann. Um euch das Prinzip zu erklären, nehme ich mal das folgende Beispiel.


SELECT
  MAX(preis)
FROM
  produkt
WHERE artikelnummer LIKE '1000%'
  AND id 2;

Erläuterung

Kommen wir zuerst zum Befehl. Der lautet hier SELECT ... FROM. Bei der zwingend vorgegebenen Angabe der Spalte arbeiten wir mit der Funktion MAX, die in diesem Fall nach dem größten Preis sucht. Nach dem FROM wird, wie vorgeschrieben, die zu durchsuchen Tabelle angegeben.

Und dann kommen die Dinge, zu denen mir kein vernünftiger Name eingefallen ist. Zunächst mal erstellen wir mit dem Sprachkonstrukt(?) WHERE eine Bedingung. In der legen wir fest, dass die Artikelnummer mit 1000 beginnt (daher das LIKE) und (AND) die ID des Datensatzes größer zwei ist.

Ich hoffe, ich habe euch nicht zu sehr verwirrt. Aber die folgenden Erläuterungen sollten für ein wenig Klarheit sorgen.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt