Datenbankentwicklung IV-LK

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Inner Joins.
Alternativen und Muster. Alternativen Gegeben ist eine Tabelle in der ein Attribut der Tabelle Buecher Gruppe genannt wurde. So gibt es unter anderem.
SQL als Abfragesprache
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Datenbankabfragen Bücher des Autors “Aare, Karl-August” Tabelle buch.
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
OQL-Anfragen (1) Alle Punkte, die auf der Null-Ebene liegen: selectstruct (ex : x, ey : y) fromallePunkte wherez = 0 Rückgabetyp: bag > Alle Kanten, die.
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
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.
SQL-Datentypen INTEGER
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Datenbanken Mehr als Tabellen.
Datenbankentwicklung IV-LK
Datenbanken Mehr als Tabellen. Datenbank Abfragen mit SQL: Eine Tabelle filtern Tabellen realer Datenbanken können sehr viele Informationen speichern:
Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II.
Datenbanken?.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (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
Freiwillige Feuerwehr der Stadt Perg
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Relationale Datenbanken IV
Verdichten von Daten mit Gruppenfunktionen
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Structured Query Language
Structured Query Language
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Datenbanken abfragen mit SQL
Klassen und Tabellen.
Übung Datenbanksysteme I SQL
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Aggregatfunktionen bei mehreren Tabellen
Sortierte Datenbankabfragen
Vorlesung #5 SQL (Teil 2).
Aggregatfunktionen.
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Sichten.
Beispiele zur Datenänderung
Textmuster.
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Datenbankentwicklung IV-LK Warum Datenbanken? Anforderungsanalyse für Datenbanken Ableitung von Tabellenstrukturen Normalisierung Relationenalgebra Formalisierung von Tabellen in SQL SQL- Anfragen Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen IV-LK Ausgabe der eingegebenen Informationen Auswahlkriterien in der WHERE-Bedingung Nutzung von Aggregatsfunktionen Anfragen über mehrere Tabellen Aufgaben Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Beispieltabellen für Anfragen: Anfrage: Wie lauten die Namen der eingetragenen Gehege? SELECT GName FROM Gehege Ergebnis: GName ---------- Wald Feld Weide Art Gehege Tier GNr GName Flaeche 1 Wald 20 2 Feld 10 3 Weide 9 GNr TName Gattung 1 Laber Baer Sabber 2 Klopfer Hase 3 Bunny Harald Schaf Walter Gattung MinFlaeche Baer 8 Hase 2 Schaf 5 Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Anfrage: Welche Gattungen leben aktuell in den Gehegen. SELECT Tier.Gattung FROM Tier Ergebnis: GATTUNG -------------- Baer Hase Schaf Vermeidung von doppelten Werten: SELECT DISTINCT Tier.Gattung Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Mehrere Ergebnisattribute in der Anfrage: Der Tiername soll zusammen mit der Gattung ausgegeben werden: SELECT Tier.TName, Tier.Gattung FROM Tier Ergebnis: TName Gattung --------- ---------- Laber Baer Sabber Baer Klopfer Hase Bunny Hase Harald Schaf Walter Schaf Anfrage: Gesamter Tabelleninhalt: SELECT * FROM Gehege Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Berechnungen in der SELECT – Zeile: Anfrage: Wie groß ist der prozentuale Anteil eines jeden Geheges an der Gesamtfläche, wenn die Gesamtfläche 50 beträgt? SELECT Gehege.GName, (Gehege.Flaeche/50)*100 FROM Gehege Ergebnis: GName (Gehege.Flaeche/50)*100 ---------- ---------------------------------- Wald 40 Feld 20 Weide 18 Anfrage: Die Gattung eines Tieres, soll zusammen mit dem Tiernamen, getrennt durch zwei Doppelpunkte ausgegeben werden. SELECT Tier.Gattung || '::' || Tier.TName FROM Tier Umbenennung der Spaltenüberschrift: SELECT Gehege.GName Gatter . Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Erzeugung weiterer Ergebnisspalten: SELECT 'Unser Zoo' Zooname, Tier.TName Tiername, 2005 Einzug, 42 FROM Tier Ergebnis: Zooname Tiername Einzug 42 ------------ ------------ --------- --- Unser Zoo Laber 2005 42 Unser Zoo Sabber 2005 42 … Sortierung von Ausgaben: SELECT Gehege.GName, Gehege.Flaeche FROM Gehege ORDER BY Gehege.Flaeche ASC GName Flaeche --------- ---------- Weide 9 Feld 10 Wald 20 Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 1 7. Einfache SQL-Anfragen 1. Ausgabe der eingegebenen Informationen IV-LK Mehrere Sortierkriterien zusammen: SELECT * FROM Tier ORDER BY Tier.Gattung DESC, Tier.TName ASC Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 2 7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Anfrage: Wie lauten die Namen aller Schafe? SELECT Tier.TName FROM Tier Where Tier.Gattung = 'Schaf' Ergebnis: TName --------- Harald Walter Zusammengesetzte Bedingung: Anfrage: Welche Gattungen beanspruchen mindestens eine Flaeche von 4, sind aber keine Bären? SELECT Art.Gattung FROM Art WHERE Art.MinFlaeche >= 4 AND Art.Gattung<> 'Baer' Gattung ---------- Schaf Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 2 7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Textanalyse: SELECT Tier.TName FROM Tier WHERE Tier.TName LIKE '%a%' Ergebnis: TName --------- Laber Sabber Harald Walter Anfrage: Tiernamen, deren dritter Buchstabe ein n ist. SELECT Tier.TName WHERE Tier.TName LIKE '__n%' Bunny Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 2 7. Einfache SQL-Anfragen 2. Auswahlkriterien in der WHERE –Bedingung IV-LK Operationen auf Attribute: SELECT LOWER (Tier.TName) FROM Tier WHERE LOWER (Tier.Gattung) = 'schaf' Ergebnis: LOWER (T -------------- harald walter Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 3. Nutzung von Aggregatsfunktionen IV-LK Statistische Auswertungen: Anfrage: Welches ist die größte Gehegefläche? SELECT MAX (Gehege.Flaeche) FROM Gehege Ergebnis: MAX(Gehege.Flaeche) ------------------------------ 20 Anfrage: Wie groß ist die Gesamtfläche aller Gehege? SELECT SUM (Gehege.Flaeche) Gesamtflaeche Gesamtflaeche ------------------- 39 Anfrage: Wie viele Tiere leben im Zoo Ergebnis: SELECT COUNT(*) Tieranzahl Tieranzahl FROM Tier ------------- 6 Funktionen für statistische Auswertungen. Um den Namen dazu zu finden ist Thema im Kapitel 9 Typischerweise wird der Name der Ergebnisspalte umbenannt. Mit der COUNT Funktion wird die Zahl der Zeilen im Ergebnis berechnet. In dien Klammern von COUNt kann man ein Attribut angeben, dann werden alle Zeilen gezählt, in denne das Attribut nicht den Wert NULL hat. SELECT COUNT (Tier.Gattung) Tieranzahl Beim Zählen kann man explizit fordern, dass doppelte Werte weggelassen werden. Dazu wird in den Klammern von COUNT das bereits bekannte Schlüsselwort DISTINCT dem Spaltennamen vorangestellt Die Anzahl unterschiedlicher im Zoo vertretener Arten kann dann wie folgt bestimmt werden. SELECT CO'U'NT(DISTINCT Tier.Gattung) Arten FROM Tier Ergebnis Arten 3 Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 3. Nutzung von Aggregatsfunktionen IV-LK Anfrage: Wie groß ist die durchschnittliche Gehegefläche? SELECT AVG (Gehege.Flaeche) Durchschnitt FROM Gehege Ergebnis: Durchschnitt ---------------- 13 Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK Anfrage: Wie lauten die Namen der Tiere und in welchen Gehegen leben sie? SELECT Tier.TName, Gehege.GName FROM Tier, Gehege WHERE Tier.GNr=Gehege.GNr Ergebnis: TName GName -------- --------- Laber Wald Sabber Wald Harald Feld …. Anfrage: Gib zu jedem Gehegenamen, die Gattungen der darin lebenden Tiere aus, die höchstens eine Fläche von 6 verbrauchen. SELECT DESTINCT Gehege.GName, Art.Gattung Ergebnis: FROM Gehege, Tier, Art GName Gattung WHERE Gehege.GNr = Tier.GNr AND Tier.Gattung = Art.Gattung --------- ---------- AND Art.MinFlaeche <= 6 Feld Hase Feld Schaf Weide Hase Weide Schaf Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK Grundsätzlicher Ansatz zur Formulierung einfacher SQL- Anfragen: Es werden die für die Anfrage erforderlichen Tabellen ausgesucht und in die FROM – Zeile geschrieben. Es wird die Verknüpfung der benutzen Tabellen in der WHERE- Bedingung festgelegt. Falls es die Anfrage erfordert, werden die weiteren Anforderungen in Teilbedingungen übersetzt. Die resultierenden Teilbedingung wird typischerweise mit AND mit der Bedingung aus 2. verknüpft. Es werden die Informationen, z.B. Attribute ausgewählt, die für die Ergebnisausgabe wichtig sind, und in die SELECT Zeile geschrieben. Bei Bedarf wird in der ORDER BY Zeile angegeben, in welcher Reihenfolge die Ausgaben erfolgen sollen. Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK Umbenennung der Ergebnisspalten: SELECT G.GName Gebiet, T.TName Schaf FROM Gehege G, Tier T WHERE D.GNr= T.TNr AND T.Gattung ='Schaf' Ergebnis: Gebiet Schaf -------- ------- Feld Harald Weide Walter Anfrage: Es sollen die Nummern aller Gehege ausgegeben werden, in denen zwei unterschiedliche Gattungen leben. SELECT T1.GNr FROM Tier T1, Tier T2 WHERE T1.GNr = T2.GNr AND T1.Gattung <> T2.Gattung Ergebnis GNr ---- 2 3 Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK Anfrage: Statt der Gehegenummer soll der Name des Geheges ausgegeben werden. SELECT Gehege.GName FROM Tier T1, Tier T2, Gehege WHERE T1.GNr = T2.GNr AND Gehege.GNr = T1.GNr AND T1.Gattung < T2.Gattung Ergebnis: GName ---------- Feld Weide Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 4. Anfragen über mehrere Tabellen IV-LK Tabellen für kritisches Anfrageergebnis: Abfrage: Wie heißen die Mitarbeiter, deren Chef in der Abteilung 1 oder Abteilung 2 arbeitet. SELECT Mitarbeiter.Name FROM Mirarbeiter, Abteilung1, Abteilung2 WHERE Mitarbeiter.Chef=Abteilung1.MiNr OR Mitarbeiter.Chef=Abteilung2.MiNr Ergebnis: Es wurden keine Zeilen ausgewählt. FROM Mirarbeiter, Abteilung1 Name ------- Udo Abteilung1 Mitarbeiter Abteilung2 MiNr Leiter 401 Erna 402 Edna MiNr Name Chef 401 Udo 1 402 Ute 3 MiNr Leiter Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 5. Aufgaben IV-LK Wiederholungsfragen: Wozu wird DISTINCT benötigt? Wozu kann der * in der SELECT Zeile genutzt werden? Welche Berechnungsmöglichkeiten gibt es in der SELECT Zeile? Wie kann man Ergebnisspalten umbenennen? Wie kann man neue Spalten bei der Berechnung von Tabellen erzeugen? Welche Möglichkeiten zur Sortierung der Ausgabe gibt es? Welche Möglichkeiten zur Textbearbeitung gibt es in SQL? Wie wird mit NULL Werten in WHERE Bedingungen umgegangen? Was sind Aggregatsfunktionen, was ist bei ihrer Nutzung zu beachten? Wie kann man mehrere Tabellen in SQL verknüpfen? Erkläre den Aufbau und Ablauf der Auswertung einfacher SQL- Anfragen. Beschreibe ein generelles Vorgehen zur Erstellung einer SQL- Anfrage. Wie kann man eine Tabelle in Anfragen mehrmals nutzen, wieso kann dies sinnvoll sein? Welche Besonderheit ist bei der Nutzung von OR Bedingungen und der Verknüpfung mehrerer Tabellen zu beachten? Nicole Rottmann 2011/12

7. Einfache SQL-Anfragen 5. Aufgaben IV-LK Übungsaufgaben: Gegeben seine folgende Tabellen zur Notenverwaltung. Formuliere folgende Textzeilen als SQL-Anfragen. Gib die Namen der Studierenden aus, die eine Prüfung im Fach "Wahl1" gemacht haben. Gib den Titel der Veranstaltungen aus und die zugehörige Note für alle Prüfungen, die Simson gemacht hat aus. Gib eine Liste aller Titel von Veranstaltungen mit den bisher in den Prüfungen erreichten Noten (Ausgabe: Titel, Note) aus. Gib die Anzahl der Studierenden aus, die bereits eine Prüfung im Fach DB gemacht haben. Gib die Namen aller Dozenten aus, die mindestens zwei Veranstaltungen anbieten. Gib die Durchschnittsnote für alle Fächer zusammen aus, die von Hinz unterrichtet wurden. Gib die Namen aller Studierenden aus, die mindestens genauso gut wie Simson in DB waren, aber nicht Simson sind. Gib die Namen aller Studierenden aus, die mindestens eine Prüfung bei Hinz gemacht haben. Geh davon aus, dass der veranstaltende Dozent auch Prüfer ist. Pruefung Student Veranstaltung MatNr Fach Note 42 Wahl1 3,0 DB 1,7 43 Wahl2 4,0 1,3 44 5,0 Kürzel Titel Dozent Wahl1 Controlling Hinz Wahl2 Java DB Datenbanken Kunz MatNr Name 42 Simson 43 Milhuse 44 Monz Nicole Rottmann 2011/12