Relationale Datenbanksysteme

Werbung
Datenbanken
Relationale Datenbanksysteme
Relationale Datenbanksysteme
Einfache Grundidee: speichere alle Daten in Tabellen
Relational, weil ... abgeleitet vom mathematischen Konzept der
Relationen als Menge von Tupeln (etwa: Tabellenzeilen) mit
Werten für Attribute mit unterschiedlichen Wertebereichen
(Tabellenspalten)
Überwiegende Mehrheit aktueller DBMS sind relationale DBMS →
RDBMS
Die standardisierte Datenbanksprache SQL implementiert
relationales Datenmodell (mit kleinen Abweichungen von der
Theorie und von verwendeten Begriffen)
Hinweis: im folgenden gehen wir von in SQL verwendeten
Begriffen aus
Gegenwärtiger Stand: objekt-relationale DBMS (ORDBMS)
(SQL:2008) mit objektorientierten Erweiterungen (in dieser
Vorlesung nicht behandelt)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–16
Datenbanken
Relationale Datenbanksysteme
Aktuell verbreitete DBMS
Kommerzielle relationale DBMS, z.B.
◮
◮
◮
Oracle Database
IBM DB2
Microsoft SQL Server
Freie (Open Source) RDBMS, z.B.
◮
◮
MySQL
PostgreSQL
Speziallösungen:
◮
◮
Für Analyse großer Datenmengen in Data Warehouse Systemen,
z.B. Teradata
Andere Datenmodelle, wie z.B. objektrorientierte DBMS
(Objectivity, Versant) oder XML DBMS (Xindice, eXist)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–17
Datenbanken
Relationale Datenbanksysteme
RDBMS Grundkonzepte: Tabellen
(-2,09C'+0
AB19'+0
@0821-
:?3301
()*2340
:0%01
=>'
/0-01
(08'&-%'9
7!#!"# <
;!6!"# .
"5!6!"# 7
()*2340
/0-01
"!.!"#
()*+%,-
$%&'
!"!"#
Tabellen haben Namen und bestehen aus Spalten und Zeilen
Schema der Tabelle besteht aus fester Anzahl von Spalten
Spalten repräsentieren Eigenschaften – haben Namen und festgelegten
Datentyp
Zeilen repräsentieren eigentliche Daten – haben für jede Spalte einen
Spaltenwert
Tabelle hat beliebiebige Anzahl von Zeilen (inklusive leerer Tabelle)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–18
Datenbanken
Relationale Datenbanksysteme
RDBMS Grundkonzepte: Schlüssel
2)968=)
'()*+*
+(58
BC*=(58
A8<9*)
!&##
'@::8*
>?(
#-.- .,$
!"$ $
%!###
2349:;8
'808*
78)8*
28<(1)0(=
%-&- .,!
"-&- .,#
!!"#
2349:;8
78)8*
-!- .,,
!!"#$
234506)
/01(
,- - .,,
Schlüssel (auch Primärschlüssel) erlauben eindeutige Identifizierung
von Datensätzen (Zeilen) innerhalb einer Tabelle
Einzelne Spalte oder Kombination mehrerer Spalten, deren
Wert(ekombination) innerhalb der Tabelle einmalig ist
Existieren solche Spalten nicht, kann eine Spalte mit künstlich erzeugten
eindeutigen Werten (Surrogatschlüssel) eingeführt werden
Dient vor allem der Referenzierung der Daten aus anderen Tabellen →
Fremdschlüssel
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–19
Datenbanken
Relationale Datenbanksysteme
RDBMS Grundkonzepte: Fremdschlüssel
Tabellen beinhalten bloß Zeilen mit fester Anzahl von atomaren
Werten
Komplexere Beziehungen zwischen Daten werden über
Fremdschlüsselbeziehungen zwischen Zeilen dargestellt:
Verwendung des Schlüssels einer Zeile als spezieller Spaltenwert
in einer anderen Zeile(meist aus einer anderen Tabelle)
N:1-Beziehung: eine beliebige Anzahl (N) Datensätze in einer
Tabelle beziehen sich auf einen anderen Datensatz
◮
Beispiel: Studenten wird genau ein Studiengang zugeordnet, ein
Studiengang umfaßt viele Studenten
N:M-Beziehung: beliebig viele (N) Datensätze einer Tabelle
können sich auf beliebig viele (M) andere Datensätze beziehen
◮
Beispiel: ein Student kann viele Vorlesungen besuchen, eine
Vorlesung wird von vielen Studenten besucht
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–20
Datenbanken
Relationale Datenbanksysteme
RDBMS Grundkonzepte: Fremdschlüssel N:1
40.G,;0
170/8/ 87F,
DE/;7F,
+,-./0
4+56
!)$''!
1C??,/
AB7
'#%#!%&*
12
!)"*!*
4=>.?@,
<,0,/
(#$#!%&)
312
!()'''
1,:,/
4,-790:7;
!"#$#!%&'
12
40.G:,;I7;I
4+56
2,@,:=>;.;I
12
179=>:;,;-7.
312
3:/09=>7H09:;I,;:,./J179=>:;,;-7.
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–21
Datenbanken
Relationale Datenbanksysteme
RDBMS Grundkonzepte: Fremdschlüssel N:M
/*27-8*
?D+3-A28E
()*+,+ ,)6-
?=@
G-4-.01828E
!#'$$!
(533-+
<=>
<+2873)E-8B7-+B=8FD+6)*.C
!#%&!&
/01234-
:;
:D8A*+2C*.D8A-3-6-8*-
!"#$$$
(-.-+
9(
9-018.A01-B(-01)8.C
9-.38)16-
Eike Schallehn
()*+,+ ?=@
/-6-A*-+
!#'$$!
<=>
H./-IJIK
!#'$$!
<=>
/D/-IK
!#'$$!
9(
/D/-IK
!#%&!&
:;
H./-I#IJ
Grundlagen der Informatik für Ingenieure
2008/2009
6–22
Datenbanken
Relationale Datenbanksysteme
Weitere RDBMS Konzepte
NULL-Werte: kann ein Spaltenwert nicht angegeben werden (weil
z.B. nicht bekannt oder nicht existent), kann der vordefinierte und
typunabhängige Wert NULL verwendet werden
Für Spalten und Tabellen können Integritätsbedingungen (Integrity
Constraints) angegeben werden, die konsistenten Zustand
beschreiben
◮
◮
◮
◮
◮
◮
Eindeutigkeit von Spaltenwerten (UNIQUE)
Spaltenwert muss angegeben werden (NOT NULL)
Spaltenwert ist Schlüssel (PRIMARY KEY = UNIQUE + NOT
NULL)
Wertebereichseinschränkungen
Referentielle Integrität: Fremschlüsselwert muss als
Primärschlüssel in korrespondierender Tabelle existieren
...
Zahlreiche weitere Konzepte hier nicht diskutiert
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–23
Datenbanken
Relationale Datenbanksysteme
Operationen auf Tabellen
Anfrageoperationen basieren auf Relationaler Algebra
Eingabe: Relation(en)
Ausgabe: Relation(en)
Grundlegende Operationen
◮
◮
◮
◮
Selektion: Auswahl von Tupeln (Zeilen) durch Angabe einer
Auswahlbedingung
Projektion: Auswahl von Attributen (Spalten) durch Angabe von
deren Namen
Verbundoperationen: (engl. Joins) Zusammenführen von Tupeln
verschiedener Relationen (Tabellen) über Verfolgung von
Fremdschlüsselbeziehungen oder durch die Angabe von
Verbundbedingungen
Mengenoperationen: zum Beispiel Vereinigung oder
Schnittmenge von Relationen
→ umgesetzt durch Anfragesprache SQL
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–24
Datenbanken
Relationale Datenbanksysteme
SQL – Die Structured Query Language
Deklarative Anfragesprache
◮
◮
◮
SQL Anfrage beschreibt lediglich zu liefernde Daten
RDBMS entscheidet selbständig, wie Ergebnis effizient berechnet
werden kann
Im Gegensatz zu imperativen Programmiersprachen, die genauen
Ablauf der Berechnung festlegen
Geschichte
◮
◮
◮
◮
Entwickelt in den 1970ern bei IBM
Erfolgreiche Standardisierung seit 1986
SQL-92 umfaßt relationalen Sprachkern und wird von vielen
RDBMS vollständig unterstützt
Aktuelle Version SQL:2008 umfaßt zahlreiche Erweiterungen
(Objektorientierung, XML, Multimedia, etc.)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–25
Datenbanken
Relationale Datenbanksysteme
Teile von SQL
Anfragesprache (SQL-Kern): lesende Zugriffe durch Umsetzung
der relationalen Operationen zum Auswahl von Zeilen, Spalten
sowie Verbund und Mengenoperationen auf Tabellen +
SQL-spezifische Erweiterungen (z.B. Sortierung, Gruppierung,
etc.)
Data Manipulation Language (DML): Erzeugen, Ändern und
Löschen von Datensätzen in Tabellen
Data Definition Language (DDL): Erzeugen, Ändern und
Löschen von Tabellen sowie Indexen (Baum- oder
Hash-Datenstrukturen für Zugriffsbeschleunigung) und Sichten
(aus Anfragen definierte virtuelle Tabellen)
Weitere Teile:
◮
◮
Zugriffsrechte (Data Control Language)
Transaktionen zur Steuerung der Ablaufkonsistenz
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–26
Datenbanken
Relationale Datenbanksysteme
Überblick SQL
Im folgenden Teile von SQL erklärt entsprechend Reihenfolge der
Nutzung – entspricht nicht unbedingt Bedeutung
1
Erzeugung von Tabellen → DDL → Einmalig genutzt beim
Erstellen der Datenbank
2
Einfügen von Daten → DML → Erzeugung und Modifikation in
meisten Anwendungen seltener als ...
3
Lesen der Daten → Anfragesprache → meist sehr oft angewandt
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–27
Datenbanken
Relationale Datenbanksysteme
SQL DDL: Operationen für Tabellen
Erzeugen einer Tabelle
CREATE TABLE student (
matrnr
CHAR(6) PRIMARY KEY,
name
VARCHAR(50) NOT NULL,
vorname VARCHAR(50)NOT NULL,
geburt
DATE,
sgid
CHAR(5)
);
Ändern einer Tabelle: Hinzufügen/Löschen/Ändern von Spalten,
Constraints, etc.
ALTER TABLE student (ADD|DROP|MODIFY|CHANGE) ...;
Löschen einer Tabelle
DROP TABLE student;
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–28
Datenbanken
Relationale Datenbanksysteme
SQL DDL: Basisdatentypen laut SQL Standard
Ganzzahlige Datentypen: smallint, int bzw. integer,
bigint
Festkommazahlen (garantierte Genauigkeit der
Nachkommastellen): numeric (n, m) bzw. decimal (n, m)
Gleitkommazahlen: float (m), real, double
Zeichenketten character (n) bzw. char (n), varchar (n)
bzw. character varying (n)
Zeiten und Datumsangaben: date, time, timestamp
Logische Werte: boolean
Große Binär- oder Textdaten blob (n) bzw. binary large
object (n), clob
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–29
Datenbanken
Relationale Datenbanksysteme
SQL DDL: Indexe und Sichten
Erzeugen einer logischen Sicht (virtuelle Tabelle) durch Anfrage (→)
CREATE VIEW alte_studenten AS
SELECT * FROM student WHERE geburt < ’1980-01-01’;
◮
◮
Sicht kann (mit Einschränkungen bzgl. Änderungen) wie eine normale
Tabelle genutzt werden
Daten werden aber nicht erneut (redundant) abgespeichert
Erzeugen eines Index
CREATE INDEX studenten_name ON student (name);
◮
Erzeugt eine Indexdatenstruktur – in den meisten DBMS einen B-Baum –
welche eine schnelle Suche nach Datensätzen mit der angegebenen
Spalte als Suchkriterium, z.B. bei
SELECT * FROM student WHERE name = ’Müller’;
◮
System erkennt automatisch, dass hier der Index verwendet werden kann
Ändern und Löschen von Indexen über ALTER und DROP
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–30
Datenbanken
Relationale Datenbanksysteme
SQL DML: Daten Einfügen, Ändern, Löschen
Gebräuchlichste Form des INSERT-Statements zum Einfügen von
Zeilen
INSERT INTO student
VALUES (’174551’,’Müller’,’Eva’,’1982-09-05’,’MB’);
Ändern und Löschen von Zeilen basiert auf Angabe einer
Bedingung in WHERE-Klausel (siehe Anfragesprache →), welche
Zeilen davon betroffen sein sollen
UPDATE student
SET name = ’Meier’
WHERE matrnr = ’174551’;
DELETE FROM student
WHERE matrnr = ’173212’;
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–31
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache
Grundaufbau durch SFW-Block
SELECT <Projektion auf Ausgabespalten>
FROM <Eingabetabellen ggf. mit Verbund>
WHERE <Selektionsbedingungen>;
SELECT und FROM müssen angegeben werden
WHERE ist optional aber meist verwendet
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–32
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Projektion
Projektion ist die Auswahl von in der Ergebnisrelation
enthaltenen Spalten (Auswahl aus Eingaberelation)
In SQL umgesetzt in der SELECT Klausel:
◮
◮
Erfordert Angabe der Spaltennamen
Erlaubt auch Umbenennung durch AS, z.B.
SELECT name AS nachname ...;
◮
Erlaubt im Zusammenhang mit Gruppierung (→) auch Aufruf von
Aggregatfunktionen zur Berechnung von einem einzelnen
Spaltenwert aus ggf. vielen Gruppenwerten (z.B. Mittelwert,
Anzahl, Summe, Minimum, Maximum, ...)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–33
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Projektion /2
+09/7C0
!*08B8 B*.7
GH8C*.7
>7?980
+>@A
%1<33%
!F::78
DE*
3$&$%&#4
!"
%124%4
+,-9:;7
57078
=$<$%&#1
%=1333
!7(78
+7?*)0(*C
%2$<$%&#3
!"
%1123%
+,-9:;7
57078
%$1$%&##
56
%11234
+,-.(/0
'()*
#$%$%&##
SELECT name, vorname
FROM student;
Eike Schallehn
!"
!"
B*.7
GH8C*.7
!F::78
DE*
+,-9:;7
57078
!7(78
+7?*)0(*C
+,-9:;7
57078
+,-.(/0
'()*
Grundlagen der Informatik für Ingenieure
2008/2009
6–34
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Projektion /3
SELECT DISTINCT name, vorname
FROM student;
8#'*
67.,#'*
-511*.
34#
$%&012*
/*)*.
-*!*.
$*+#")!#,
$%&'!()
!"#
Eliminierung von Duplikaten passiert (im Gegensatz zur Theorie
der relationalen Algebra) in SQL nicht automatisch
Erfordert Angabe des Schlüsselworts DISTINCT
Vorsicht: Duplikateliminierung ggf. sehr aufwändige Operation, da
u.U. Sortierung oder Erstellung einer Hash-Tabelle notwendig ist
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–35
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Selektion
Selektion ist die Auswahl von Zeilen der Eingabetabelle für die
Ergebnistabelle
In SQL durch die WHERE-Klausel umgesetzt
Selektion hat als Parameter eine Bedingung, welche das
Auswahlkriterium umfaßt
Prädikate sind einfache (atomare) Bedingungen, zum Beispiel
name = ’Müller’
kontostand > 0
student.sgid = studiengang.sgid
immaDatum < exmaDatum
Komplexe Bedingungen können durch logische Operatoren AND,
OR, NOT (Negation) etc. sowie Klammerung gebildet werden
Auch existenz- und allquantifizierte geschachtelte Anfragen als
Prädikate möglich (hier nicht behandelt)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–36
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Selektion /2
SELECT *
FROM student
WHERE name = ‘Müller‘
OR name = ‘Schulze‘
'2%$3$ 32?!
<=$>2?!
,-011,
';77!$
9:2
1#%#"%&4
'(
,-./,/
)56#78!
4!%!$
2#3#"%&$
&'(
"$$01"
*+,-./'
'(')
"#$#"%&&
!
Eike Schallehn
!"#$%
Grundlagen der Informatik für Ingenieure
) *+
2008/2009
6–37
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Selektion /3
SELECT *
FROM student
WHERE name LIKE
‘S%‘;
!*08B8 B*.7
CD8E*.7
>7?980
+>@A
%124%4
+,-9:;7
57078
<$=$%&#1
!"
%1123%
+,-9:;7
57078
%$1$%&##
%11234
+,-.(/0
'()*
#$%$%&##
56
!"
SQL beinhaltet zahlreiche spezielle Prädikate, als Operatoren oder
Funktionen
Hier: häufig verwendete Textähnlichkeit durch Wildcard-Muster mit LIKE
(% als Auslassung einer Zeichenfolge beliebiger Länge, _ als
Auslassung eines einzelnen Zeichens)
Im Beispiel: alle Studenten, deren Nachname mit S beginnt
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–38
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Verbund
Verbund (engl. Join) macht aus Zeilen zweier (oder mehrerer)
Eingabetabellen eine Zeile der Ergebnistabelle
Sehr wichtige Operation, da wegen einfacher Struktur des
relationalen Datemodells zusammengehörige Daten meist über
mehrere Tabellen verteilt abgespeichert werden müssen (z.B.
durch Normalisierung, s.u.)
Zahlreiche spezielle Verbundoperationen in SQL durch
verschiedenen Syntax unterstützt
Einfachste und gebräuchlichste Form des Verbundes in SQL:
◮
◮
Angabe der zu verbindenden Tabellen in der FROM-Klausel
(kommasepariert)
Angabe einer Verbundbedingung (z.B. Primärschlüssel =
Fremdschlüssel) in der WHERE-Klausel
Wichtige Alternativen: Natural Join und Kartesisches Produkt
(s.u.)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–39
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Verbund /2
%/6:53/
#1/.H. H1@5
LM.31@5
&586./
%&'(
=AFCC=
#KEE5.
IJ1
C<><=>;D
#$
=ABD=D
%0)6E95
G<F<=>;A
"#$
=GACCC
#5,5.
=B<F<=>;C
#$
=AABC=
%0)6E95
=<A<=>;;
!
=AABCD
%0)@,:/
;<=<=>;;
"#$
5/5.
%581+/,13
5/5.
?,+1
%/6:,534134
%&'(
$595,0)3634
#$
#1+0),353816
"#$
",./+0)12/+,3453,56.7#1+0),353816
!
Eike Schallehn
)*+,Grundlagen der Informatik für Ingenieure
2008/2009
6–40
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Verbund /3
s.name, s.vorname,
sg.bezeichnung AS studiengang
FROM student s, studiengang sg
WHERE s.sgid = sg.sgid;
SELECT
>'2+
<=")'2+ 1#,3!+)*')*
.;77+"
9:'
1%&,78+
4+#+"
.+!+"
1+/'$#!')
.'$%&!)+)/',
1%&,78+
4+#+"
4&5$!6
1%&2!3#
0!$'
Eike Schallehn
.'$%&!)+)/',
!"#$%&'(#$!)*+)!+,"-.'$%&!)+)/',
!"#$%&'(#$!)*+)!+,"-.'$%&!)+)/',
Grundlagen der Informatik für Ingenieure
2008/2009
6–41
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Verbund /4
Gleiches Ergebnis alternativ über NATURAL JOIN möglich
SELECT name, vorname, bezeichnung AS studiengang
FROM student NATURAL JOIN studiengang;
◮
◮
◮
Kann direkt in der FROM-Klausel angegeben werden
Funktioniert nur, wenn namensgleiche Spalten in beiden Tabellen
existieren
Für diese Spalten werden Zeilen mit gleichen Spaltenwerten
verbunden
Was passiert, wenn keine Verbundbedingung angegeben wird? →
Berechnung des kartesischen Produkts (Kreuzprodukt)
◮
◮
Jede Zeile der einen Eingabetabelle wird mit jeder Zeile der
anderen Eingabetabelle verbunden (alle möglichen Kombinationen)
Vorsicht: Ergebnis kann u.U. sehr groß sein
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–42
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Kartesisches Produkt
T1
%
$
#
"
!
SELECT *
FROM t1,t2;
T2
-
,
+
*
)
(
'
#&
Eike Schallehn
%
$
-
,
#
"
+
*
#
"
)
(
#
"
'
#&
!
+
*
!
)
(
!
'
#&
Grundlagen der Informatik für Ingenieure
2008/2009
6–43
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Gruppierung
SELECT sgid, COUNT(*) AS anzahl
FROM student
GROUP BY sgid;
%&'(
+,-./0
#$
*
"#$
*
!
)
Gruppierung fasst Zeilen mit gleichen Werten für
Gruppierungsspalten zu einer Zeile zusammen
Spalten, die nicht Gruppierungsspalten sind, und somit keine
gleichen Werte haben, können mit Aggregatfunktionen
zusammengefaßt werden, z.B
◮
◮
◮
◮
◮
COUNT() - Anzahl von Werten
SUM() - Summe der Werte
AVG() - Mittelwert
MIN() - Minimum
MAX() - Maximum
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–44
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Sortierung
SELECT *
FROM student
ORDER BY matrnr ASC;
!8,-C- C8=+
GH-;8=+
@+71-,
.@AB
&#)666
!+:+-
.+789,:8;
&4$%$&'(6
!"
&)45&5
./0123+
*+,+-
#$%$&'()
&)%66&
!F22+-
DE8
6$'$&'(5
!"
&))46&
./0123+
*+,+-
&$)$&'((
*?
&))465
./0=:>,
<:98
($&$&'((
!"
!"
Angabe eines Sortierkriteriums für die Ergebnistabelle bestehend
aus Spalte(n) und Reihenfolge ASC (ascending = aufsteigend,
default) oder DESC (descending = absteigend)
Eike Schallehn
Grundlagen
der Informatik
für Ingenieure
2008/2009
6–45
Reihenfolge
der Zeilen
in der
Ergebnistabelle
erhält damit
Datenbanken
Relationale Datenbanksysteme
SQL Anfragesprache: Mengenoperationen
SELECT *
FROM t1
UNION
SELECT *
FROM t2;
+
)
"
%
'
&
*
(
!
$
"#
Mengenoperationen UNION (Vereinigung), INTERSECT
(Schnittmenge) und EXCEPT (Mengendifferenz)
Erwartet für Eingabetabellen kompatible Schemata (gleiche
Spaltenanzahl mit kompatiblen Datentypen)
Eike Schallehn
Grundlagen der Informatik für Ingenieure
2008/2009
6–46
Herunterladen