Grundlegende SQL-Befehle

Erste Schritte – Grundlegende SQL-Befehle: SELECT, INSERT, UPDATE, DELETE

SQL (Structured Query Language) ist das Herzstück jeder relationalen Datenbank wie MySQL oder MariaDB. Wenn du in PHP mit Datenbanken arbeitest, wirst du immer wieder auf die grundlegenden Befehle SELECT, INSERT, UPDATE und DELETE zurückgreifen. In diesem Tutorial werfen wir einen Blick auf die wichtigsten Anwendungsszenarien dieser Befehle.

1. SELECT – Daten abfragen

Mit SELECT liest du Daten aus einer oder mehreren Tabellen aus. Du kannst Spalten auswählen, Bedingungen setzen und sortieren. Ein einfaches Beispiel:

SELECT * 
FROM users
WHERE alter >= 18
ORDER BY alter ASC;
  • * heißt: alle Spalten.
  • FROM users bestimmt die Tabelle (hier „users“).
  • WHERE alter >= 18 filtert nur Datensätze, deren Spalte alter mindestens 18 ist.
  • ORDER BY alter ASC sortiert das Ergebnis nach alter aufsteigend.

Ein weiteres Beispiel für die Auswahl bestimmter Spalten:

SELECT username, email
FROM users
WHERE username LIKE '%a%';

Dies liest nur die Spalten username und email aller Benutzer, deren username ein „a“ enthält.

2. INSERT – Daten einfügen

Um neue Datensätze in eine Tabelle einzufügen, verwendest du INSERT:

INSERT INTO users (username, passwort, email)
VALUES ('lisa', 'geheim', 'lisa@example.com');
  • INSERT INTO users gibt an, in welche Tabelle du schreibst.
  • In Klammern (username, passwort, email) stehen die Spalten, die du füllen möchtest.
  • VALUES listet die Werte im passenden Reihenfolge auf.

Hast du eine Tabelle mit einer AUTO_INCREMENT-Spalte (z. B. „id“), brauchst du diesen Wert in der Regel nicht in INSERT zu erwähnen; die DB vergibt ihn automatisch.

3. UPDATE – Daten aktualisieren

Mit UPDATE änderst du bestehende Datensätze:

UPDATE users
SET email = 'neueMail@example.com', passwort = 'nochGeheimer'
WHERE username = 'lisa';
  • UPDATE users wählt die Tabelle.
  • SET legt fest, welche Spalten auf welche neuen Werte gesetzt werden.
  • WHERE bestimmt, welche Datensätze du aktualisieren möchtest. Fehlt es, werden alle Datensätze geändert – Vorsicht!

In diesem Beispiel wird bei allen Benutzern mit username=’lisa‘ die email und das passwort neu gesetzt.

4. DELETE – Datensätze entfernen

Um bestimmte Zeilen aus der Tabelle zu löschen, dient DELETE:

DELETE FROM users
WHERE username = 'max';
  • DELETE FROM users gibt an, aus welcher Tabelle du löschen möchtest.
  • WHERE username = ‚max‘ legt fest, dass nur Zeilen mit diesem user gelöscht werden.

Auch hier ist das WHERE essenziell. Lässt du es weg, löschst du alle Einträge in der Tabelle.

5. Vorsicht und Best Practices

  • WHERE-Klauseln: Beim UPDATE und DELETE solltest du immer sicherstellen, dass du die WHERE-Bedingung korrekt setzt, um nur gewünschte Datensätze zu ändern oder zu löschen.
  • SQL-Injection-Schutz: Benutze in PHP am besten Prepared Statements (z. B. mit PDO), um Benutzereingaben sicher in Queries einzubinden.
  • Regelmäßig Backups: Gerade beim DELETE und UPDATE können Fehler fatal sein; ein Backup rettet vor Verlusten.

6. Beispiel einer CRUD-Abfolge

CRUD steht für Create, Read, Update, Delete – die Basisoperationen einer Datenbankanwendung.

// 1) CREATE (INSERT)
INSERT INTO users (username, passwort, email)
VALUES ('anna', 'geheim', 'anna@example.com');

// 2) READ (SELECT)
SELECT id, username, email
FROM users
WHERE username = 'anna';

// 3) UPDATE
UPDATE users
SET passwort = '12345'
WHERE username = 'anna';

// 4) DELETE
DELETE FROM users
WHERE username = 'anna';

Dies veranschaulicht, wie du in einer typischen Benutzerverwaltung erst einen User anlegst, Daten abfragst, aktualisierst und schließlich löschst.

Fazit

Die SQL-Befehle SELECT, INSERT, UPDATE und DELETE sind das Fundament jeder Datenbankinteraktion mit MySQL/MariaDB. Egal ob du sie direkt in phpMyAdmin eintippst, über die CLI eingibst oder via PDO in PHP ausführst – du solltest die grundlegende Syntax verinnerlichen und stets auf korrekte WHERE-Klauseln und Sicherheitsmaßnahmen (vor allem Prepared Statements) achten. Mit diesen Befehlen bist du in der Lage, gängige CRUD-Operationen zu implementieren und dynamische Webanwendungen zu erstellen, die Daten speichern und verarbeiten.