DB
Datenbanken
Datenbanken
-
- 1 / 152
-
Cartes-fiches
Wie wird eine Sequence beim EInfügen mittels UPDATE-Statement erhöht ?
INSERT INTO Kunden (Kunden_ID , Name) VALUES
(Kunden_ID_Sequencename.NEXTVAL , 'Horst' ) ;
Welche der folgenden ALTER-TABLE Anweisungen sind gültig ?
Was tut :
DROP TABLE kunden CASCADE CONSTRAINTS ; ?
Entfernt eine Tabelle samt Indizes, Views und Constraints ,
auch FK-Constraints, die nicht ohne weiteres entfernt werden könnten werden durch CASCADE CONSTRAINTS gelöscht
Welche Aussagen sind wahr?
Welche dieser Befehle sind gültige SQL DAL Befehle?
Was wird unter Oracle jedem Datenbankuser automatisch zugeordnet?
Unter Oracle wird jedem Nutzer automatisch ein Datenbankschema zugeordnet, welche Vorteile hat dies?
Jeder Nutzer arbeitet in seinem eigenen Namensraum , d.h zwei Nutzer können die gleichen Tabellennamen ohne Konflikte vergeben. Zusätzlich dazu kann Nutzer1 die Tabellen von Nutzer2 über Nutzer2.Tabellenname ansprechen
Welche dieser Ausdrücke bezeichnen Sichten im Oracle Data Dictionary ?
Welche Befehle kennt die SQL DML ?
Worin unterscheiden sich :
INSERT INTO Teile (TNr, Typ, Bezeichnung) VALUES (38, 'Baugruppe', 'Dynamo');
INSERT INTO Teile VALUES (38, 'Baugruppe', 'Dynamo');
?
Wenn die Spaltennamen angegeben sind , ist die Reihenfolge der Werte beliebig .
Wenn die Spaltennamen fehlen , müssen die Werte in richtiger Reihenfolge /Datentypen sein
Was passiert bei dieser Anweisung mit den Spalten , die nicht in der Spaltenliste aufgeführt sind?
INSERT INTO Kunden (Kun_Nr, Nachname) SELECT Ang_Nr, Nachname FROM Angestellte;
Sie werden mit NULL-Werten aufgefüllt. Falls Sie keine NULL-Werte erlauben schlägt das Ausführen dieser Anweisung fehl.
Ändern Sie in der Tabelle „Items“ alle Bezeichnungen „Harry P “ in „Hermine G“!
UPDATE ITEMS SET Bezeichnung='Hermine G' WHERE Bezeichnung='Harry P'
Übersetze folgende Änderung in ein UPDATE-Statement :
Allen Angestellten(Tabellenname) der Abteilung 7 werden 20 % vom Gehalt abgezogen.
UPDATE angestellte SET gehalt=gehalt*0.9 WHERE abteilung_nr=7 ;
Eine andere Form der UPDATE -Klausel ist die MERGE Klausel, die seit SQL Standard 3 (2003) existiert .
Was unterscheidet MERGE von UPDATE?
Merge ändert /fügt Daten hinzu , jenachdem ob der Datensatz schon existiert oder nicht.
Ein Teil der DML ist die DELETE- Klausel .
Was tut :
DELETE FROM angestellte;
löscht alle Datensätze aus der Tabelle angestellte
Eine Transaktion ist in SQL eine Folge von DQL und DML Anweisungen , der die ACID-Eigenschaften erfüllt.
Welche Eigenschaften sind das?
A - Atomicity - Transaktionen sind atomar und als unteilbare Einheiten auszuführen
C - Consisteny - Eine Transaktion bringt eine Datenbank von einem konsistenten Zustand in einen weiteren.
I - Isolation - Änderungen laufen Isoliert voneinander ab . Mehrbenutzerbetrieb wird nur simuliert.
D - Durability - DIe Ergebnisse einer Transaktion werden dauerhaft in der Datenbank gespeichert
Welche dieser Ausdrücke bezeichnen einen Teil der sog. ACID - Eigenschaften von SQL Transaktionen?
Wenn ein Constraint mit Prüfzeitpunkt "defferable initially DEFERRED" angegeben wird, wann wird die Prüfung dann durchgeführt?
Was passiert wenn ein mit defferable initially immediate definierter Constraint einen Fehler wirft?
Was passiert, wenn ein mit defferable initially deffered definiertes Constraint einen Fehler wirft ?
Aus wievielen Befehlen kann eine Transaktion bestehen ,die ein CREATE , ALTER oder DROP Statement enthält?
Eine Transaktion wird unter SQL immer mit COMMIT abgeschlossen .
DIe 3 Befehle der DDL (CREATE , ALTER , DROP ) beinhalten alle ein implizites COMMIT ,
daher stellt jeder dieser Befehle auch eine eigene Transaktion dar.
Man kann den Start und das Ende einer Transaktion explizit angeben . Mit welchen Schlüsselworten können Transaktionen begonnen , bzw beendet werden ?
START TRANSACTION ;
-- hier DML , DQL Anweisungen
COMMIT ; oder ROLLBACK ;
Welche Probleme können bei Multinutzer Betrieb auftreten ?
Was tut :
SET CONSTRAINTS constraintname DEFERRED ;
Ändert den Prüfungszeitpunkt eines als IMMEDIATE definierten Constraints in DEFERRED :
Was passiert im Fehlerfall bei PK, CHECK , UNIQUE , NOT NULL Constraints ?
Was kann bei Feherfall eines FK Constraints eingestellt werden ?
Beim Fehlerfall von PK , UNIQUE , NOT NULL und CHECK wird ein ROLLBACK ausgeführt.
Wenn bei einem FK Constraint ein Fehler geworfen wird kann eine automatische Fehlerkorrektur eingestellt werden
Welche Klauseln kennt das Select-Statement ?
Welche sind obligatorisch ?
Select kennt :
SELECT (obligatorisch)
FROM(obligatorisch)
WHERE
GROUP BY
HAVING
ORDER BY
Was unterscheidet die WHERE von der HAVING Klausel?
WHERE selektiert Datensätze aus Tabellen
HAVING selektiert Gruppen und darf auch Aggregat / Gruppenfunktioen enthalten .
Beispiel :
SELECT *
FROM store_info
GROUP BY store_location
HAVING AVG(verlaufszahlen)>1500;
Wie kann man folgende Aufgabe elegant lösen :
Zeigen SIe alle Angestellten (Nachname + Vorname in einer Spalte) .
SELECT vorname || ' ' ||nachname
FROM angestellte;
Das || ' ' || fügt zwischen den selektierten Spalten noch ein leerzeichen ein
Erkläre die Syntax und Semantik von folgendem Ausdruck :
SELECT DISTINCT c.area , f.image
FROM countrys c JOIN flags f
ON c.countrycode = f.countrycode;
Syntax:
-DISTINCT unterdrückt doppelte Tupel ( Defautl : ALL )
- in der Select Anweisung Tabellennamen auch Abkürzungen sein ,die in der FROM Klausel vergeben werden
- c und f sind Abkürzungen für die Tabellen
- in der Fromklausel werden die beiden Tabellen Countrys und Flags mit einem Join nach der Selektionsbedingung countrycode= countrycode Verbunden .
Semantik : Zeigt alle Countrys, die auch in der Flags Tabelle vorhanden sind mit ihren Fahnen an.
Zeige mittels SELECT alle Angestellten ( Ang_ID ) , die in den Tabellen "Abteilungen" , "Angestellte" und "Lieferanten" vorkommen. Dabei soll kein Join Verwendet werden , die Spalte "Ang _ID" heißt in allen Tabellen gleich ,darf aber als 3 Spalten ausgegeben werden.
SELECT Abt.Ang_ID,Ang.Ang_ID , Lie.Ang_ID
FROM Abteilungen Abt , Angestellte Ang , Lieferanten Lie ;
Was tut :
SELECT *
FROM angestellte , kunden ;
?
Die Select Anfrage hat nur die beiden obligatorischen Klauseln .
Wenn keine WHERE oder JOIN Klausel angegeben ist, gibt dieser Ausdruck das Kartesische Produkt der beiden Eingangsmengen aus.
Gebe das kartesische Produkt der beiden Tabellen Kunden und Angestellte mittels Select aus.
SELECT *
FROM kunden , angestellte ;
oder
SELECT *
FROM kunden
CROSS JOIN angestellte ;
Was tut folgender Ausdruck :
SELECT *
FROM kunden , angestellte
USING id , name
Die FROM-Klausel stellt das kartesische Produkt der beiden Tabellen her ,
Die USING-Klausel erweitert diese Funktion wie ein natural join , die Spalten hinter USING sind die Namensgleichen Spalten beider Tabellen , deren Ihalt verglichen werden soll
Nenne eine andere Schreibweise für :
SELECT *
FROM tabelle1
NATURAL JOIN tabelle2 ;
SELECT *
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.spalte1 = tabelle2.spalte1;
Oder :
SELECT *
FROM tabelle1 , tabelle2
WHERE tabelle1.spalte1=tabelle2.spalte1
Wo liegt der Unterschied zwischen :
SELECT *
FROM tabelle1
RIGHT JOIN tabelle2
USING (spalte1);
SELECT *
FROM tabelle1
RIGHT JOIN tabelle2
ON tabelle1.spalte1=tabelle2.spalte1
Es besteht kein Unterschied, die Verwendung von USING setzt jedoch voraus, dass die beiden Tabellen eine gemeinsame Spalte haben .
Kann man in der ON- Klausel auch Bedingungen angeben ?
Nenne ein Beispiel .
SELECT *
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.spalte1 = tabelle2.spalte1 AND name='horst' ;
Welche Aussagen bezüglich der dreiwertigen Logik sind wahr?
Selektieren Sie alle Angestellten, die der Abteilung 2 oder keiner Abteilung angehören und jeweils weniger als 5000 Euro verdienen.
Tabelle : Angestellte
SELECT *
FROM angestelle
WHERE ( abteilung=2 OR abteilung IS NULL ) AND gehalt<5000;
false AND unknown = ?
true AND unknown = ?
(dreiwertige Logik)
false AND unknown = false
true AND unknown = unknown
Was tut :
SELECT *
FROM veranstaltung
WHERE datum BETWEEN (
TO_CHAR(01.01.1992 , 'DD.MM.YYYY')
AND
TO_CHAR(01.01.1993 , 'DD.MM.YYYY''));
Selektiert alle Tupel aus "veranstaltung" mit einem Austragungsdatum
zwishen 01.01.1992 und 01.01.1993