Kurzreferenz SQL

1. Einleitung

1. Einleitung:

2. Befehle:

2.1 CREATE TABLE

Mit dem Befehl CREATE TABLE kann man Tabellen erstellen. Die Syntax lautet:

	CREATE TABLE tabellenname (Feld_definitionen, ...);
Hier mal ein kleines Beispiel:
	CREATE TABLE Mitarbeiter (
		Name 	VARCHAR (30) NOT NULL,
		AbtNr	INT NOT NULL
	);

2.2 SHOW

Man nun kann sich die bereits erstellten Tabellen und Felder ansehen. Dazu dient der Befehl SHOW.

	SHOW TABLES
Um alle alle angezeigten Tabellen anzuzeigen. Alternativ kann man sich mit
	SHOW COLUMNS FROM tabellenname
alle Felder der Tabelle tabellenname ansehen.

2.3 DROP TABLE

Der Befehl DROP dient dazu Tabellen (unwiederruflich) zu löschen. Die Syntax lautet wie folgt:

	DROP TABLE tabellenname

2.4 INSERT INTO

Will man Daten in eine Tabelle einfügen macht man dies mit dem Befehl INSERT INTO. Die Syntax lautet:

	INSERT INTO tabellenname [(feldname, ...)] VALUES (werte, ...)

Die Feldname können weggelassen werden, wenn in alle Felder etwas eingefügt werden soll. Bei den Werten müssen Zeichenketten und Datum in Hochkommata stehen. Hier noch ein Beispiel:

	INSERT INTO Mitarbeiter (Name, AbtNr) VALUES ('Bill Gates', 100000);

2.5 SELECT

Der SELECT- Befehl gilt als der mächtigste Befehl in SQL. Die Grund- Syntax lautet:

	SELECT [DISTINCT | ALL] ausdruck FROM tabellenname [Suchkriterien oder Ordnungsdefinitionen]
Dazu zuerst ein Bespiel. Der einfachste SELECT- Befehl lautet:
	SELECT * FROM all;

Dieser Befehl zeigt alle Einträge, aller verfügbaren Datenbanken auf den Server, und aller darin enthaltenen Tabellen an. Meist will man jedoch die Suche einschränken. Es bietet sich an, durch auswahl einer bestimmten Tabelle, die Ausgabe einzuschränken. Dies geschieht folgendermaßen:

	SELECT * FROM tabellenname;

Dieser Befehl zeigt dann alle Einträge der ausgewählten Tabelle an. Darüber hinaus gibt es weitere Möglichkeiten die Ausgabe zu beinflussen.

ORDER BY

Mit ORDER BY wird festgelegt, nach welcher Spalte bzw. welchen Spalten sortiert werden soll. Durch die Zusätze ASC (engl. für ascending) bzw. DESC (engl. für descending) kann angegeben werden ob nach aufsteigender oder absteigender Reihenfolge sortiert werden soll. Wird nichts angegeben wird aufsteigend sortiert. Hier ein kleines Beispiel:

	SELECT * FROM Mitarbeiter ORDER BY Name DESC;

Der Befehl gibt alle Einträge der Tabelle Mitarbeiter, (absteigend) nach Name sortiert aus. Alternativ können weitere Ordnungskriterien durch Kommata getrennt hinter ORDER BY angegeben werden. Etwa so:

	SELECT * FROM Mitarbeiter ORDER BY Nachname, Vorname;

Dieser Befehl würde dann entsprechend alle Einträge der Tabelle Mitarbeiter, nach Nachname sortiert (aufsteigend) ausgeben. Haben zwei oder mehr Mitarbeiter den selben Nachname wird als Entscheidungskriterium der Vorname hinzugezogen.

GROUP BY

Die GROUP BY- Anweisung wird nur in Verbindung mit den Gruppenfunktionen benutzt, und ich will an dieser Stelle nicht weiter darauf eingehen.

LIMIT

Mit der LIMIT- Anweisung kann angegeben werden, wie viele Zeilen man von der SELECT- Anweisung zurückgeliefert haben will. Hier einige Beispiele:

	SELECT * FROM tabellenname LIMIT 5,10; # gibt die Zeilen 6-15 zurück
	SELECT * FROM tabellenname LIMIT 5; # gibt die ersten fünf Zeilen zurück
	SELECT * FROM tabellenname LIMIT 0,5; # gibt auch die ersten fünf Zeilen zurück
Ausdruck

An dieser Stelle möchte ich nochmal auf den Ausdruck der SELECT- Anweisung eingehen. Wir haben bisher immer das '*' als Ausdruck verwendet. Dies entsprecht dem einfachsten Fall. Man kann aber auch z.B. bestimmte Felder angeben, die dann angezeigt werden. Hier ein paar Beispiele:

	SELECT Name, AbtNr FROM Mitarbeiter; 
	SELECT Mitarbeiter.Name, Mitarbeiter.AbtNr FROM Mitarbeiter; # erzeugt die gleiche Ausgabe wie oben