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 als nächstes
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.