Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
modul:m290_guko:learningunits:lu07:theorie:b_sql_dml [2025/09/28 19:56] – gkoch | modul:m290_guko:learningunits:lu07:theorie:b_sql_dml [2025/09/28 20:07] (aktuell) – gkoch | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LU07b – SQL-DML: Einführung & Daten einfügen ====== | ====== LU07b – SQL-DML: Einführung & Daten einfügen ====== | ||
- | |||
===== Einführung ===== | ===== Einführung ===== | ||
- | |||
In LU05 haben wir die **DDL** (Data Definition Language) kennengelernt, | In LU05 haben wir die **DDL** (Data Definition Language) kennengelernt, | ||
Zeile 19: | Zeile 17: | ||
> **Wichtig: | > **Wichtig: | ||
- | > **DML** = **Data Manipulation Language**: %%INSERT%%, %%UPDATE%%, %%DELETE%%. (//Read// erfolgt mit %%SELECT%% und gehört streng genommen zur **DQL**, wird im Alltag bei CRUD aber mitgemeint.) | + | > **DML** = **Data Manipulation Language**: %%INSERT%%, %%UPDATE%%, %%DELETE%%. (//Read// erfolgt mit %%SELECT%% und gehört streng genommen zur **DQL**, wird im Alltag bei CRUD((Create, Read, Update, Delete Operationen)) |
Bisher haben wir neue Datensätze über die **Webstorm-Oberfläche** eingefügt (//Edit Data > " | Bisher haben wir neue Datensätze über die **Webstorm-Oberfläche** eingefügt (//Edit Data > " | ||
Zeile 32: | Zeile 30: | ||
+ | ===== INSERT Statement ===== | ||
+ | Der Befehl %%INSERT%% fügt neue Datensätze in eine Tabelle ein. Dabei muss angegeben werden, **in welche Spalten** die Werte eingefügt werden. | ||
- | ===== INSERT – Daten einfügen ===== | + | **Syntax (Einzelzeile)** |
- | + | ||
- | **Syntax (allgemein: | + | |
<WRAP center box 80% round>< | <WRAP center box 80% round>< | ||
INSERT INTO tabellenname (spalte1, spalte2, spalte3) | INSERT INTO tabellenname (spalte1, spalte2, spalte3) | ||
VALUES (wert1, wert2, wert3); | VALUES (wert1, wert2, wert3); | ||
</ | </ | ||
+ | |||
+ | **Syntax (mehrere Zeilen auf einmal)** | ||
+ | <WRAP center box 80% round>< | ||
+ | INSERT INTO tabellenname (spalte1, spalte2, spalte3) | ||
+ | VALUES (wert1a, wert2a, wert3a), | ||
+ | | ||
+ | </ | ||
+ | |||
+ | **Syntax (INSERT ... SELECT)** | ||
+ | <WRAP center box 80% round>< | ||
+ | INSERT INTO zieltabelle (spalte1, spalte2, spalte3) | ||
+ | SELECT quelle_spalte1, | ||
+ | FROM quelle | ||
+ | WHERE bedingung; | ||
+ | </ | ||
+ | |||
+ | --- | ||
**Variante A: Spalten explizit angeben** | **Variante A: Spalten explizit angeben** | ||
Zeile 68: | Zeile 83: | ||
**Variante C: INSERT ... SELECT (Daten aus einer anderen Tabelle übernehmen)** | **Variante C: INSERT ... SELECT (Daten aus einer anderen Tabelle übernehmen)** | ||
+ | Mit %%INSERT ... SELECT%% können Datensätze direkt aus einer anderen Tabelle kopiert werden. | ||
+ | Das ist z. B. praktisch, wenn Daten aus // | ||
+ | |||
<WRAP center box 80% round>< | <WRAP center box 80% round>< | ||
INSERT INTO favourite_film (title, director, released_year, | INSERT INTO favourite_film (title, director, released_year, | ||
Zeile 75: | Zeile 93: | ||
</ | </ | ||
- | > **Hinweis: | + | > **Hinweis: |