SQL – Tabellen erstellen und verwalten

1. Was ist eine Tabelle?

Eine Tabelle speichert Daten in Zeilen und Spalten. Jede Zeile enthält einen Datensatz. Jede Spalte beschreibt eine bestimmte Eigenschaft.

Beispiel: Tabelle kunden

kunden_id name stadt alter
1 Anna Müller Berlin 28
2 Max Schmidt Leipzig 35
3 Lisa Weber Dresden 24

2. CREATE TABLE

Mit dem SQL-Befehl CREATE TABLE wird eine neue Tabelle in einer Datenbank erstellt. Dabei werden die Spalten und ihre Datentypen festgelegt.

SQL-Code

CREATE TABLE kunden (
    kunden_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    stadt VARCHAR(100),
    alter INT
);

Erklärung

Bestandteil Bedeutung
CREATE TABLE Erstellt eine neue Tabelle
kunden Name der Tabelle
kunden_id Name einer Spalte
INT Ganzzahl
VARCHAR(100) Text mit maximal 100 Zeichen
PRIMARY KEY Eindeutiger Primärschlüssel
AUTO_INCREMENT Automatische Nummerierung
NOT NULL Wert darf nicht NULL sein

3. Wichtige SQL-Datentypen

Jede Spalte einer Tabelle benötigt einen passenden Datentyp. Der Datentyp legt fest, welche Werte gespeichert werden können.

Datentyp Beschreibung Beispiel
INT Ganzzahl 25
VARCHAR(100) Text mit begrenzter Länge Anna Müller
TEXT Längerer Text Produktbeschreibung
DATE Datum 2026-10-21
DATETIME Datum und Uhrzeit 2026-10-21 10:30:00
DECIMAL(10,2) Dezimalzahl mit zwei Nachkommastellen 199.99
BOOLEAN Wahrheitswert TRUE / FALSE

In MySQL wird BOOLEAN als Synonym für TINYINT(1) verwendet. Dabei steht häufig 0 für falsch und 1 für wahr.


4. PRIMARY KEY

Ein Primärschlüssel identifiziert jeden Datensatz einer Tabelle eindeutig. Ein Primärschlüsselwert darf nicht mehrfach vorkommen und nicht NULL sein.

SQL-Code

CREATE TABLE produkte (
    produkt_id INT PRIMARY KEY,
    produktname VARCHAR(100),
    preis DECIMAL(10,2)
);

Beispiel

produkt_id produktname preis
1 Laptop 899.99
2 Maus 19.99

Die produkt_id ist der Primärschlüssel. Jedes Produkt besitzt eine eindeutige ID.


5. AUTO_INCREMENT

Mit AUTO_INCREMENT wird bei jedem neuen Datensatz automatisch eine neue Nummer erzeugt.

SQL-Code

CREATE TABLE kategorien (
    kategorie_id INT AUTO_INCREMENT PRIMARY KEY,
    bezeichnung VARCHAR(100) NOT NULL
);

Beispielergebnis

kategorie_id bezeichnung
1 Elektronik
2 Möbel
3 Kleidung

6. NOT NULL und DEFAULT

NOT NULL bedeutet, dass eine Spalte keinen NULL-Wert enthalten darf. Mit DEFAULT wird ein Standardwert festgelegt.

SQL-Code

CREATE TABLE mitarbeiter (
    mitarbeiter_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    aktiv BOOLEAN DEFAULT TRUE
);

Wenn beim Einfügen kein Wert für aktiv angegeben wird, verwendet MySQL standardmäßig TRUE.


7. SHOW TABLES

Mit SHOW TABLES werden alle Tabellen der aktuell ausgewählten Datenbank angezeigt.

SQL-Code

USE projektarbeit;

SHOW TABLES;

Beispielergebnis

Tables_in_projektarbeit
-----------------------
kunden
produkte
kategorien
mitarbeiter

8. DESCRIBE

Mit DESCRIBE kann die Struktur einer Tabelle angezeigt werden.

SQL-Code

DESCRIBE kunden;

Beispielergebnis

Field Type Null Key
kunden_id int NO PRI
name varchar(100) NO
stadt varchar(100) YES
alter int YES

9. CREATE TABLE IF NOT EXISTS

Mit IF NOT EXISTS wird eine Tabelle nur erstellt, wenn sie noch nicht existiert.

SQL-Code

CREATE TABLE IF NOT EXISTS lieferanten (
    lieferant_id INT AUTO_INCREMENT PRIMARY KEY,
    firmenname VARCHAR(100) NOT NULL,
    stadt VARCHAR(100)
);

Existiert die Tabelle bereits, wird sie nicht erneut erstellt. Die vorhandene Tabellenstruktur bleibt dabei unverändert.


10. Praktisches Gesamtbeispiel

Im folgenden Beispiel wird eine Datenbank ausgewählt und eine Tabelle für Bestellungen erstellt.

SQL-Code

USE projektarbeit;

CREATE TABLE bestellungen (
    bestellung_id INT AUTO_INCREMENT PRIMARY KEY,
    kunden_id INT NOT NULL,
    bestelldatum DATE NOT NULL,
    gesamtbetrag DECIMAL(10,2)
);

SHOW TABLES;

DESCRIBE bestellungen;

Erklärung

  1. Die Datenbank projektarbeit wird ausgewählt.
  2. Die Tabelle bestellungen wird erstellt.
  3. SHOW TABLES zeigt die vorhandenen Tabellen.
  4. DESCRIBE zeigt die Tabellenstruktur.

Die Spalte kunden_id kann später als Fremdschlüssel definiert werden, um eine Beziehung zur Tabelle kunden herzustellen.


11. Zusammenfassung

Mit CREATE TABLE werden Tabellen erstellt. Datentypen bestimmen, welche Werte gespeichert werden können. PRIMARY KEY identifiziert Datensätze eindeutig und AUTO_INCREMENT ermöglicht eine automatische Nummerierung. SHOW TABLES zeigt vorhandene Tabellen, während DESCRIBE ihre Struktur anzeigt.