Folien_Sitzung_10 - Lehrstuhl für Angewandte Informatik

Werbung
Technische Universität München
Übung zur Einführung in die Informatik
für Hörer anderer Fachrichtungen
im Sommersemester 2010
Sitzung 10:
SQL (Fortsetzung)
Jan Herrmann
Lehrstuhl für
Angewandte Informatik /
Kooperative Systeme
Folien angelehnt an Prof. A. Kemper (http://www3.in.tum.de/teaching/ws0910/)
Technische Universität München
Beispiele zur Relationalen Algebra/SQL
1.
2.
3.
4.
5.
6.
Welche Professoren kennt Carnap?
Wer ließt mindestens 2 Vorlesungen?
Wer hört mindestens eine Vorlesung?
Wer hat alle geprüften Vorlesungen auch gehört?
Welche Studenten hören Mäeutik oder Ethik
Welche Studenten hören Mäeutik und Ethik
2
Technische Universität München
SQL
• standardisierte
- Datendefinitions Sprache (DDL)
- create table studenten (MatrNr INT, ….)
- Datenmanipulations Sprache (DML)
- update Studenten set Semester = Semester +1
- Anfrage (Query)-Sprache
- select * from Studenten where …
• derzeit aktueller Standard ist SQL 99 und SQL3 (2003)
– objektrelationale Erweiterung
3
Technische Universität München
Datendefinition in SQL
Datentypen
• char (n), varchar (n)
• integer
• blob für sehr große binäre Daten
• clob für sehr große String-Attribute
• date für Datumsangaben
• xml für XML-Dokumente
4
Technische Universität München
Create und Alter Befehl
Create
create table Professoren
(PersNr integer not null,
Name
varchar (30) not null,
Rang
character (2),
Raum
integer);
Alter
•ALTER TABLE Proessoren RENAME TO Professoren;
•ALTER TABLE Professoren ADD Familienstatus varchar(50);
•ALTER TABLE Professoren DROP COLUMN Wohnort;
•…
5
Technische Universität München
Veränderung am Datenbestand
Einfügen von Tupeln:
insert into hören
select s.MatrNr, v.VorlNr
from Studenten s, Vorlesungen v;
insert into Studenten (MatrNr, Name)
values (28121, `Archimedes‘);
6
Technische Universität München
MatrNr
Studenten
Name
Semester
29120
29555
28121
Theophrastos
Feuerbach
Archimedes
2
2
-
Null-Wert
7
Technische Universität München
Veränderungen am Datenbestand
Löschen von Tupeln
delete from Studenten
where Semester > 13;
Verändern von Tupeln
update Studenten
set Semester = Semester + 1;
8
Technische Universität München
Einfache SQL-Anfrage
select
PersNr, Name
from
Professoren
where
Rang= ´C4´;
PersNr
2125
2126
Name
Sokrates
Russel
2136
2137
Curie
Kant
9
Technische Universität München
Duplikateliminierung
select distinct Rang
from Professoren
Rang
C3
C4
10
Technische Universität München
Sortierung von SQL-Anfragen
select p.PersNr, p.Name, p.Rang
PersNr
Name
Rang
2136
Curie
C4
2137
Kant
C4
2126
Russel
C4
2125
Sokrates
C4
2134
Augustinus
C3
2127
Kopernikus
C3
2133
Popper
C3
from Professoren p
order by p.Rang desc, p.Name asc;
11
Technische Universität München
Übersetzung in die relationale Algebra
Allgemein hat eine
(ungeschachtelte) SQLAnfrage die Form:
Übersetzung in die relationale
Algebra: Π A1, ..., An(σP (R1 x ... x Rk ))
Π A1, ..., An
select A1, ..., An
σP
from R1, ..., Rk
x
where P;
x
x
R1
Rk
R3
R2
12
Technische Universität München
Anfragen über mehrere Relationen
Welche Studenten hören welche Vorlesungen?
select Name, Titel
from Studenten, hören, Vorlesungen
where Studenten.MatrNr = hören.MatrNr and
hören.VorlNr = Vorlesungen.VorlNr;
Alternativ: (empfohlen --> Einsatz von Tupelvariablen)
select s.Name, v.Titel
from Studenten s, hören h, Vorlesungen v
where s. MatrNr = h. MatrNr and
h.VorlNr = v.VorlNr
13
Technische Universität München
Mengenoperationen und geschachtelte
Anfragen
Mengenoperationen union, intersect, minus
( select Name
from Assistenten )
union
( select Name
from Professoren);
Schemagleichheit!
14
Herunterladen