MySQL Befehle

Definition von MySQL

SQL (Structured Query Language) - zu deutsch strukturierte Abfragesprache - ist eine Abfragesprache für relationale Datenbanken. Diese relativ einfach zu erlernende Sprache stellt Befehle zur Manipulation von Daten zur Verfügung (wie einfügen, löschen, ändern). Auf den folgenden Seiten möchten wir Ihnen zunächst ein paar theoretische Grundlagen zur Erstellung von Datenbanken, respektive Tabellen, vorstellen, um anschließend auf die häufigsten Abfragebefehle einzugehen.

Normalform
Um Redundanz (Überschneidung, unnötiges Vorhandensein von überflüssigen Informationen) zu vermeiden existieren sogenannte Normalformen. Das Ziel des Datenbankdesigns sollte darin bestehen, eine Datenbankstruktur zu kreieren, die der 3. Normalform entspricht

1. Normalform
Die 1. Normalform besagt, dass in einer Tabelle die Attribute in getrennte Spalten geschrieben werden sollen. Das heißt, dass beispielsweise Nachname und Vorname jeweils in eine eigene Spalte eingefügt werden, nicht zusammen in eine Spalte. Zudem dürfen nie zwei Zeilen mit demselben Inhalt in der Tabelle vorkommen.

2. Normalform
Eine Datenbank befindet sich nur dann in der 2. Normalform, wenn die Tabellen in der 1.Normalform sind und alle Nichtschlüsselattribute voll funktional vom Primärschlüssel abhängig sind.
Relationen müssen in unterschiedliche Tabellen aufgenommen werden. (z.B. Tabelle Kunde und Tabelle Rechnung, die anschliessend in einer 1:n Beziehung stehen, was bedeutet, dass ein Kunde einer oder vielen Rechnungen zugeordnet sein kann).

3. Normalform
Eine Tabelle in der dritten Normalform enthält keine transitiven Abhängigkeiten, was bedeutet, dass keine Abhängigkeiten existieren, in der ein Attribut X von einem anderen Attribut Y abhängt, welches wiederum von einem anderen Attribut Z abhängt. Dies würde bewirken, dass das Löschen einer Zeile mit einem Eintrag von Z über Y zu einem Datenverlust für X führt.

Die SQL Befehle

Mit Hilfe von SQL Befehlen ist es einfach möglich Daten einer Datenbank zu manipulieren. Hier stellen wir Ihnen die wichtigsten Befehle kurz vor. Die Tabelle t_benutzer besteht aus dem Primärschlüssel ID und den Feldern Nachname, Vorname und Passwort.
Wir beziehen uns auf folgende Beispieltabelle:

Einfügen von neuen Datensätzen - INSERT
Mit dem Insert-Befehl können Sie neue Datensätze in eine Tabelle schreiben.

Syntax:
INSERT INTO TABELLE(FELD1,FELD2,...) VALUES (WERT1,WERT2,....)

Bsp:
INSERT INTO t_benutzer(Nachname, Vorname, Passwort) VALUES ('Müller', 'Hans', 'Psw123')

In diesem Fall muss das Feld ID nicht eingefügt werden, da dieses Feld einen Autowert besitzt, d.h. ein eindeutiger Wert wird automatisch von der Datenbank eingefügt (Primärschlüssel).


Löschen von Datensätzen - DELETE
Mit dem Delete-Befehl können Sie Datensätze in einer Tabelle löschen.

Syntax:
DELETE FROM TABELLE (WHERE BEDEINGUNG)

Bsp:
DELETE FROM t_benutzer WHERE Nachname='Müller' AND vorname='Hans'

Alle Datensätze bei denen der Nachname Müller UND der Vorname Hans ist, werden gelöscht


Ändern von Datensätzen - UPDATE

Mit dem Update-Befehl können Sie vorhandene Datensätze einer Tabelle ändern.

Syntax:
UPDATE TABELLE SET FELD1=WERT1, FELD2=WERT2, .... (WHERE BEDINGUNG)

Bsp:
UPDATE t_benutzer SET Nachname='Müller-Maier' WHERE ID=2

Der Nachname des Datensatzes mit der ID=2 wird geändert


Abfragen von Datensätzen - SELECT

Mit dem Update-Befehl können Sie Datensätze einer oder mehreren Tabelle abfragen.

Syntax:
SELECT WERT(E) FROM TABELLE (WHERE BEDINGUNG)

Bsp:
SELECT Vorname, Nachname FROM t_benutzer WHERE ID=2

Es wird der Vor- und Nachname des Datensatzes mit der ID=2 ausgegeben.
Dies sollte nur eine kleine Einführung in die Abfragesprache SQL sein. SQL ist aber weit mächtiger. Man kann bspw. Abfragen über mehrere Tabellen (JOIN) machen, Funktionen nutzen (Datumsberechnungen etc.) oder sogar Tabellen und ganze Datenbanken löschen. In realen Projekten kann sich ein SQL-Befehl leicht über zig-Zeilen erstrecken, bei dem mehrere Tabellen verknüpft werden und viele Bedingungen abgefragt werden.

Sollten Sie Probleme beim Datenbankdesign , der Performance Ihrer Abfragen oder überhaupt Hilfe hinsichtlich Ihrer Daten haben, so zögern Sie nicht uns zu kontaktieren - wir verfügen über Spezialisten mit mehrjährigen Datenbankerfahrungen! 
SQL und TYPO3 Extensionentwicklung

Entwickelt man eine TYPO3 Extension so sollte man darauf achten das man nicht einfach diese Abfragen zusammen mit PHP dafür benutzt, sondern die eigens dafür entwickelten TYPO3-MySQL-Funktionen in der Extension-Entwicklung benutzt.
Für jede dieser MySQL Abfragen haben Entwickler schon fixfertige PHP-Funktionen geschrieben die dann relativ einfach bei der TYPO3 Extension-Entwicklung benutzt werden können.
Diese vorgefertigten Methoden bringen Vorteile mit, die beim benutzen der normalen Abfragen noch zusätzlich programmiert werden müssten.

SELECT * FROM Tabellenname 
ORDER BY FIND_IN_SET(
                                        feld1,
                                        feld2,
                                        feld3,
                                        feld4,
                                        feld5'
                                        );
Sortieren von Datenfeldern nach eigenem Kriterium