Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung #4 SQL (Teil 1).

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung #4 SQL (Teil 1)."—  Präsentation transkript:

1 Vorlesung #4 SQL (Teil 1)

2 Vorlesung #4 - SQL (Teil 1)
„Fahrplan“ Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE ...) SQL DML (INSERT, UPDATE, DELETE) SQL Abfragen Aggregation und Gruppierung Null-Werte, 3-wertige Logik © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

3 Vorlesung #4 - 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 - SQL (Teil 1)

4 Vorlesung #4 - 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 - SQL (Teil 1)

5 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 - SQL (Teil 1)

6 Vorlesung #4 - 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 - SQL (Teil 1)

7 Vorlesung #4 - 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 - SQL (Teil 1)

8 Vorlesung #4 - 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 - SQL (Teil 1)

9 Vorlesung #4 - 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 - SQL (Teil 1)

10 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 - SQL (Teil 1)

11 Einfache SQL Anfragen (3)
Duplikateliminierung select distinct Rang from Professoren; Rang C3 C4 © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

12 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 - SQL (Teil 1)

13 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 - SQL (Teil 1)

14 Vorlesung #4 - SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

15 Vorlesung #4 - 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 - SQL (Teil 1)

16 Vorlesung #4 - SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

17 Vorlesung #4 - SQL (Teil 1)
Aggregatfunktionen min, max, avg, sum, count SELECT min(Semester) FROM Studenten; SELECT max(Semester) SELECT avg(Semester) SELECT sum(Semester) SELECT count(MatrNr), -- count(*) count(DISTINCT Semester) © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

18 Vorlesung #4 - SQL (Teil 1)
... mit Gruppierung min, max, avg, sum, count mit GROUP BY select gelesenVon, sum (SWS) from Vorlesungen group by gelesenVon; mit HAVING select gelesenVon, Name, sum (SWS) from Vorlesungen, Professoren where gelesenVon = PersNr and Rang = ´C4´ group by gelesenVon, Name having avg (SWS) >= 3; © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

19 Besonderheiten bei Aggregatoperationen
SQL erzeugt pro Gruppe ein Ergebnistupel Deshalb müssen alle in der select-Klausel aufgeführten Attribute - außer den aggregierten – auch in der group by-Klausel aufgeführt werden Nur so kann SQL sicherstellen, dass sich das Attribut nicht innerhalb der Gruppe ändert SELECT A1, A2, An, count(*) FROM ... WHERE .. GROUP BY A1, A2, An © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

20 Vorlesung #4 - SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

21 Vorlesung #4 - SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

22 Vorlesung #4 - SQL (Teil 1)
© Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

23 Vorlesung #4 - SQL (Teil 1)
Ergebnis der Abfrage gelesenVon Name sum (SWS) 2125 Sokrates 10 2137 Kant 8 © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

24 Vorlesung #4 - SQL (Teil 1)
Ausblick Vorlesung #5 SQL, Fortsetzung Geschachtelte Anfragen Korrelierte Anfragen Mengenoperationen Quantifizierte Anfragen (, ) Spezielle Sprachkonstrukte Joins in SQL-92, SQL-99 Rekursion Sichten (Views) © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)

25 Vorlesung #4 Ende


Herunterladen ppt "Vorlesung #4 SQL (Teil 1)."

Ähnliche Präsentationen


Google-Anzeigen