from-klausel Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Syntax select from Beispiel select from liefert die gesamte Relation



Ähnliche Dokumente
Relationale Datenbanksprachen

8. Relationale Datenbanksprachen

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Webbasierte Informationssysteme 8. Datenbanksprache SQL

8. Relationale Datenbanksprachen. SQL-Kern. Kartesisches Produkt. from-klausel

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

SQL als Zugriffssprache

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Teil VII Die relationale Anfragesprache SQL

Datenbanken. SQL Einführung und SQL-DDL

ACCESS SQL ACCESS SQL

Abfragen (Queries, Subqueries)

Übersicht der wichtigsten MySQL-Befehle

Vorlesung Datenbankmanagementsysteme

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Wiederholung VU Datenmodellierung

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Teil III. Relationale Datenbanken Daten als Tabellen

Grundlagen von Datenbanken

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Wiederholung VU Datenmodellierung

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Vorlesung Datenbankmanagementsysteme

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Kapitel 3: Datenbanksysteme

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

SQL. Abfragesprache Datenmanipulation - DML

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Die Sprache QUEL. Beispiel für QUEL-Anfrage. Weitere Datenbanksprachen. Anfragen in QUEL. Welche Lieferanten liefern von Weiß bestellte Waren?

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Kommunikation und Datenhaltung

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Diskussion: Personal (1)

Relationale Anfragesprachen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

dbis Praktikum DBS I SQL Teil 2

Kapitel 5: Sortieren, Gruppieren und Views in SQL

Kriterien für Anfragesprachen. Einführung II. Grundlagen von Anfragen und Änderungen

Relationen-Algebra. Prof. Dr. T. Kudraß 1

Grundlagen von Datenbanken

Datenbanken: Relationales Modell und SQL. Dr. Matthias Uflacker, Stefan Klauck 23. April 2018

Verbunde (Joins) und mengentheoretische Operationen in SQL

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Verbunde (Joins) und mengentheoretische Operationen in SQL

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

DATENBANKSYSTEME: SQL

2.5 Structured Query Language (SQL)

Datenbankabfragen und Datenmanipulation

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Datenbanken und SQL. Kapitel 4. Die Datenbankzugriffssprache SQL. Edwin Schicker: Datenbanken und SQL (4)

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

Kapitel 5: Der SQL-Standard

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken SQL. Dr. Gerd Gröner Wintersemester 2013/14

Datenmodelle und Anfragesprachen. Datenbankmodell. Datenbankmodell. ƒ Entity-Relationship-Modell ƒ Relationale Datenbanken Relationenmodell SQL

Datenbanksysteme SS 2007

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

SQL: Weitere Funktionen

Teil VIII. Weitere Datenbanksprachen

Grundlagen von Datenbanken

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

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies

Einführung in die Spezialisierungsrichtungen

Die Anweisung create table

Operationen auf Relationen

Query Languages (QL) Relationale Abfragesprachen/Relational

Datenmanipulation in SQL (1): Subselect:

Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL

Inhaltsverzeichnis. Einleitung

Fortsetzung: Projektion Selektion. NULL Werte

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL ist eine relational vollständige Datenbanksprache.

Transkript:

Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen Andreas Heuer, Gunter Saake Datenbanken I 9-1 Grundlagen Kommerzielle Sprachen ISBL SQL QUEL QBE Relationenalgebra Tupelkalkül Bereichskalkül Andreas Heuer, Gunter Saake Datenbanken I 9-2 Projektionsliste SQL-Kern arithmetische Operationen und Aggregatfunktionen zu verwendende Relationen eventuelle Umbenennungen (durch Tupelvariable oder alias ) Selektionsbedingungen Verbundbedingungen Geschachtelte Anfragen (wieder ein SFW-Block) group by Gruppierung für Aggregatfunktionen having Selektionsbedingungen an Gruppen Andreas Heuer, Gunter Saake Datenbanken I 9-3 -Klausel Syntax Beispiel liefert die gesamte Relation Andreas Heuer, Gunter Saake Datenbanken I 9-4

join cross join natural join Bezug zum Tupelkalkül Weitere Verbunde in SQL-92 korrespondierende Kalkülausdrücke automatisch sicher Gleichverbund using natürlicher Verbund jeder SFW-Block hinter (SQL-92 orthogonal) Andreas Heuer, Gunter Saake Datenbanken I 9-6 Andreas Heuer, Gunter Saake Datenbanken I 9-8 Kartesisches Produkt SQL-92-Spezialitäten Bei mehr als einer Relation hinter : kartesisches Produkt Einführung von Tupelvariablen: etwa auf eine Relation mehrfach zugreifen Ergebnis hat acht Spalten: Verbunde als explizite Operatoren kartesisches Produkt Verbund über Verbundbedingungen join-operator: -Verbund Selbst-Verbund (Self-Join) für tupelübergreifende Selektionen on join Andreas Heuer, Gunter Saake Datenbanken I 9-5 Andreas Heuer, Gunter Saake Datenbanken I 9-7

distinct Äußere Verbunde II Projektionsergebnis Menge oder Multimenge A B 1 2 2 3 ABC 1 2 2 3 4 45 B C 3 4 4 5 ABC 1 2 2 3 4 A B C 2 3 4 ABC 2 3 4 45 distinct Name Meyer Schulz Müller Meyer Name Meyer Schulz Müller Andreas Heuer, Gunter Saake Datenbanken I 9-10 Andreas Heuer, Gunter Saake Datenbanken I 9-12 Äußere Verbunde Die -Klausel Statt inner join nun outer join (dangling tuples übernehmen und mit Nullwerten auffüllen) Relationenalgebra: abschließende Projektion Relationenkalkül: Zielliste full outer join: in beiden Operanden left outer join: im linken Operanden Attribute aus -Relationen right outer join: im rechten Operanden Arithmetische Ausdrücke über Attributen und Konstanten Aggregatfunktionen über Attributen distinct: Ergebnismenge statt Multimenge Andreas Heuer, Gunter Saake Datenbanken I 9-9 Andreas Heuer, Gunter Saake Datenbanken I 9-11

Tupelvariablen und Relationennamen Angabe der Attributnamen durch Präfix ergänzen und Tupelvariable kann benutzt werden: Andreas Heuer, Gunter Saake Datenbanken I 9-13 Tupelvariablen und Relationennamen II (falsch) (richtig) Andreas Heuer, Gunter Saake Datenbanken I 9-14 Die -Klausel Selektionsbedingung der Relationenalgebra oder Verbundbedingung Bedingung: Konstanten-Selektion Attribut-Selektion zwischen Attributen mit kompatiblen Wertebereichen: Andreas Heuer, Gunter Saake Datenbanken I 9-16 Bezug zum Tupelkalkül : Zielliste im Tupelkalkül Letzte Anfrage entspricht Andreas Heuer, Gunter Saake Datenbanken I 9-15

and or like Verbundbedingung Beispiel: natürlicher Verbund auch Gleichverbund und -Verbund erlaubt Andreas Heuer, Gunter Saake Datenbanken I 9-17 Bereichsselektion between Abkürzung für Beispiel between and Andreas Heuer, Gunter Saake Datenbanken I 9-18 and Ungewißheitsselektion II Anwendung: Selektion nach Büchern von Benjamin/Cummings Ungewißheitsselektion theoretisch nur Abkürzung für disjunktiv verknüpfte Bedingung Syntax Spezialkonstante kann beinhalten % (kein oder beliebig viele Zeichen) (genau ein Zeichen) Andreas Heuer, Gunter Saake Datenbanken I 9-19 like ist Abkürzung für or or or or Andreas Heuer, Gunter Saake Datenbanken I 9-20

or Bezug zum Tupelkalkül -Klausel: qualifizierende Formel in Tupelkalkülanfragen entspricht im Tupelkalkül and Das in-prädikat und geschachtelte Anfragen Syntax: Beispiel: in in natürlicher Verbund mit nachfolgender Projektion Andreas Heuer, Gunter Saake Datenbanken I 9-22 Andreas Heuer, Gunter Saake Datenbanken I 9-24 Weitere Bedingungen Schachtelung von Anfragen Null-Selektion is null Quantifizierte Bedingungen, wenn ein Argument in Vergleich Menge liefert (all, any, some und exists) boolesche Ausdrücke mit Konnektoren or, and und not -Klausel kann geschachtelt werden SFW-Blöcke liefern im allgemeinen mehrere Werte Vergleiche mit Wertemengen Standardvergleiche in Verbindung mit Quantoren all ( ) oder any ( ) spezielle Prädikate für den Zugriff auf Mengen in und exists Andreas Heuer, Gunter Saake Datenbanken I 9-21 Andreas Heuer, Gunter Saake Datenbanken I 9-23

Verzahnt geschachtelte Anfragen Das exists-prädikat in der inneren Anfrage Relationen- oder Tupelvariablen-Name aus dem -Teil der äußeren Anfrage verwenden in testet, ob Ergebnis der inneren Anfrage nicht leer exists Andreas Heuer, Gunter Saake Datenbanken I 9-26 Andreas Heuer, Gunter Saake Datenbanken I 9-28 Abarbeitung Das in-prädikat und geschachtelte Anfragen II 1. Ergebnis der inneren -Anweisung hinter in als Liste von Konstanten einsetzen 2. Dann modifizierte Anfrage abarbeiten in Abarbeitung Verzahnt geschachtelte Anfragen II 1. In der äußeren Anfrage das erste Personen-Tupel untersuchen Ergebnis in innere Anfrage einsetzen 2. innere Anfrage auswerten, liefert Werteliste ( 2.0, 2.3 ) 3. Ergebnis der inneren Anfrage in die äußere einsetzen 1.0 in ( 2.0, 2.3 ) ergibt false ersten Prüfer nicht berücksichtigen 4. in der äußeren Anfrage das zweite Personen-Tupel untersuchen usw. Andreas Heuer, Gunter Saake Datenbanken I 9-25 Andreas Heuer, Gunter Saake Datenbanken I 9-27

-Quantor mit gilt Bezug zum Tupelkalkül Kompatible Attribute exists-prädikat: -Quantor des Tupelkalküls Attribute sind kompatibel bei kompatiblen Wertebereichen andere Schachtelungsoperatoren ebenfalls auf Quantoren zurückführen Zwei Wertebereiche sind kompatibel, wenn sie simulieren gleich sind oder beides auf der Länge der Strings) oder basierende Wertebereiche sind (unabhängig von beides numerische Wertebereiche sind (unabhängig von dem genauen wie Typ) oder ) Kompatible Attribute können in Vergleichen und Mengenoperationen benutzt werden Andreas Heuer, Gunter Saake Datenbanken I 9-30 Andreas Heuer, Gunter Saake Datenbanken I 9-32 exists: Simulation des Allquantors SQL-92: Tupelbildungen not exists and not exists row constructors bilden Tupel aus Konstanten oder Attributen Attribute müssen kompatibel sein (siehe unten) and wahr, wenn ein (lexikographische Ordnung) existiert, für das und für alle Andreas Heuer, Gunter Saake Datenbanken I 9-29 Andreas Heuer, Gunter Saake Datenbanken I 9-31

" union corresponding Simulation der Differenz Vereinigung, Durchschnitt und Differenz in SQL-92 union, intersect und except orthogonal in andere Anfragen einsetzbar in SQL not in count union corresponding-klausel: zwei Relationen nur über ihren gemeinsamen Bestandteilen vereinigen count Andreas Heuer, Gunter Saake Datenbanken I 9-34 Andreas Heuer, Gunter Saake Datenbanken I 9-36 SQL-89: Vereinigung Vereinigung und äußere Verbunde SQL-89: Vereinigung union einzige Mengenoperation union umgesetzt left outer natural join Beispiel: von Attributkompatiblität: von und von, union und von von, und von Ergebnis: Attributnamen des linken Operanden Vereinigung nur als äußerste Operation erlaubt. union not exists null Andreas Heuer, Gunter Saake Datenbanken I 9-33 Andreas Heuer, Gunter Saake Datenbanken I 9-35

as Weitere Sprachkonstrukte von SQL Operationen auf Wertebereichen Aggregatfunktionen group by und having SQL-92-Spezialitäten Bsp.: zweite Spalte nicht benannt, in SQL-89 über Spaltennummer identifizierbar: Quantoren und Mengenvergleiche Beispiele für Selbst-Verbund in SQL-92 : Attributname zuordnen: order by Nullwerte Änderungs-Operationen Andreas Heuer, Gunter Saake Datenbanken I 9-38 Andreas Heuer, Gunter Saake Datenbanken I 9-40 Vergleich Relationenalgebra und SQL Relationenalgebra SQL-89 SQL-92 Projektion distinct distinct Selektion ohne Schachtelung ohne Schachtelung Verbund,, mit join oder natural join Umbenennung mit Tupelvariable mit Tupelvariable as Differenz mit Schachtelung mit Schachtelung except corresponding Durchschnitt mit Schachtelung mit Schachtelung intersect corresponding Vereinigung union (nicht orthogonal) union corresponding Operationen auf Wertebereichen innerhalb von und : statt Attribute auch skalare Ausdrücke numerischen Wertebereiche: etwa,,, Strings: char length, Konkatenation, substring (Teilzeichenkette) Datumstypen, Zeitintervalle: current date, current time,,, Ausdrücke werden tupelweise ausgewertet Ergebnis ISBN 3-89319-175-5 54,86 0-8053-1753-8 50,24 0-8053-1753-8 61,70 0-201-53771-0 60,73 3-929821-31-1 54,86 Andreas Heuer, Gunter Saake Datenbanken I 9-37 Andreas Heuer, Gunter Saake Datenbanken I 9-39

Aggregatfunktionen: Beispiele group by und having II sum count count distinct avg all all notwendig having ist Selektionsbedingung auf gruppierter Relation darf Bezug nehmen auf Gruppierungsattribute beliebige Aggregatfunktionen über Nicht-Gruppierungsattributen avg all Andreas Heuer, Gunter Saake Datenbanken I 9-42 Andreas Heuer, Gunter Saake Datenbanken I 9-44 built-in-funktionen: tupelübergreifend Aggregatfunktionen count: Anzahl der Werte einer Spalte oder (Spezialfall count( )) Anzahl der Tupel einer Relation sum: Summe der Werte einer Spalte avg: arithmetisches Mittel der Werte einer Spalte max bzw. min: größter bzw. kleinster Wert einer Spalte Argumente einer Aggregatfunktion: Attribut der durch spezifizierten Relation gültiger skalarer Ausdruck bei count auch Vor Argument (außer bei count( )) optional: distinct oder all (all Voreinstellung) Nullwerte werden vor Anwendung aus Wertemenge eliminiert (außer bei count( )) Syntax group by having group by und having d.h. Semantik (virtuelle geschachtelte Relation): Relationenschema Attributmenge hinter Gruppierung und schachteln nach Attributen für gleiche, -Werte werden Resttupel in Relation gesammelt der -Klausel genügende Tupel also schachteln gemäß Andreas Heuer, Gunter Saake Datenbanken I 9-41 Andreas Heuer, Gunter Saake Datenbanken I 9-43

group by some Schritt 1: Schritt 2: Schritt 3: Schritt 4: Gruppierung: Schema A B C D 1 2 3 4 1 2 4 5 2 3 3 4 3 3 4 5 3 3 6 7 A B N C D 1 2 3 4 4 5 2 3 3 4 3 3 4 5 6 7 A sum(d) N C D 1 9 3 4 4 5 2 4 3 4 3 12 4 5 6 7 A sum(d) 1 9 und group by A, B A, sum(d) having A and sum(d) and max(c) Andreas Heuer, Gunter Saake Datenbanken I 9-45 Gruppierung: Beispiele count group by as Anzahl PANr 2 7754 1 4711 1 5588 2 9912 Andreas Heuer, Gunter Saake Datenbanken I 9-46 Gruppierung: Beispiele II count group by having count PANr 2 7754 2 9912 having avg avg Andreas Heuer, Gunter Saake Datenbanken I 9-47 Quantoren und Mengenvergleiche Syntax all any Bedeutung all Allquantor, any, some Existenzquantoren Beispiele any Andreas Heuer, Gunter Saake Datenbanken I 9-48

Selbst-Verbund letzte Anfrage erst mit Selbst-Verbund zu lösen Vergleich von Wertemengen and and B A 1.ISBN B A 1.Autor B A 2.ISBN B A 2.Autor 3-89319-175-5 Vossen 3-89319-175-5 Vossen 3-89319-175-5 Vossen 3-89319-175-5 Witt 3-89319-175-5 Vossen 0-8053-1753-8 Elmasri 3-89319-175-5 Witt 3-89319-175-5 Vossen Menge von Tupeln Liste Syntax order by Beispiel order by asc order by-klausel aufsteigend (asc) oder absteigend (desc) sortieren Andreas Heuer, Gunter Saake Datenbanken I 9-50 Andreas Heuer, Gunter Saake Datenbanken I 9-52 Quantoren und Mengenvergleiche II Selbst-Verbund II and all Anwendbarkeit eingeschränkt: Test auf Mengen-Gleichheit Zählen von Wertemengen distinct and in SQL so nicht umsetzbar: Gib alle Bücher aus, an denen Vossen und Witt gemeinsam als Autoren beteiligt waren Andreas Heuer, Gunter Saake Datenbanken I 9-49 Andreas Heuer, Gunter Saake Datenbanken I 9-51

Behandlung von Nullwerten skalare Ausdrücke: Ergebnis null, sobald Nullwert in die Berechnung eingeht In allen Aggregatfunktionen bis auf count( ) werden Nullwerte vor Anwendung der Funktion entfernt Fast alle Vergleiche mit Nullwert ergeben Wahrheitswert unknown (statt true oder false). Ausnahme: is null ergibt true, is not null ergibt false Boolesche Ausdrücke basieren dann auf dreiwertiger Logik Änderungsoperationen Einfügen von Tupeln in Basisrelationen (oder Sichten) insert Löschen von Tupeln aus Basisrelationen (oder Sichten) delete Ändern von Tupeln in Basisrelationen (oder Sichten) update Diese Operationen jeweils als Eintupel-Operationen (etwa die Erfassung einer neuen Ausleihung) Mehrtupel-Operationen (erhöhe das Gehalt aller Mitarbeiter um 4.5%) SQL: vor allem Mehrtupel-Operationen Änderungsoperationen auf Sichten: später Andreas Heuer, Gunter Saake Datenbanken I 9-54 Andreas Heuer, Gunter Saake Datenbanken I 9-56 order by-klausel II Sortierung wird auf das Ergebnis der jeweils vorangehenden SFW-Anfrage angewendet, also FALSCH: order by (falsch) Behandlung von Nullwerten II and true unknown false true true unknown false unknown unknown unknown false false false false false or true unknown false true true true true unknown true unknown unknown false true unknown false not true unknown false false unknown true Andreas Heuer, Gunter Saake Datenbanken I 9-53 Andreas Heuer, Gunter Saake Datenbanken I 9-55

insert into update Syntax update set Beispiele update Angestellte Name Gehalt Meyer 3000 Schulz 3500 Bond 7200 Schulz 4400 set Andreas Heuer, Gunter Saake Datenbanken I 9-57 update II Angestellte Name Gehalt Meyer 4000 Schulz 4500 Bond 7200 Schulz 5400 update update set set Andreas Heuer, Gunter Saake Datenbanken I 9-58 delete delete delete Standardfall ist Löschen mehrerer Tupel: delete Löschen der gesamten Relation: delete Andreas Heuer, Gunter Saake Datenbanken I 9-59 insert insert into values insert into values insert into values insert into Andreas Heuer, Gunter Saake Datenbanken I 9-60

SEQUEL2 SQL-89 bot mehr als SQL-89 intersect und minus neben union und sogar mehr als SQL-92 Mengenvergleiche mit set und zwei SFW-Blöcken Beispiele: Level 1 keine Nullwerte keine Selektionsbedingungen mit oder exists keine union-operation Level 2: wie hier beschrieben Level 2 IEF (Integrity Enhancement Feature) check-klausel: -Klausel als Integritätsbedingung Definition von Primärschlüsseln und Fremdschlüsseln Andreas Heuer, Gunter Saake Datenbanken I 9-62 Andreas Heuer, Gunter Saake Datenbanken I 9-64 Geschichte SQL-Versionen SEQUEL (1974, IBM Research Labs San Jose) SEQUEL2 (1976, IBM Research Labs San Jose) SQL (1982, IBM) ANSI-SQL (SQL-86; 1986) ISO-SQL (SQL-89; 1989; drei Sprachen Level 1, Level 2, (ANSI / ISO) SQL2 (SQL-92) (ANSI / ISO) SQL3 (geplant) SQL DDL, (SSL,) IQL, DML IEF) Sichtdefinition, Transaktionsdefinition, Rechtevergabe, Integritätssicherung Statt auch in möglich SEQUEL2 II set set ermittelt alle Prüfernr pro Matrnr Andreas Heuer, Gunter Saake Datenbanken I 9-61 Andreas Heuer, Gunter Saake Datenbanken I 9-63

SQL-92 II Sprache fast vollständig orthogonal (etwa union, SFW hinter dreiwertige Logik set transaction: verschiedene Isolationsstufen (siehe Datenbanken II) Embedded SQL und Dynamic SQL sind Teil der Norm (siehe nächstes Kapitel) Data Dictionary ist Teil der Norm Andreas Heuer, Gunter Saake Datenbanken I 9-66 neue Datentypen (wie SQL-92 ) Domänenkonzept (create domain, alter domain) Änderung des Datenbankschemas: alter table und drop table allgemeine Integritätsbedingungen (mehrere Tabellen) -Operationen erweitert Namen für abgeleitete Spalten join, cross join, natural join, outer join als eigene Operatoren auch intersect und except SQL-92 III Feature in SQL-92 Entry Intermediate Full Datum, Intervalltypen, domain -Operationen join except, intersect alter, drop table set transaction Dynamic SQL union orthogonal andere Orthogonalitätsverbesserungen corresponding bei Mengenoperationen dreiwertige Logik allgemeine Integritätsbedingungen check mit Bezug zu anderen Tabellen alter domain Tabellenkonstruktoren Andreas Heuer, Gunter Saake Datenbanken I 9-65 Andreas Heuer, Gunter Saake Datenbanken I 9-67