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

Als nächstes erstellen wir ein paar SQL Tabellen.
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)
);
Die SQL Tabellen wurden erstellt, sind aber noch leer.

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
Note

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

Es ist das IF in SQL.

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;

Info

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
Aufgabe

Erstelle eine SQL-Abfrage, die den Vornamen, Nachnamen, das Datum und das Gewicht (kg) jedes Patienten anzeigt.

  1. 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
  1. 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
  1. Welchen Bedingungen müssen erfühlen werden?

    Bei diese Aufgabe, müssen die patient_ID und weight_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; 
und das war's!!!

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.

SQL JOINs