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: |