SQL
SQL (Structured Query Language) ist eine standardisierte Programmiersprache zur Verwaltung und Bearbeitung von Daten in relationalen Datenbanken.
Insgesamt ist SQL ein unverzichtbares Werkzeug für Entwickler und Datenanalysten, um mit Daten effizient zu arbeiten.
Datenbank erstellen
Am besten fangen wir an in den wir lernen wie man einer SQL Datenbank erstellt.
CREATE DATABASE schule;
USE schule;
Tabellen erstellen
CREATE TABLE Schueler (
schueler_id INT PRIMARY KEY, -- Primärschlüssel
vorname VARCHAR(50),
nachname VARCHAR(50),
geburtsdatum DATE
);
CREATE TABLE Kurse (
kurs_id INT PRIMARY KEY, -- Primärschlüssel
kurs_name VARCHAR(100),
lehrer_name VARCHAR(100)
);
CREATE TABLE Einschreibung (
einschreibung_id INT PRIMARY KEY, -- Primärschlüssel
schueler_id INT, -- Fremdschlüssel zu Schueler
kurs_id INT, -- Fremdschlüssel zu Kurse
einschreibedatum DATE,
FOREIGN KEY (schueler_id) REFERENCES Schueler(schueler_id),
FOREIGN KEY (kurs_id) REFERENCES Kurse(kurs_id)
);
Werten in die Tabellen einsetzen
Mit SQL INSERT können wir SQL Zeilen in die SQL Spalten einsetzen.
INSERT INTO Schueler (schueler_id, vorname, nachname, geburtsdatum) VALUES
(1, 'Max', 'Muster', '2005-04-15'),
(2, 'Anna', 'Beispiel', '2006-05-20'),
(3, 'Tom', 'Schneider', '2004-08-12'),
(4, 'Lisa', 'Müller', '2005-11-01');
INSERT INTO Kurse (kurs_id, kurs_name, lehrer_name) VALUES
(1, 'Mathematik', 'Schmidt'),
(2, 'Deutsch', 'Müller'),
(3, 'Biologie', 'Wagner'),
(4, 'Chemie', 'Schmidt');
INSERT INTO Einschreibung (einschreibung_id, schueler_id, kurs_id, einschreibedatum) VALUES
(1, 1, 1, '2023-09-01')
(2, 1, 2, '2023-09-01'),
(3, 2, 1, '2023-09-01'),
(4, 3, 3, '2023-09-01'),
(5, 4, 4, '2023-09-01');
So sehen die SQL Tabellen aus (in Tabell Format):
Schueler:
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
1 | Max | Muster | 2005-04-15 |
2 | Anna | Beispiel | 2006-05-20 |
3 | Tom | Schneider | 2004-08-12 |
4 | Lisa | Müller | 2005-11-01 |
Kurse:
kurs_id | kurs_name | lehrer_name |
---|---|---|
1 | Mathematik | Schmidt |
2 | Deutsch | Müller |
3 | Biologie | Wagner |
4 | Chemie | Schmidt |
Einschreibung:
einschreibung_id | schueler_id | kurs_id | einschreibedatum |
---|---|---|---|
1 | 1 | 1 | 2023-09-01 |
2 | 1 | 2 | 2023-09-01 |
3 | 2 | 1 | 2023-09-01 |
4 | 3 | 3 | 2023-09-01 |
5 | 4 | 4 | 2023-09-01 |
Jetzt wissen wir wie man ein Datenbank erstellt und wie man Tabellen erstellt.
Nun.... Wie lesen kriegen wir die Werten ?
Das lernen wir gleich 😊
Tabellen bearbeiten - ALTER
Mit SQL ALTER kannst du die Struktur einer bereits existierenden SQL Tabelle ändern.
Du kannst SQL Spalten hinzufügen, entfernen, umbenennen oder deren Datentyp ändern.
Spalte hinzufügen
ALTER TABLE Schueler
ADD email VARCHAR(100);
schueler_id | vorname | nachname | geburtsdatum | |
---|---|---|---|---|
1 | Max | Muster | 2005-04-15 | NULL |
2 | Anna | Beispiel | 2006-05-20 | NULL |
3 | Tom | Schneider | 2004-08-12 | NULL |
4 | Lisa | Müller | 2005-11-01 | NULL |
Spalte entfernen
ALTER TABLE Schueler
DROP COLUMN email;
Spalte umbenennen
ALTER TABLE Schueler
RENAME COLUMN vorname TO first_name;
Datentyp ändern
ALTER TABLE Schueler
MODIFY nachname VARCHAR(75);
Diese Ergänzung fügt sich nahtlos in deine bestehende SQL-Notiz ein und folgt deinem Stil mit praktischen Beispielen und der gleichen Formatierung.
Werten anpassen / updaten
Du bearbeitest die Werte in den SQL Spalten, ohne neue SQL Zeilen hinzuzufügen.
UPDATE Schueler
SET vorname = 'Maximilian'
WHERE schueler_id = 1;
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
1 | Max | Muster | 2005-04-15 |
2 | Anna | Beispiel | 2006-05-20 |
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
1 | Maximilian | Muster | 2005-04-15 |
2 | Anna | Beispiel | 2006-05-20 |
Mehrere Spalten gleichzeitig ändern
UPDATE Schueler
SET vorname = 'Maximilian',
nachname = 'Mustermann'
WHERE schueler_id = 1;
Alle Zeilen ändern
UPDATE Kurse
SET lehrer_name = 'Neu';
Werten löschen / entfernen
Du löschst ganze Datensätze, nicht nur einzelne SQL Spalten.
DELETE FROM Schueler
WHERE schueler_id = 1;
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
1 | Max | Muster | 2005-04-15 |
2 | Anna | Beispiel | 2006-05-20 |
3 | Tom | Schneider | 2004-08-12 |
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
2 | Anna | Beispiel | 2006-05-20 |
3 | Tom | Schneider | 2004-08-12 |
Mehrere Zeilen löschen
DELETE FROM Schueler
WHERE YEAR(geburtsdatum) < 2005;
Alle Zeilen löschen
DELETE FROM Kurse;
Werte aus den Tabellen extrahieren
Bevor wir anfangen, ist es wichtig zu verstehen, wie SQL unter der Haube funktioniert.
Es ist dir wahrscheinlich aufgefallen, dass SQL mit SQL Tabellen arbeitet.
Jede SQL Tabelle hat ihre eigenen SQL Spalten (Variablen) und kann mit SQL SELECT und SQL FROM abgefragt werden.
SELECT *
FROM Tabellename;
In unser Bsp wurde etwas so aussehen:
SELECT *
FROM Schueler;
schueler_id | vorname | nachname | geburtsdatum |
---|---|---|---|
1 | Max | Muster | 2005-04-15 |
2 | Anna | Beispiel | 2006-05-20 |
3 | Tom | Schneider | 2004-08-12 |
4 | Lisa | Müller | 2005-11-01 |
Alle Schüler, die vor 2005 geboren sind:
SELECT vorname, nachname, geburtsdatum
FROM Schueler
WHERE geburtsdatum <= '2005-12-31';
ODER
SELECT vorname, nachname, geburtsdatum
FROM Schueler
WHERE YEAR(geburtsdatum) <= 2005;
Jetzt, dass du die Grundlage über SQL gelernt hast.
Es ist Zeit auf die Vertiefung an den Thema.
Ab hier wirst du bestimmten Anweisungen, Syntax und noch viel mehr.
SQL Algorithmus
Es gibt unendlich viele Wege, um eine Aufgabe in SQL zu lösen.
Ich zeige dir, wie ich es immer mache.
Patient:
patient_ID | first_name | last_name | birthdate |
---|---|---|---|
1 | Max | Müller | 1980-01-15 |
2 | Maria | Doe | 1975-09-10 |
3 | Lux | Schmitz | 1992-05-22 |
Weight: |
weight_ID | patient_ID | date | kg |
---|---|---|---|
1 | 1 | 2024-10-10 | 82.5 |
2 | 1 | 2024-11-15 | 80.0 |
3 | 2 | 2024-10-05 | 68.4 |
4 | 3 | 2024-10-12 | 90.2 |
Erstelle eine SQL-Abfrage, die den Vornamen, Nachnamen, das Datum und das Gewicht (kg) jedes Patienten anzeigt.
- Welche SQL Spalten sind hier gefragt ?
Vorname, Nachname, Datum und KG
Deise füge ich in den SQL SELECT ein.
SELECT Patient.first_name, Patient.last_name, Weight.date, Weight.kg
patient_ID | first_name | last_name | birthdate |
---|---|---|---|
1 | Max | Müller | 1980-01-15 |
2 | Maria | Doe | 1975-09-10 |
3 | Lux | Schmitz | 1992-05-22 |
weight_ID | patient_ID | date | kg |
---|---|---|---|
1 | 1 | 2024-10-10 | 82.5 |
2 | 1 | 2024-11-15 | 80.0 |
3 | 2 | 2024-10-05 | 68.4 |
4 | 3 | 2024-10-12 | 90.2 |
- Welchen Tabellen werden hier benötigen?
Patient und Weight
Diese füge ich in den SQL FROM ein.
SELECT Patient.first_name, Patient.last_name, Weight.date, Weight.kg
FROM Patient, Weight
- Welchen Bedingungen müssen erfühlen werden?
Bei diese Aufgabe, müssen die
patient_ID
undweight_ID
übereinstimmen.Diese Bedingung kommt in den SQL WHERE.
SELECT Patient.first_name, Patient.last_name, Weight.date, Weight.kg
FROM Patient, Weight
WHERE Patient.patient_ID = Weight.patient_ID;
JOINs
Wir haben gelernt, dass man mit SQL FROM und SQL WHERE eine Verbindung zwischen SQL Tabelle herstellen kann, indem man die Primärschlüssel verwendet, um nur die relevanten Datensätze zu filtern.
Im Vergleich dazu ermöglicht ein INNER JOIN eine klarere und effizientere Methode zur Verknüpfung von Tabellen, indem die Beziehung zwischen ihnen explizit definiert wird, wodurch die Abfrage lesbarer und die Verarbeitungsgeschwindigkeit optimiert wird.