Vorlesung 4

Werbung
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Vorlesung #4
SQL (Teil 1)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
„Fahrplan“
 Wiederholung/Zusammenfassung
 Relationales Modell
 Relationale Algebra
 Relationenkalkül




Geschichte der Sprache SQL
SQL DDL (CREATE TABLE ...)
SQL DML (INSERT, UPDATE, DELETE)
SQL Abfragen
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
2
Geschichte von SQL
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Anfang 70er Jahre „System R“ von IBM mit der
Sprache „SEQUEL“ – Structured English Query
Language, später aus patentrechtlichen Gründen in
SQL unbenannt
 Parallel entwickelte man QUEL als Anfragesprache
für das INGRES-System
 SQL setzte sich durch als Industrie-Standard (wegen
„Ignorranz“ der INGRES-Entwickler)
 1986: SQL-86 1. SQL Norm von ANSI Comitee
 1992: SQL-92 bzw. SQL-2
 1999: SQL-99 bzw. SQL-3 (objektrelationale
Erweiterungen)
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
3
Datentypen in SQL
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Atomare Datentypen als Attribut-Domänen
 Zahlen
 numeric(p,s) – number(p,s)
 integer
 float
 Zeichenketten
 character(n) – char(n)
 char varying (n) – varchar(n), varchar2(n)
 Datumstyp
 date
 Weitere: BLOB (Binary Large Objects), RAW für
große Binärdatein, CLOB (Character LOB), benutzerdefinierte Typen als objektrelationale Erweiterung ...
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
4
Einfache Datendefinition
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
SQL DDL (Data Definition Language)
CREATE TABLE Professoren
(PersNr
INTEGER,
Name
CHARACTER VARYING(30),
Rang
CHARACTER(2));
CREATE TABLE professoren
(persnr
NUMBER(*,0),
name
VARCHAR2(30),
rang
CHAR(2));
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
5
Schemaveränderungen
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
SQL DDL (Data Definition Language)
Hinzufügen eines Attributs bzw. einer Spalte
ALTER TABLE Professoren
ADD Raum INTEGER;
Löschen eines Attributs bzw. einer Spalte
ALTER TABLE Professoren
DROP COLUMN Raum;
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
6
Datenmanipulation (1)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
SQL DML (Data Manipultaion Language)
Einfügen von Tupeln
insert into hören
select MatrNr, VorlNr
from Studenten, Vorlesungen
where Titel= `Logik‘ ;
insert into Studenten (MatrNr, Name)
values (28121, `Archimedes‘);
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
7
Datenmanipulation (2)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
SQL DML (Data Manipultaion Language)
Löschen von Tupeln
delete Studenten
where Semester > 13;
Verändern von Tupeln
update Studenten
set Semester= Semester + 1;
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
8
Einfache SQL Anfragen
select
PersNr, Name
from
Professoren
where
Rang= ´C4´;
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
PersNr Name
2125 Sokrates
2126
Russel
2136
Curie
2137
Kant
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
9
Einfache SQL Anfragen (2)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Sortierung
PersNr
Name
Rang
2136
Curie
C4
from Professoren
2137
Kant
C4
order by Rang desc, Name asc;
2126
Russel
C4
2125
Sokrates
C4
select PersNr, Name, Rang
2134 Augustinus C3
desc – descending 
2127 Kopernikus C3
asc – ascending 
2133
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
Popper
C3
10
Einfache SQL Anfragen (3)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Duplikateliminierung
select distinct Rang
from Professoren;
© Bojan Milijaš, 24.10.2013
Rang
C3
C4
Vorlesung #4 - SQL (Teil 1)
11
Anfragen über mehrere
Relationen
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Welcher Professor liest "Mäeutik"?
select Name, Titel
from Professoren, Vorlesungen
where PersNr = gelesenVon and Titel = `Mäeutik‘ ;

Name, Titel
( PersNr  gelesenVon  Titel ' Mäeutik' (Professor en  Vorlesunge n))
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
12
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Anfragen über mehrere
Relationen (2)
Professoren
PersNr Name Rang Raum
2125 Sokrates C4 226
2126 Russel
C4 232
2137
Kant
C4
7
Vorlesungen
VorlNr
Titel
SWS gelesenVon
5001 Grundzüge
4
2137
5041
Ethik
4
2125
5049
Mäeutik
4630 Die 3 Kritiken
2
2125
4
2137
Verknüpfung

© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
13
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
14
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
3 Wege Join
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:
select s.Name, v.Titel
from Studenten s, hören h, Vorlesungen v
where s. MatrNr = h. MatrNr and
h.VorlNr = v.VorlNr
© Bojan Milijaš, 24.10.2013
Vorlesung #4 - SQL (Teil 1)
15
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Vorlesung #4
Ende
Herunterladen