WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #4 SQL (Teil 1)

Slides:



Advertisements
Ähnliche Präsentationen
Objekt-relationale und erweiterbare Datenbanksysteme
Advertisements

ER-Datenmodell und Abfragen in SQL
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Objekt-relationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 Objekt-relationale Modellierung.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenbanksysteme Schwerpunkte: Datenbanksystem (DBS): Datenbank (DB):
Kapitel 5 SQL DDL + DML.
Kapitel 2 SQL Anfragen.
Kapitel 5 SQL DDL + DML.
Kapitel 2 SQL Anfragen.
Objekt-relationale und erweiterbare Datenbanksysteme
SQL als Abfragesprache
SQL als Abfragesprache
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Datenintegrität Referentielle Integrität create table
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
Kapitel 4 SQL: Grundlagen.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #10 Physische Datenorganisation
Relationales Datenmodell und DDL
Structured Query Language
Vorlesung #5 SQL (Teil 2).
Vorlesung #2 Das relationale Modell (Teil 1)
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
(Structured Query Language)
 Präsentation transkript:

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)2 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

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)3 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 : SQL-99 bzw. SQL-3 (objektrelationale Erweiterungen)

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)4 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...

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)5 Einfache Datendefinition SQL DDL (Data Definition Language) CREATE TABLE Professoren (PersNrINTEGER, Name CHARACTER VARYING(30), RangCHARACTER(2)); CREATE TABLE professoren (persnr NUMBER(*,0), name VARCHAR2(30), rang CHAR(2));

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)6 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 ALTER TABLE Professoren DROP COLUMN Raum;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)7 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);

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)8 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;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)9 Einfache SQL Anfragen PersNrName 2125Sokrates 2126Russel 2136Curie 2137Kant selectPersNr, Name fromProfessoren whereRang= ´C4´;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)10 Einfache SQL Anfragen (2) Sortierung select PersNr, Name, Rang fromProfessoren order by Rang desc, Name asc; desc – descending asc – ascending PersNrNameRang 2136CurieC4 2137KantC4 2126RusselC4 2125SokratesC4 2134AugustinusC3 2127KopernikusC3 2133PopperC3

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)11 Einfache SQL Anfragen (3) Duplikateliminierung select distinct Rang from Professoren; Rang C3 C4

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © 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 ;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)13 Anfragen über mehrere Relationen (2) RaumRangNamePersNr C4 Sokrates Russel Kant Professoren gelesenVonSWSTitelVorlNr 21374Grundzüge Die 3 Kritiken Mäeutik Ethik5041 Vorlesungen Verknüpfung

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)14

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)15 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

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)16

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)17 Aggregatfunktionen min, max, avg, sum, count SELECT min(Semester) FROM Studenten; SELECT max(Semester) FROM Studenten; SELECT avg(Semester) FROM Studenten; SELECT sum(Semester) FROM Studenten; SELECT count(MatrNr), -- count(*) count(DISTINCT Semester) FROM Studenten;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)18... 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;

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © 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 A 1, A 2, A n, count(*) FROM... WHERE.. GROUP BY A1, A2, An

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)20

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)21

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)22

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)23 Ergebnis der Abfrage gelesenVonNamesum (SWS) 2125Sokrates Kant8

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #4 - SQL (Teil 1)24 SQL, Fortsetzung Geschachtelte Anfragen Korrelierte Anfragen Mengenoperationen Quantifizierte Anfragen (, ) Spezielle Sprachkonstrukte Joins in SQL-92, SQL-99 Rekursion Sichten (Views) Ausblick Vorlesung #5

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 Ende