Title: DML

Feedback shared by this category's questions, if right: Die Antwort ist richtig.
Feedback shared by this category's questions, if partly right: Die Antwort ist teilweise richtig.
Feedback shared by this category's questions, if wrong: Die Antwort ist falsch.

Q: Welche SQL-Befehle lösen eine Integritätsprüfung aus?
- COMMIT
- INSERT
- SELECT
- SAVE
A: COMMIT; INSERT

Q: Was versteht man unter der Abkürzung DQL?

D [...]
M [...]
L [...]
A: ata / Data; anipulation / Manipulation; anguage / Language
Feedback: DML ist die Abkürzung für Data Manipulation Language und meint die SQL-Befehle INSERT, UPDATE, DELETE. Manche zählen auch noch SELECT dazu. Aber bei uns gehört SELECT zur DQL: Data Query Language.

Q: Welche Befehle gehören zur DML?
- CREATE
- INSERT
- SELECT
- UPDATE
- ALTER
- RENAME
- DELETE
- DROP
- ADD
A: INSERT; UPDATE; DELETE
Feedback: DDL (Data Definition Language): CREATE, ALTER, DROP, RENAME, ... DML (Data Manipulation Language): INSERT, UPDATE, DELETE DQL (Data Query Language): SELECT

Q: Bei einer INSERT-Anweisung kann man die Spaltennamen hinter "INSERT INTO Tabellenname (...)" unter bestimmten Bedingungen weglassen.
- Wahr
- Falsch
A: Wahr
Feedback: In einer INSERT-Anweisung kann man die Spaltennamen nach INSERT weglassen, wenn alle Spalten der Tabelle mit Werten gefüllt werden.

Q: Ein UPDATE-Befehl kann eine SELECT-Anweisung enthalten.
- Wahr
- Falsch
A: Wahr
Feedback: Die Wert-Zuweisung "SET Spalte = ..." kann auch mit dem Ergebnis einer SELECT-Anweisung gefüllt werden, wenn die Datentypen übereinstimmen.

Q: Ordnen Sie die Befehle den passenden Erklärungen zu.
- Einfügen von Daten in eine Tabelle | INSERT INTO
- Verändern von Daten in einer Tabelle | UPDATE
- Löschen von Daten aus einer Tabelle, ohne die Tabellendefinition zu löschen | DELETE FROM
- Löschen der Tabellendefinition inkl. der vorhandenen Daten | DROP
Feedback: DML-Befehle Befehl | Erklärung INSERT INTO | Einfügen von Daten in eine Tabelle UPDATE | Verändern von Daten in einer Tabelle DELETE FROM | Löschen von Daten aus einer Tabelle, ohne die Tabellendefinition zu löschen DROP | Löschen der Tabellendefinition inkl. der vorhandenen Daten

Q: Welche der folgenden DELETE-Anweisungen ist korrekt?
- DELETE Abt_nr, Bezeichnung FROM Abteilungen;
- DELETE FROM Abteilungen;
- DELETE FROM TABLE Abteilungen;
- DELETE Abt_nr, Bezeichnung FROM TABLE Abteilungen;
A: DELETE FROM Abteilungen;
Feedback: Eine DELETE-Anweisung kann nur komplette Zeilen einer Tabelle, keine einzelnen Spaltenwerte, löschen.

Q: Welche der folgenden UPDATE-Anweisungen ist korrekt?
- UPDATE tab1 SET spalte1 = ( SELECT tab2.spalte2 FROM tab2 WHERE tab1.spalte3 = tab2.spalte3 );
- UPDATE tab1 SET spalte1 = tab2.spalte2 WHERE tab1.spalte3 = tab2.spalte3;
A: UPDATE tab1 SET spalte1 = ( SELECT tab2.spalte2 FROM tab2 WHERE tab1.spalte3 = tab2.spalte3 );
Feedback: In einem UPDATE-Befehl kann man nur über eine SELECT-Anweisung auf eine andere Tabelle zugreifen.

Q: Welcher SQL-Befehl kann eine SELECT-Abfrage enthalten?
- CREATE TABLE
- INSERT
- DROP TABLE
- UPDATE
- DELETE
A: CREATE TABLE; INSERT; UPDATE; DELETE
Feedback: Es gibt einen Befehl zum Einfügen von mehreren Datensätzen aus anderen Tabellen oder Sichten: INSERT INTO tabellenname AS SELECT (spaltenwert_1, ..., spaltenwert_n) FROM ... WHERE ...; Bei den DML-Befehlen UPDATE und DELETE kann die SELECT-Anweisung in der WHERE-Klausel auftreten, um nur bestimmte Datensätze zu ändern bzw. zu löschen. Beim UPDATE können zudem SELECT-Anweisungen auch in der SET-Klausel verwendet werden, um neue Werte für den zu ändernden Datensatz zu ermitteln. Beim CREATE TABLE kann eine neue Tabellenstruktur erstellt und gleichzeitig mit Daten aus anderen Tabellen oder Sichten gefüllt werden. Beim DROP TABLE gibt es keine Verwendungsmöglichkeit für einen SELECT und ist daher auch nicht möglich. Eine Tabellen wird als Ganzes gelöscht, inklusive dem Tabelleninhalt.

Q: Welche der folgenden INSERT-Anweisungen in eine Tabelle ist korrekt? Tabelle 2 soll die gleichen Spalten wie die Tabelle test haben.

test (
  Nr NUMBER(9),
  Bezeichnung VARCHAR(20),
  Wert NUMBER(9)
)
- INSERT INTO test (1, 20, 'Bier')
- INSERT INTO test VALUES (1, 'Bier')
- INSERT INTO test VALUES (1, 'Bier', 20)
- INSERT INTO test(Nr, Bezeichnung, Wert) VALUES (1, 'Bier', 20)
- INSERT INTO test (Nr, Wert, Bezeichnung) VALUES (1, 'Bier', '20')
- INSERT INTO test SELECT Nr, Bezeichnung, Wert FROM Tabelle2
A: INSERT INTO test VALUES (1, 'Bier', 20); INSERT INTO test(Nr, Bezeichnung, Wert) VALUES (1, 'Bier', 20); INSERT INTO test SELECT Nr, Bezeichnung, Wert FROM Tabelle2
Feedback: Bei einer INSERT-Anweisung müssen die Werte in der Reihenfolge der Spaltenliste hinter dem Tabellennamen, oder wenn dieser fehlt, in der Reihenfolge der Spaltendefinition vorkommen.

Q: Wie können Sie reagieren, wenn Sie beim Löschen eines Datensatzes (DELETE-Befehl) die Fehlermeldung bekommen, dass noch abhängige Datensätze existieren?
- Wenn für die Fremdschlüsselspalten der betroffenen Detail-Datensätze NULL-Constraints definiert sind, dann können, die bestehenden Werte aus den Fremdschlüsselspalten gelöscht werden.
- Zuerst den Master-Datensatz löschen und dann die Detail-Datensätze.
- Zuerst die Detail-Datensätze löschen und dann den Master-Datensatz.
- Zuerst die Werte der Fremdschlüsselspalten der betroffenen Detail-Datensätze mittels eines UPDATE-Befehls auf die Schlüsselwerte eines noch existierenden Master-Datensatzes ändern.
A: Wenn für die Fremdschlüsselspalten der betroffenen Detail-Datensätze NULL-Constraints definiert sind, dann können, die bestehenden Werte aus den Fremdschlüsselspalten gelöscht werden.; Zuerst die Detail-Datensätze löschen und dann den Master-Datensatz.; Zuerst die Werte der Fremdschlüsselspalten der betroffenen Detail-Datensätze mittels eines UPDATE-Befehls auf die Schlüsselwerte eines noch existierenden Master-Datensatzes ändern.
Feedback: Daten in Tabellen mit Primary-Key können nur gelöscht werden, wenn der Primary Key nicht mehr als Foreign-Key in einer anderen Tabelle verwendet wird.