Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m290_guko:learningunits:lu07:theorie:b_sql_dml [2025/09/28 19:55] gkochmodul:m290_guko:learningunits:lu07:theorie:b_sql_dml [2025/09/28 20:07] (aktuell) gkoch
Zeile 1: Zeile 1:
-====== LU07b – Einführung & INSERT ====== +====== LU07b – SQL-DML: Einführung & Daten einfügen ======
-===== Lernziele ===== +
-  * Ich kann Daten **einfügen** (//INSERT//). +
-  * Ich erkenne typische **Fehlerquellen** (falsche Datentypen, Schlüsselverletzungen). +
 ===== Einführung ===== ===== Einführung =====
- 
 In LU05 haben wir die **DDL** (Data Definition Language) kennengelernt, mit der Tabellen angelegt werden. In LU05 haben wir die **DDL** (Data Definition Language) kennengelernt, mit der Tabellen angelegt werden.
  
Zeile 22: Zeile 17:
  
 > **Wichtig:** //film_id// ist der **Primärschlüssel** → jeder Datensatz erhält automatisch eine eindeutige ID.   > **Wichtig:** //film_id// ist der **Primärschlüssel** → jeder Datensatz erhält automatisch eine eindeutige ID.  
-> **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)) aber mitgemeint.)
  
 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 35: 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: Einzelzeile)**  +
 <WRAP center box 80% round><code sql> <WRAP center box 80% round><code sql>
 INSERT INTO tabellenname (spalte1, spalte2, spalte3) INSERT INTO tabellenname (spalte1, spalte2, spalte3)
 VALUES (wert1, wert2, wert3); VALUES (wert1, wert2, wert3);
 </code></WRAP> </code></WRAP>
 +
 +**Syntax (mehrere Zeilen auf einmal)**
 +<WRAP center box 80% round><code sql>
 +INSERT INTO tabellenname (spalte1, spalte2, spalte3)
 +VALUES (wert1a, wert2a, wert3a),
 +       (wert1b, wert2b, wert3b);
 +</code></WRAP>
 +
 +**Syntax (INSERT ... SELECT)**
 +<WRAP center box 80% round><code sql>
 +INSERT INTO zieltabelle (spalte1, spalte2, spalte3)
 +SELECT quelle_spalte1, quelle_spalte2, quelle_spalte3
 +FROM quelle
 +WHERE bedingung;
 +</code></WRAP>
 +
 +---
  
 **Variante A: Spalten explizit angeben** **Variante A: Spalten explizit angeben**
Zeile 71: 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 //imdb_top_1000// übernommen werden sollen.
 +
 <WRAP center box 80% round><code sql> <WRAP center box 80% round><code sql>
 INSERT INTO favourite_film (title, director, released_year, star1) INSERT INTO favourite_film (title, director, released_year, star1)
Zeile 78: Zeile 93:
 </code></WRAP> </code></WRAP>
  
-> **Hinweis:** Mit der %%WHERE%%-Bedingung können gezielt nur bestimmte Datensätze übernommen werden.+> **Hinweis:** Mit %%WHERE%% können gezielt nur bestimmte Datensätze übernommen werden (z. B. ab Jahr 2000).
  
  • modul/m290_guko/learningunits/lu07/theorie/b_sql_dml.1759082120.txt.gz
  • Zuletzt geändert: 2025/09/28 19:55
  • von gkoch