Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung #4 Relationales Kalkül und SQL (Teil 1)

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung #4 Relationales Kalkül und SQL (Teil 1)"—  Präsentation transkript:

1 Vorlesung #4 Relationales Kalkül und SQL (Teil 1)

2 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
„Fahrplan“ Wiederholung/Zusammenfassung Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE ...) SQL DML (INSERT, UPDATE, DELETE) SQL Abfragen © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

3 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

4 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

5 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

6 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

7 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

8 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

9 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

10 Vorlesung #3 - Das relationale Modell (Teil 2)
© Bojan Milijaš, Vorlesung #3 - Das relationale Modell (Teil 2)

11 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Geschichte von SQL 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 SQL Norm von ANSI Comitee 1992: SQL-92 bzw. SQL-2 1999: SQL-99 bzw. SQL-3 (objektrelationale Erweiterungen) © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

12 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Datentypen in SQL 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), benutzer-definierte Typen als objektrelationale Erweiterung ... © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

13 Einfache Datendefinition
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š, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

14 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Schemaveränderungen 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 DROP COLUMN Raum; © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

15 „(Aus)-Löschen“ mit DROP nicht mit DELETE!
SQL DDL (Data Definition Language) Löschen der gesamten Tabelle (mit Struktur) DROP TABLE Professoren DDL ist endgültig kein ROLLBACK möglich bei DDL Befehlen Kein COMMIT erforderlich © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

16 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Datenmanipulation (1) 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š, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

17 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Datenmanipulation (2) 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š, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

18 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
Einfache SQL Anfragen select PersNr, Name from Professoren where Rang= ´C4´; PersNr Name 2125 Sokrates 2126 Russel 2136 Curie 2137 Kant © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

19 Einfache SQL Anfragen (2)
Sortierung select PersNr, Name, Rang from Professoren order by Rang desc, Name asc; desc – descending  asc – ascending  PersNr Name Rang 2136 Curie C4 2137 Kant 2126 Russel 2125 Sokrates 2134 Augustinus C3 2127 Kopernikus 2133 Popper © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

20 Einfache SQL Anfragen (3)
Duplikateliminierung select distinct Rang from Professoren; Rang C3 C4 © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

21 Anfragen über mehrere Relationen
Welcher Professor liest "Mäeutik"? select Name, Titel from Professoren, Vorlesungen where PersNr = gelesenVon and Titel = `Mäeutik‘ ; © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

22 Anfragen über mehrere Relationen (2)
Raum Rang Name PersNr 226 232 7 C4 Sokrates Russel Kant 2125 2126 2137 Professoren gelesenVon SWS Titel VorlNr 4 Grundzüge 5001 Die 3 Kritiken 4630 2 Mäeutik 5049 Ethik 5041 Vorlesungen Verknüpfung  © Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

23 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

24 Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)
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š, Vorlesung #4 - Relationales Kalkül & SQL (Teil 1)

25 Spezielle Sprachkonstrukte (3)
LIKE Operator – Vergleich von Zeichenketten "%" steht für beliebig viele (auch gar kein) Zeichen "_" steht für genau ein Zeichen select * from Studenten where Name like ´T%eophrastos´; select distinct Name from Vorlesungen v, hören h, Studenten s where s.MatrNr = h.MatrNr and h.VorlNr = v.VorlNr and v.Titel LIKE ´%thik%´; © Bojan Milijaš, Vorlesung #6 - SQL (Teil 3)

26 Vorlesung #4 Ende


Herunterladen ppt "Vorlesung #4 Relationales Kalkül und SQL (Teil 1)"

Ähnliche Präsentationen


Google-Anzeigen