PostgreSQL - Syntax
Hallo zusammen, zukünftige Datenbank-Zauberer! Heute tauchen wir in die magische Welt der PostgreSQL-Syntax ein. Keine Sorge, wenn Ihr neu im Programmieren seid – ich werde Euer freundlicher Führer durch dieses Abenteuer sein. Also, holt Euch Eure virtuellen Zauberstäbe (Tastaturen) und los geht's!
Die SQL-Anweisung
Bevor wir uns den specifics von PostgreSQL zuwenden, lassen Sie uns über SQL-Anweisungen im Allgemeinen sprechen. SQL, oder Strukturierte Abfragesprache, ist wie das Zauberbuch für Datenbanken. Es ist die Sprache, die wir verwenden, um mit unserer Datenbank zu kommunizieren und sie nach unserem Willen zu handeln.
Grundstruktur
Eine SQL-Anweisung folgt typischerweise dieser Struktur:
BEFEHL aktion_zu_ausführen
[ON Objekt]
[WHERE Bedingungen];
Lassen Sie uns das aufschlüsseln:
-
BEFEHL
: Das ist, was Ihr tun möchtet (wie SELECT, INSERT, UPDATE, etc.) -
aktion_zu_ausführen
: Das spezifiziert, was Ihr mit dem Befehl macht -
ON Objekt
: Das ist optional und gibt an, mit welchem Datenbankobjekt Ihr arbeitet -
WHERE Bedingungen
: Das ist ebenfalls optional und ermöglicht es Euch, spezifische Bedingungen festzulegen
Beispiel
Hier ist ein einfaches Beispiel:
SELECT vorname, nachname
FROM mitarbeiter
WHERE abteilung = 'IT';
In dieser Zauberformel... ähm, Anweisung:
-
SELECT
ist unser Befehl -
vorname, nachname
ist, was wir abrufen möchten -
FROM mitarbeiter
tells us which table we're getting data from -
WHERE abteilung = 'IT'
ist unsere Bedingung, die für IT-Abteilungsmitarbeiter filtert
PostgreSQL SQL-Befehle
Nun, da wir die Grundlagen behandelt haben, schauen wir uns einige spezifische PostgreSQL-Befehle an. Denkt daran, dass diese wie verschiedene Zauber in Eurem SQL-Zauberbuch sind!
Datendefinitionssprache (DDL) Befehle
Diese Befehle werden verwendet, um die Struktur Eurer Datenbankobjekte zu definieren und zu modifyzieren.
Befehl | Beschreibung | Beispiel |
---|---|---|
CREATE | Erstellt ein neues Datenbankobjekt | CREATE TABLE studenten (id INT, name VARCHAR(50)); |
ALTER | Modifiziert ein bestehendes Datenbankobjekt | ALTER TABLE studenten ADD COLUMN alter INT; |
DROP | Löscht ein Datenbankobjekt | DROP TABLE studenten; |
TRUNCATE | Entfernt alle Daten aus einer Tabelle | TRUNCATE TABLE studenten; |
Schauen wir uns ein detaillierteres Beispiel von CREATE an:
CREATE TABLE zauberer (
id SERIALIZABLE PRIMARY KEY,
name VARCHAR(100) NOT NULL,
haus VARCHAR(50),
zauberstab_typ VARCHAR(50),
anmeldungsdatum DATE
);
Dies erstellt eine Tabelle namens 'zauberer' mit Spalten für id, name, haus, zauberstabtyp und anmeldungsdatum. Der SERIALIZABLE
-Typ für id bedeutet, dass er automatisch für jeden neuen Eintrag erhöht wird.
Datenmanipulationssprache (DML) Befehle
Diese sind die Zauber... ähm, Befehle, die wir verwenden, um mit den Daten in unseren Tabellen zu arbeiten.
Befehl | Beschreibung | Beispiel |
---|---|---|
SELECT | Ruft Daten aus einer oder mehreren Tabellen ab | SELECT * FROM zauberer; |
INSERT | Fügt neue Daten in eine Tabelle ein | INSERT INTO zauberer (name, haus) VALUES ('Harry Potter', 'Gryffindor'); |
UPDATE | Modifiziert bestehende Daten in einer Tabelle | UPDATE zauberer SET haus = 'Slytherin' WHERE name = 'Draco Malfoy'; |
DELETE | Entfernt Daten aus einer Tabelle | DELETE FROM zauberer WHERE name = 'Voldemort'; |
Schauen wir uns einen komplexeren SELECT-Auszug an:
SELECT z.name, z.haus, f.fach
FROM zauberer z
JOIN fächer f ON z.id = f.zauberer_id
WHERE z.haus = 'Ravenclaw'
ORDER BY z.name;
Diese Abfrage:
- Ruft den Namen und das Haus der Zauberer ab, zusammen mit ihren Fächern
- Verknüpft die Zauberer-Tabelle mit einer Fächer-Tabelle
- Filtert nur für Ravenclaw-Schüler
- Sortiert die Ergebnisse nach dem Namen des Zauberers
Datenkontrollsprache (DCL) Befehle
Diese Befehle sind wie die Sicherheitszauber unserer Datenbank, die den Zugang und die Berechtigungen kontrollieren.
Befehl | Beschreibung | Beispiel |
---|---|---|
GRANT | Gibt spezifische Berechtigungen einem Benutzer | GRANT SELECT ON zauberer TO schüler_user; |
REVOKE | Entzieht spezifische Berechtigungen von einem Benutzer | REVOKE INSERT ON zauberer FROM schüler_user; |
Transaktionskontrollbefehle
Diese Befehle helfen uns, Transaktionen zu verwalten – Gruppen von SQL-Anweisungen, die gemeinsam ausgeführt werden sollten.
Befehl | Beschreibung | Beispiel |
---|---|---|
BEGIN | Startet eine Transaktion | BEGIN; |
COMMIT | Speichert die Änderungen einer Transaktion | COMMIT; |
ROLLBACK | Macht die Änderungen einer Transaktion rückgängig | ROLLBACK; |
Hier ist, wie Ihr sie in der Praxis verwenden könnt:
BEGIN;
UPDATE konto SET saldo = saldo - 100 WHERE id = 1;
UPDATE konto SET saldo = saldo + 100 WHERE id = 2;
COMMIT;
Diese Transaktion überweist 100 Einheiten von Konto 1 auf Konto 2. Wenn ein Teil davon fehlschlägt, können wir ROLLBACK verwenden, um alle Änderungen rückgängig zu machen.
Utility-Befehle
PostgreSQL hat auch einige nützliche Utility-Befehle:
Befehl | Beschreibung | Beispiel |
---|---|---|
EXPLAIN | Zeigt den Ausführungsplan einer Anweisung | EXPLAIN SELECT * FROM zauberer; |
VACUUM | Bereinigt und optional analysiert eine Datenbank | VACUUM zauberer; |
Der EXPLAIN-Befehl ist besonders nützlich für die Optimierung Eurer Abfragen. Es ist wie ein Kristallkugel, die Euch zeigt, wie PostgreSQL Eure Abfrage ausführt!
EXPLAIN SELECT * FROM zauberer WHERE haus = 'Hufflepuff';
Dies wird Euch den Query-Plan anzeigen, helfen Euch zu verstehen, wie PostgreSQL Eure Abfrage verarbeitet und wo Ihr möglicherweise optimieren könnt.
Und das war's, junge SQL-Lehrlinge! Wir haben die grundlegende Syntax und Befehle von PostgreSQL behandelt. Denkt daran, wie jede gute Magie, erfordert das Beherrschen von SQL Übung. Habt keine Angst, verschiedene Befehle auszuprobieren und auszuprobieren. Bevor Ihr es wisst, werdet Ihr komplexe Abfragen mühelos zaubern können!
beim nächsten Mal tauchen wir tiefer in die mystischen Künste der Datenbankgestaltung und fortgeschrittener Abfragen ein. Bis dahin, mögen Eure Abfragen schnell sein und Eure Ergebnisse zahlreich sein!
Credits: Image by storyset