Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL

Ähnliche Dokumente
Übung Datenbanken in der Praxis. Relationale Algebra

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Übersicht der wichtigsten MySQL-Befehle

SQL als Zugriffssprache

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Vorlesung Datenbankmanagementsysteme

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

Datenbanksysteme SQL Grundlagen

Informationsmanagement u. Numerische Methoden

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Fortsetzung: Projektion Selektion. NULL Werte

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Abfragen (Queries, Subqueries)

SQL: Abfragen für einzelne Tabellen

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

Datenbankabfragen und Datenmanipulation

5. Übungsblatt (Testatwoche: Mai 2010)

Vorlesung Informationssysteme

Abfragen: Grundbausteine

ACCESS SQL ACCESS SQL

Einführung in Datenbanken und SQL

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Es geht also im die SQL Data Manipulation Language.

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aggregatfunktionen in der Relationenalgebra?

Wiederholung VU Datenmodellierung

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

8. Relationale Datenbanksprachen

ARBEITSBLATT ZUR SQL-BEFEHLEN

Operationen auf Relationen

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

dbis Praktikum DBS I SQL Teil 2

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Universität Augsburg, Institut für Informatik WS 2005/2006 Prof. Dr. Werner Kießling 21. Nov M. Endres, A. Huhn, P. Preisinger Lösungsblatt 4

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

gibt es kein Bundesland, en?"

Übung Datenbanksysteme I SQL

Relationale Anfragesprachen

Lösungen der Übungsaufgaben von Kapitel 10

Informatik 12 Datenbanken SQL-Einführung

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

SQL ist eine relational vollständige Datenbanksprache.

Oracle 10g Einführung

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Kapitel 3: Datenbanksysteme

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Kapitel 5: Der SQL-Standard

SQL. Abfragesprache Datenmanipulation - DML

Übungsaufgaben mit Lösungen

Query Languages (QL) Relationale Abfragesprachen/Relational

1. Einleitung. SQL-Abfragen. 3. Das ERM der Übungsdatenbank. 2. Grundstruktur von SQL-Abfragen

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Einführung in die Spezialisierungsrichtungen

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

GROUP BY, HAVING und Sichten

Datenbank und Tabelle mit SQL erstellen

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

8 DML (1) Daten abfragen

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Datenmanipulation in SQL (1): Subselect:

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

SQL: Weitere Funktionen

Datenbanksysteme Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

SQL. Structured Query Language

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

SFW-Block (1) SFW-Block (2)

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Transkript:

Anfragen an Datenbanken mit SQL Folie 28

Syntax einer Anfrage SFW-Anfrage (Select-From-Where-Anfrage) SELECT <Attributliste> Projektion π FROM <Relationenliste> Kart. Produkt WHERE <Bedingung> Selektion σ Vereinigung SFW-Anfrage UNION SFW-Anfrage Differenz SFW-Anfrage EXCEPT SFW-Anfrage Syntaxvarianten und -details siehe Handbücher der einzelnen Hersteller Folie 29

Bedingungen Prädikate =, <>, <, >, <=, >= Unscharfer Vergleich mit Wildcards _ ein beliebiges Zeichen % eine beliebig lange Folge beliebiger Zeichen, Wildcardauswertung wird durch like erzwungen, z.b. where name like 'M%' Verknüpfung AND, OR, NOT Achtung SQL sortiert doppelte Tupel (z.b. nach einer Projektion) nicht automatisch aus. Hierfür ist das zusätzliche Schlüsselwort DISTINCT nötig. Folie 30

Übungsumgebung Für den praktischen Umgang mit einem Datenbankmanagementsystem bietet die Professur allen Studenten eine PostgreSQL-Spielumgebung an, die volle Datenbank-Funktionalität bereitstellt Damit können neben eigenen Experimenten auch die Übungsaufgaben mit tatsächlichen Datensätzen nachvollzogen werden Das System sowie dessen Benutzungsanleitung sind über die DVS- Homepage www.tu-chemnitz.de/informatik/dvs/ unter dem Punkt Service verlinkt Nichtsdestotrotz sollten Sie auch auf Ihrem eigenen Rechner ein Datenbankmanagementsystem (z.b. PostgreSQL oder MySQL) installieren und die erlernten Konzepte praktizieren! Folie 31

Einfache Anfragen mit SQL Formulieren Sie einfache Anfragen für folgende Anforderungen / Fragen! Das Schema der Ergebnisrelation soll ausschließlich die in Klammern gegebenen Attribute enthalten. 1. Liste der Namen (name) und Adressen (adresse) aller Passagiere 2. Liste aller Flugkapitäne Captain (pinr, name, flug_h) 3. Liste der verschiedenen Flugrouten (start_in, ziel, dauer) 4. Von welchen Städten (start_in) kann man nach London oder Berlin fliegen? 5. Welche Piloten (name) sind nicht Chiefpilot und haben über 1500 Flugstunden (flug_h) absolviert? 6. Liste aller Flüge (fnr, ziel) die nach Berlin, London, Frankfurt, Paris, Köln-Bonn gehen 7. Liste aller Flugkapitäne und Chefpiloten (pinr, quali, flug_h), die mehr als 1500 Flugstunden absolviert haben. Folie 32

Komplexere Anfragen/Joins Kartesisches Produkt... FROM R 1, R 2,..., R n... Theta Join... FROM R 1 JOIN R 2 ON (Bedingung)... Natural Join... FROM R 1 NATURAL JOIN R 2... Benennung/Umbenennung... FROM <alter Name> AS <neuer Name>... SELECT <alter Name> AS <neuer Name>... SELECT <Ausdruck> AS <Name>... Qualifikation Zuordnung von Attributen zu Relationen mittels Dot-Notation Folie 33

Komplexere Anfragen in SQL Lösen Sie die folgenden Aufgaben zunächst durch Verwendung des Kreuzprodukts und anschließend mit Join-Operationen! 1. Welche Maschinen (fznr, typ, geschw) fliegen schneller als 870 km/h? 2. Auflistung der Preise (preis) aller Buchungen der 1. Klasse von London nach Boston. 3. Welche Flüge (fnr, start_in, ziel) haben Passagiere mit Nachnamen Ebert gebucht? 4. Welche Geschwindigkeiten fliegen die Maschinen von AIR BERLIN (fznr, typ, geschw)? 5. Welche Piloten (name) fliegen Maschinen (typ) mit einer Geschwindigkeit über 870 km/h? 6. Mit welchen Piloten (name) und Maschinen (typ) fliegt Passagier Swen Pfeifer? Folie 34

Aggregation & Gruppierung Syntax SELECT FROM WHERE GROUP BY HAVING <Attributliste, Aggregatfunktionen> <Relationenliste> <Bedingung> <Attributliste> <Bedingung für Aggregationen> Aggregatfunktionen AVG, COUNT, SUM, MIN, MAX,... Folie 35

Aggregation & Gruppierung mitarbeiter select abt_nr, avg(geh) as d_geh from mitarbeiter group by abt_nr Folie 36

Aggregation & Gruppierung Formulieren Sie folgende Anfragen in SQL! Angaben in Klammern bezeichnen die Benennung der Spalten der Ergebnistabelle. 1. Wie viele (anz) unterschiedliche Qualifikationen gibt es? 2. Welche Durchschnittsgeschwindigkeit (d_geschw) weisen die Flugzeuge von LUFTHANSA auf? 3. Wie viele Passagiere fliegen erster Klasse? 4. Wie viele Piloten (anz) mit der Qualifikation Chiefpilot sind bei AIR FRANCE beschäftigt? 5. Wie viele Piloten (anz) gibt es für jede Qualifikation (quali)? 6. Welche Piloten (pinr) sind für mehr als einen Flug (anz) eingesetzt? 7. Welche Passagiere (panr) haben mehr als einen Flug (anz) gebucht? Folie 37

Ordnen Syntax SFW-Anfrage ORDER BY <Attribut> [ASC DESC],... Reihenfolge ASC bedeutet aufsteigende und DESC absteigende Sortierung. Wird keine Sortierrichtung vorgegeben, gilt automatisch aufsteigende Sortierung. Beispiel SELECT FROM ORDER BY abt_nr, name, taet mitarbeiter abt_nr, geh DESC Folie 38

Ordnen - Aufgaben Formulieren Sie folgende Anfragen in SQL! Angaben in Klammern bezeichnen die Benennung der Spalten der Ergebnistabelle. 1. Die Relation Flug soll alphabetisch geordnet nach dem Startort und für jeden Startort nach fallender Flugdauer ausgegeben werden. 2. Liste der verschiedenen Qualifikationen in geordneter Reihenfolge. 3. Liste der Fluggesellschaften (gesell_bez) mit ihren Passagieren (name, adresse) in alphabetischer Reihenfolge der Fluggesellschaften und Passagiere 4. Liste der Fluggesellschaften (gesell_bez) mit dem Durchschnittspreis (d_preis) der gebuchten Flüge geordnet nach fallenden Durchschnittspreisen Folie 39

Datum & Zeit Datentypen date, time, timestamp, interval Gültige Datums- / Zeitangaben '2001-09-28', '03:00', '2001-09-28 01:00', '2003-12-19 15:04:09.132968+01', '1 year', '13 years' Gültige Einheiten year, years, month, day, hour, minutes, seconds,... Operatoren +, -, *, / Folie 40

Datums- und Zeitfunktionen weitere Funktionen und Details siehe DBMS-Handbuch Name Rückgabe Beschreibung Beispiel Ergebnis age(timestamp) interval Subtrahiert timestamp vom aktuellen Datum age(date 1957-06-13 ) 46 years 6 mons 6 days age(timestamp, timestamp) interval Subtrahiert die Argumente age(date 2001-04-10, date 1957-06-13 ) date_trunc(text, timestamp) extract(identifier from ausdruck) timestamp Schneidet bis zur angegebenen Einheit ab (year,month,day, hour, minute, second,...) date_trunc( hour, timestamp 2001-02-16 20:38:40 ) Extrahiert einen Teil aus einem extract(hour from timestamp Ausdruck 2001-02-16 20:38:40 ) now() timestamp Aktueller Zeitstempel 2003-12-19 15:22:07.738564+01 CURRENT_DATE date Heutiges Datum 2003-12-19 CURRENT_TIME time Aktuelle Zeit 15:20:54.102398+01 CURRENT_TIMESTAMP timestamp Aktueller Zeitstempel 2003-12-19 15:21:14.552832+01 43 years 9 mons 26 days 23:00 2001-02-16 20:00:00+00 20 Folie 41

Aufgaben zu Datum und Zeit 1. Welche Flugzeuge wurden zwischen dem 20.08.1999 und dem 21.01.2000 gewartet (fznr, kontr)? 2. Welche Maschine(n) (fznr, typ) hat Lufthansa 1999 gekauft? 3. Vor wie vielen Tagen (tage) fand der Flug Bagdad nach Montreal statt? 4. Listen Sie alle Piloten (pinr) und den Jahr ihres Dienstantritts (jahr) auf! Folie 42

Unteranfragen Relationenwertige Unteranfragen An jeder Stelle, an der eine Relation oder ein Wert stehen kann, kann prinzipiell auch wieder eine Anfrage erscheinen. z.b. SELECT... FROM (SFW-Anfrage) AS <Name>... Mengenwertige Unteranfragen Anfragen, die eine Wertemenge (oder einen einzelnen Wert) zurückliefern, können entsprechend verwendet werden. Allerdings ist hierbei zu beachten, dass bei Vergleichen potenziell Wertemengen ausgewertet werden müssen. Dafür stehen im WHERE-Teil die Mengenprädikate zur Verfügung: IN EXISTS ANY ALL Ist Element in Wertemenge enthalten? Ist Wertemenge leer? Erfüllt irgendein Wert der Ergebnismenge die Bedingung? Genügen alle Elemente der Ergebnismenge der Bedingung? Folie 43

Aufgaben Unteranfragen Lösen Sie folgende Anfragen zunächst ausschließlich mit Hilfe von Unteranfragen! Geben Sie - wenn möglich - noch eine Variante ohne Unteranfragen an! 1. Wie heißt der älteste Pilot (name)? 2. Welcher Flugzeugtyp (typ) ist der schnellste (geschw)? 3. Wann wurden die Maschinen (fznr), die von Piloten mit Nachnamen Hummel geflogen werden, das letzte mal überprüft (kontr)? 4. Für welche unterschiedlichen Flugzeugtypen (typ) von AIR BERLIN liegen Buchungen vor? 5. Welche Piloten (name) sind für keinen Flug eingesetzt? 6. Welche Piloten (name) haben mehr Flugstunden (flug_h) als Pilot Jan Berger und gleiche Qualifikation (quali)? 7. Welche Passagiere (name) haben denselben Flug gebucht wie Jim Ziegel [außer Jim Ziegel]? 8. Wie teuer (preis) ist die billigste aller Buchungen der 1. Klasse von London nach Boston? Folie 44