Unterabfragen (Subqueries)



Ähnliche Dokumente
Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Professionelle Seminare im Bereich MS-Office

How to do? Projekte - Zeiterfassung

OPERATIONEN AUF EINER DATENBANK

Informatik 12 Datenbanken SQL-Einführung

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

SQL: statische Integrität

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

teischl.com Software Design & Services e.u. office@teischl.com

IV. Datenbankmanagement

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

2.1 Briefkopf Klicken Sie im Menü Einstellungen auf den Button Briefkopf. Folgendes Formular öffnet sich:

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Geben Sie in dem offenen Suchfeld den Namen Ihrer Einrichtung ein und klicken Sie auf Suchen.

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

ecaros2 - Accountmanager

Kostenstellen verwalten. Tipps & Tricks

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Saldo-Konto eines Mitarbeiters korrigieren

Transaktionsverwaltung

7. Übung - Datenbanken

SQL Performance - Tips Do's & Don'ts

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Die Grundbegriffe Die Daten Die Informationen

Änderung des Portals zur MesseCard-Abrechnung

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Tag 4 Inhaltsverzeichnis

EINFACHES HAUSHALT- KASSABUCH

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Hilfe zur Urlaubsplanung und Zeiterfassung

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Anleitung über den Umgang mit Schildern

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Vertrieb durch: h+f Informatik und Elektrotechnik Washingtonstrasse 32 CH-9400 Rorschach Tel: +41 (0) Mobile: +41 (0)

Views in SQL. 2 Anlegen und Verwenden von Views 2

Einfügen von Bildern innerhalb eines Beitrages

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Updatehinweise für die Version forma 5.5.5

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Ablaufbeschreibung Einrichtung EBICS in ProfiCash

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Tag 4 Inhaltsverzeichnis

1 BEDIENUNGSANLEITUNG

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

SANDBOXIE konfigurieren

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Lehrer: Einschreibemethoden

Leichte-Sprache-Bilder

Bedienungsanleitung für den Online-Shop

Hilfedatei der Oden$-Börse Stand Juni 2014

Bauteilattribute als Sachdaten anzeigen

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

QR-FUNKTION. Informationen über zu erledigende Aufgaben an das Reinigungspersonal senden.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

GlobalHonknet.local. Entfernen von Metadaten aus Active Directory nach Offlineschaltung und fehlgeschlagener DC Herabstufung

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Hilfe zur Dokumentenverwaltung

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

SEMINAR Modifikation für die Nutzung des Community Builders

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

1. Arbeiten mit dem Touchscreen

MWF-Bore-Admin Version 1.0.7

Vorgehensweise bei Lastschriftverfahren

Freigabemitteilung Nr. 39. Neue Funktionen adresse zurücksetzen / ändern Kennung ändern Anlegen von OCS (elektr. Postfach) Mailbenutzern

OP-LOG

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Anleitung - Archivierung

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

SJ OFFICE - Update 3.0

Erstellen eines Formulars

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

IAWWeb PDFManager. - Kurzanleitung -

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt?

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

BsBanking. Nach dem Anmelden werden Ihnen alle Rechtsanwälte angezeigt. Sie können hier auch neue anlegen und vorhandene bearbeiten.

Serviceanweisung Austausch Globalsign Ausstellerzertifikate

Netzwerkeinstellungen unter Mac OS X

Berechtigungsgruppen und Zeitzonen

Transkript:

Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und Tabelle2 ein Beziehungsfeld (Feldname) haben.

Die Basisoperatoren sind: Vergleichsoperatoren : >=, <, =, >, >=, <> (ungleich); IN NOT ANY SOME ALL EXISTS

Beispiel : Man ermittelt Namen und Einwohnerzahl aller Hauptstädte. Bemerkung: Haupstadt ist ein Attribut der Relation LAND und Einwohnerzahl ist ein Attribut der Relation STADT. Man wird deshalb die Abfrage in zwei Schritten lösen. SELECT Name, Einwohner FROM Stadt WHERE Name IN ( SELECT Hauptstadt FROM Land;);

Beispiel : Ist in der Bibliothek mindestens ein Buch im Bereich der Informatik vorhanden? SELECT * FROM Bücher WHERE Bereich = ANY (SELECT Bereich FROM Bücher WHERE Bereich = Informatik ); ANY und SOME haben die selbe Rolle wie der Operator IN; der Vergleich ist wahr, wenn er für wenigstens einen einzigen Tupel bestätigt werden kann.

Mit dem Operator ALL, ist der Vergleich wahr, wenn er für alle Tupel bestätigt werden kann. Beispiel : Man entziehe die Informationen, betreffend die Nummer und das Datum des Dokumentes, die Kode des Produktes und die MWSt für alle Produkte, dessen MWSt grösser als die MWSt des Produktes mit der Kode 1222 ist. SELECT Nr, Datum, Kode, MWSt FROM Rechnungen WHERE MWSt > ALL (SELECT MWSt FROM Rechnungen WHERE Kode = 1222);

Beispiel: Man entziehe die Liste der Bücher die ausserhalb der Hauptstadt geliefert werden. SELECT * FROM Bücher WHERE Ort <>ALL (SELECT Ort FROM Bücher WHERE Ort = Bukarest ); Hier ist der Operator <> ALL derselbe wie der Operator NOT IN.

Der Operator EXISTS benutzt die Unterabfragen als Bedingung. Man analysiert die Ergebnisse der Unterabfragen. Im Falle wo keine Tupel im Ergebnis vorkommen, wird der Wert False angezeigt. Beispiel: Gibt es in der Bibliothek Bücher die nach dem Jahr 1995 veröffentlicht wurden? SELECT * FROM Bücher WHERE EXISTS (SELECT* FROM Bücher WHERE Jahr > 1995);

Vereinigung von Ergebnistabellen Der Befehl ist: SELECT Felderliste FROM Tabelle1 UNION SELECT Felderliste FROM Tabelle2 [GROUP BY Gruppierungsfeld] [HAVING Gruppierungskriterium] [UNION SELECT Felderliste FROM Tabelle3 [GROUP BY Gruppierungsfeld] [HAVING Gruppierungskriterium]] [UNION ] [ORDER BY Sortierungskriterium];

Beispiel: Ermittelt die Namen aller Städte und Länder: SELECT Name FROM Stadt UNION SELECT Name FROM Land; Datenbank Änderungen. Das Einbringen von Daten. Die Daten können externe Daten oder Daten aus anderen Relationen sein. a) Einbringen von externen Daten. Der Befehl ist : INSERT INTO Tabellenname (Attributname1,, Attributnamek) VALUES (Wert1,, Wertk); Beispiel. INSERT INTO Konto VALUES ( Frankfurter Str., 1234, Meier, 10000); Diese Methode ist nur für kleinere Datenmengen geeignet.

b) Kopieren von Daten aus anderen Relationen. Der Befehl ist: INSERT INTO Tabelle(Feld1, ) SELECT Felderliste FROM Tabelle1 [, Tabellek] [WHERE Bedingung] [ORDER BY ]; Beispiel: INSERT INTO Konto SELECT Filiale, Kredit, Kname, 200 FROM Kredit WHERE Filiale = Frankfurter Str. ;

Bemerkung. Dieser Befehl ist wichtig auch für die Reorganisierung einer Tabelle. Bei der Reorganisation werden die Daten physisch kopiert, um in eine andere Struktur umgeformt zu werden. Eine Möglichkeit bietet sich durch das Anlegen temporärer Relationen und Umkopieren der Daten. Schematisch sind dazu folgende Schritte notwendig: Eine temporäre Tabelle mit neuer Struktur anlegen (mit dem Befehl CREATE TABLE). Daten in die temporäre Tabelle einbringen : INSERT INTO SELECT ; Relation mit der alter Struktur löschen: DROP TABLE Die temporäre Tabelle umbenennen : RENAME

Löschen von Daten. Die Löschoperationen in SQL sind ähnlich strukturiert wie die Anfragen. DELETE FROM Tabelle [WHERE Bedingung]; Löschoperationen sind auf eine einzige Tabelle bezogen. Obwohl bloß die Tupel aus einer Tabelle gelöscht werden, können mehrere Tabellen in der Selektionsformel erwähnt werden. Die Bedingung kann beliebig komplex sein. Eine fehlende WHERE Klausel wird als TRUE interprätiert.

Beispiele : a) Löschen aller Einträge: DELETE FROM Kredit; Alle Sätze der Tabelle Kredit wird gelöscht. b)löschen von einzelnen Sätzen: DELETE FROM Konto WHERE Kname = Meier ; Alle Konto-Information für Meier werden gelöscht. c) Löschen mehrerer Sätze: DELETE FROM Kredit WHERE Kredit >1000 AND Kredit < 2000; Alle Kredite mit Kreditnummer zwischen 1000 und 2000 werden gelöscht.

Die Sätze, die selektiert und gelöscht werden sollen, können durch eine beliebige WHERE Klausel identifiziert werden. DELETE FROM Konto WHERE Filiale IN (SELECT Filiale FROM Bank WHERE Bstadt = Darmstadt ); Modifizieren von Daten. Nicht alle Änderungen können als einfache DELETE/INSERT Paare ausgedrückt werden. Deshalb gibt es eine andere Möglichkeit : die UPDATE Operation.

Wie alle Operationen in SQL erfolgt auch die Änderung von Daten nur deskriptiv. Die UPDATE Operation erlaubt dem Anwender einzelne Feldwerte zu ändern, ohne den Rest des Sätze zu beeinflussen. Die allgemeine Form der UPDATE Operation ist folgende: UPDATE Tabelle SET Feld1 = Wert1, Feld2 =Wert2, [WHERE Bedingung]; Die fehlende WHERE Klausel wird als wahre Bedingung gewertet. Eine WHERE Klausel im UPDATE hat das gleiche Format, wie die WHERE Klausel beim SELECT.

a) Ändern aller Sätze: Erhöhe alle Kontostände um 8%. UPDATE Konto SET Saldo = Saldo *1.08; b) Ändern einzelner Sätze: In Norwegen wird ein Mensch geboren: UPDATE Land SET Einwohner = Einwohner +1 WHERE Name = Norwegen ; c) Ändern mehrerer Sätze: Erhöhe alle Konten um den entsprechenden Zinsbetrag. Für Konten mit mehr als 100 000 EUR und 12 Monaten Anlagezeit gibt es 7%, für kleinere Beträge oder kürzere Anlagezeiten 4%. UPDATE Konto SET Saldo = Saldo *1.07 WHERE Saldo > 100000 AND Periode >=12; UPDATE Konto SET Saldo = Saldo * 1.04 WHERE Saldo <= 100000 OR Periode <12;

Datenschutz Die Rolle. Nicht jedem Anwender ist es erlaubt, auf alle Tabellen uneingeschränkt zuzugreifen. Deshalb bietet SQL mittels des Befehls GRANT Recht ON Tabelle TO Benutzer; die Vergabe von Zugriffsrechten auf Tabellen an.

Als mögliche Rechten sind: ALTER - die Änderung der Definition der Tabelle DELETE das Löschen der Daten aus der Tabelle INDEX die Indizierung der Tabelle INSERT die Eingabe der Daten SELECT die Auswahl der Daten UPDATE die Aktualisierung der Daten ALL gibt dem Anwender alle Rechte Wird das obige Konstrukt um die Formulierung WITH GRANT OPTION erweitert, so darf der Benutzer dieses erworbene Recht an andere weitergeben. Wird ihm das Recht wieder entzogen, so verlieren auch diejenige das Recht, die es von ihm erhalten haben.

Der Entzug von Rechten erfolgt analog zur Vergabe mit dem Befehl: REVOKE Recht ON Tabelle FROM Benutzer; Beispiele. GRANT INSERT, UPDATE ON Land TO Prinz; GRANT UPDATE(Einwohner) ON Land TO Wolf; GRANT SELECT ON Stadt TO PUBLIC; REVOKE SELECT ON Stadt FROM PUBLIC; REVOKE INSERT ON Land FROM Prinz;

Transaktionsverwaltung Für die Transaktionsverarbeitung gibt es drei Befehle u. zwar: BEGIN TRANSACTION oder DECLARE TRANSACTION ROLLBACK [Tabelle] oder COMMIT END TRANSACTION Mit dieser Arbeitsweise, also mit der Transaktionsvearbeitung, kann man die Änderungen in Ruhe überprüfen und danach entscheiden, ob man sie endgültig ausführt oder wieder zurücksetzen will.

Es ist eine Möglichkeit, bestimmte Aktualisierungen an Datensätzen oder Datenfeldern nicht sofort auszuführen, sondern erst eine Protokolldatei zu speichern. Die Protokolldatei existiert nur so lange, bis die Transaktion abgeschlossen ist. Danach wird sie automatisch wieder gelöscht. Die obigen Befehle haben folgende Bedeutungen: BEGIN TRANSACTION - Transaktionsverarbeitung einleiten; ROLLBACK - vorgenommene Aktualisierungen wieder zurücksetzen; COMMIT die Aktualisierungen werden durchgeführt; END TRANSACTION Transaktion beenden. Anschließend können keine Änderungen mehr rückgängig gemacht werden.

Beispiel. BEGIN TRANSACTION INSERT INTO Land(Name, Hauptstadt) VALUES ( China, Pekin ); INSERT INTO Stadt(Name) VALUES( Pekin ); SELECT * FROM Stadt; SELECT * FROM Land; ROLLBACK END TRANSACTION Die anderen zulässigen Befehle sind DELETE und UPDATE.