Datenbanken - 3. Semester (Fach) / SQL 2 (Lektion)
In dieser Lektion befinden sich 13 Karteikarten
SQL 2
Diese Lektion wurde von zrah erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
- Warum sollen Fremdschlüssel in eigenen Statements (ALTER TABLE) ausgeführt werden und nicht direkt beim Anlegen der Tabelle? Falls beim Anlegen der Tabelle der referenzierte Fremdschlüssel noch nicht exisitert, bricht das Create- Statement ab und die Tabelle wird nicht angelegt. Der Eintrag in der Tabelle, die von einer anderen durch FK abhängig ist, muss also NACH dem Eintrag in der Haupttabelle geschehen: create table tango (vorlnr number(10) primary key, titel varchar2(50)); create table samba (matnr number (10) primary key, name varchar2(10)); create table jive (matnr number(10) references samba, vorlnr number(10) references tango)); Wird mit ALTER TABLE der Fremdschlüssel erst nach den Tabellen erstellt, so minimiert dass die Wahrscheinlichkeit, dass dieser nicht vorhanden ist.
- Wie würden Sie einen guten primary key erzeugen, wenn Sie nicht autoincrement verwenden? Ein Primary Key muss zumindest einzigartig (UNIQUE) und NOT NULL sein.
- Was wird bei create table durch die Angabe eine Default-Wertes bei einer Spalte bewirkt? Wird dieses Datenfeld beim Ausfüllen der Zeile leer gelassen, wird automatisch der definierte Default-Wert eingefügt.
- Was bewirken Fremdschlüssel zwischen zwei Tabellen? Er zeigt die Beziehung zwischen zwei Tabellen an (z.B. Vorgesetzter und Untergebener).
- Aus welchen Klauseln (Syntaxelementen) besteht ein select-Statement? SELECT spalte FROM tabelle (WHERE kondition GROUP BY spalte HAVING weitere kondition ORDER BY spalte);
- Aus welchen Klauseln (Syntaxelementen) besteht ein insert-Statement und welche 3 Varianten von insert-Statements gibt es bei MySQL? INSERT INTO tabelle (spalte1, spalte2, …) VALUES(wert1, wert2, ...) ; INSERT INTO tabelle VALUES(wert1, wert2, ...);INSERT INTO tabelle SET spalte1 = wert1, spalte2 = wert2,...
- Aus welchen Klauseln (Syntaxelementen) besteht ein update-Statement? UPDATE tabelle SET spalte1=wert1, spalte2=wert2 WHERE spalte=wert LIMIT...; (wird WHERE weggelassen, werden alle Tabellen geändert)
- Aus welchen Klauseln (Syntaxelementen) besteht ein delete-Statement? DELETE FROM tabelle WHERE spalte=wert LIMIT...;
- Was ist der Unterschied zwischen truncate table und delete ohne where-Klausel? Sie bewirken beide das Löschen von Datensätzen, TRUNCATE löscht jedoch immer den gesamten Tabelleninhalt und kann mit ROLLBACK nicht rückgängig gemacht werden, außerdem kann es schneller verarbeitet werden (benötigt weniger Systemressourcen und Ressourcen für die Transaktionsprotokollierung). DELETE gibt im Gegensatz zu TRUNCATE zusätzlich die Anzahl der gelöschten Datensätze zurück.
- Was bewirkt die limit-Klausel bei select, update und delete? Sie bewirkt eine Begrenzung der Auswahl/Änderung. Der erste Wert gibt dabei den Start an (z.B. 0 = der erste Eintrag) und der zweite die Anzahl an (z.B. 10 = 10 Einträge).
- Mit welchem Operator wird mit NULL-Werten verglichen? IS NULL
- Welche Abfragen werden mit LIKE gestellt? Es wird an die WHERE Klausel gehängt um sie z.B. nach einem Muster weiter zu unterteilen, z.B. um eine Stadt zu suchen, die mit 'S' beginnt → WHERE city LIKE 's%'. Das %-Zeichen (Wildcard) gibt dabei an, dass nach dem s ein weiteres, beliebiges Zeichen folgen kann und kann auch vor dem Suchbegriff gestellt werden.
- Wofür werden welche Operatoren benutzt? > AND (um Bedingungen in der WHERE-Klausel zu erweitern)> OR (um Bedingungen in der WHERE-Klausel zu erweitern)> IS NOT NULL> IS NULL> IS und IS NOT (boolean-Vergleich)> LIKE (Vergleiche mit Zeichen und Wildcards)> ungleich(<=>), gleich (=), addieren/subtrahieren (+/-)
