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

Ähnliche Dokumente
Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanksysteme SQL Grundlagen

Übersicht der wichtigsten MySQL-Befehle

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

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

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

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

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

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

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

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

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

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

Es geht also im die SQL Data Manipulation Language.

ACCESS SQL ACCESS SQL

Abfragen (Queries, Subqueries)

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

SQL als Zugriffssprache

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

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

SQL: Abfragen für einzelne Tabellen

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.

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

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

Vorlesung Datenbankmanagementsysteme

Wiederholung VU Datenmodellierung

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

Wiederholung VU Datenmodellierung

Query Languages (QL) Relationale Abfragesprachen/Relational

Datenbanksysteme Kapitel 2: SQL Data Definition Language

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

Datenbankabfragen und Datenmanipulation

8 DML (1) Daten abfragen

Microsoft Access 2010 SQL nutzen

Kapitel 2: Einstieg in SQL

Datenbanksysteme Kapitel: SQL Data Definition Language

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

Telefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

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

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

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

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

IV. Datenbankmanagement

Praktische SQL-Befehle

Operationen auf Relationen

Datenbanken im WI-Unterricht mit

Grundlagen von Datenbanken

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

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

Relationen-Algebra. Prof. Dr. T. Kudraß 1

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

DB1. DB SQL-DQL 1 Mario Neugebauer

Tabellenkalkulationssysteme Inf 9 / 1

Informationsmanagement u. Numerische Methoden

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

Datenbanken und Datenmodellierung

Informatik 12 Datenbanken SQL-Einführung

2.5 Structured Query Language (SQL)

SQL. Komplexe Abfragen. SQL-Komplexe Abfragen. SQL-Komplexe Abfragen. Komplexe Abfragen verknüpfen mehrere Tabellen miteinander.

SQL. Structured Query Language

Einführung in die Spezialisierungsrichtungen

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

SQL ist eine relational vollständige Datenbanksprache.

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

Datenbank und Tabelle mit SQL erstellen

Prof. Dr. Bernd Blümel Prof. Dr. Volker Klingspor. Datenbanken und SQL

Oracle 10g Einführung

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Niedersächsisches Kultusministerium Juli 2014

Aggregatfunktionen in SQL

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.

Einführung in Datenbanken und SQL

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Lösungen der Übungsaufgaben von Kapitel 10

1 Vorstellung Kursbeispiel

gibt es kein Bundesland, en?"

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

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

SQL-Befehlsliste. Vereinbarung über die Schreibweise

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik

Kapitel 3: Datenbanksysteme

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

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

Oracle 10g Einführung

Aggregatfunktionen in der Relationenalgebra?

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

SQL: Weitere Funktionen

[ SQL] Wissen, das sich auszahlt

Transkript:

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Prof. Peter Dr. Chamoni Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 1 Gliederung 1 Einführung 2 Betriebliche Informationssysteme 3 Modellierung betrieblicher Informationssysteme 4 Relationale Datenbanksprachen: SQL Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 2

Gliederung 4 Relationale Datenbanksprachen: SQL 4.1 Relationale Algebra 4.2 Relationale Algebra und SQL Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 3 4.1 Relationale Algebra Relationale Operationen (I) Das relationale Datenmodell basiert auf den Grundlagen der mathematischen Mengenlehre und bildet den formalen Rahmen für relationale Datenbanksprachen. Die Relationenalgebra ist die grundlegende Datenmanipulationssprache zum Relationenmodell. Sie ermöglicht auf vielfältige Weise die mathematische Verknüpfung von Relationen, d. h. von Mengen, deren Elemente mehrstellige Tupel sind. Die Relationenalgebra definiert allgemeingültige Operationen, die auf Tabellen operieren. Auch die Ergebnisse dieser Operationen sind wieder Tabellen. Diese Operationen dienen als Basis jeder Abfragesprache für relationale Datenbanken. [Hansen/Neumann (2009), S. 299ff.] Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 4

4.1 Relationale Algebra Relationale Operationen (II) Teil des Relationalen Modells - Definition von Operationen mit 1 bzw. 2 Eingabetabellen sowie 1 Ausgabetabelle Operationen über 1 Tabelle - Selektion Auswahl bestimmter Zeilen einer Tabelle - Projektion Auswahl bestimmter Spalten einer Tabelle Operationen über 2 Tabellen - Kartesisches Produkt (TIMES) - Verbund (JOIN) - Natürlicher Verbund Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 5 [Hansen/Neumann (2009), S. 299ff.] 4.1 Relationale Algebra Selektion (I) Auswahl einer Untermenge aller Tupel einer Relation R, die eine vorgegebene Bedingung B erfüllen. R WHERE B Ist in der Relation R kein Tupel vorhanden, welches die vorgegebene Bedingung B erfüllt, so ist das Ergebnis der Selektion die leere Relation. Bei der Selektion werden Zeilen aus einer Tabelle ausgewählt, die eine vorgegebene Auswahlbedingung erfüllen. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 6

4.1 Relationale Algebra Selektion (II) Ermitteln Sie alle Tupel der Relation Flugstrecke, bei denen die Flugdauer unter 120 Minuten beträgt. Ausgangsrelation Flugstrecke FlugNr Flugdauer Abflugort Ankunftsort LH3612 65 Frankfurt Dresden LH1176 90 Düsseldorf Mailand LH9876 325 Köln-Bonn Moskau Relationale Algebra Flugstrecke WHERE Flugdauer < 120 Ergebnisrelation FlugNr Flugdauer Abflugort Ankunftsort LH3612 65 Frankfurt Dresden LH1176 90 Düsseldorf Mailand Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 7 4.1 Relationale Algebra Selektion (III) Ermitteln Sie alle Tupel der Relation Pilot, bei denen der Nachname Maier auftritt. Ausgangsrelation Pilot PilotID Name Vorname GKID 4711 Borel Heinz 23 1183 Maier Marie 14 2306 Müller Daniel 27 Relationale Algebra Pilot WHERE Name = Maier Ergebnisrelation PilotID Name Vorname GKID 1183 Maier Marie 14 Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 8

4.1 Relationale Algebra Projektion (I) Auswahl einer Untermenge der Attribute einer Relation R. R [Attributauswahl] Bei der Projektion werden evtl. entstehende identische Tupel eliminiert. Bei der Projektion werden Spalten aus einer Tabelle ausgewählt, die eine vorgegebene Auswahlbedingung erfüllen. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 9 4.1 Relationale Algebra Projektion (II) Ausgangsrelation Pilot PilotID Name Vorname GKID 4712 Müller Heinz 23 1183 Maier Marie 14 2306 Müller Daniel 27 Relationale Algebra Pilot [Name, Vorname] Pilot [Name] Ergebnisrelation Name Vorname Name Müller Heinz Müller Maier Marie Maier Müller Daniel Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 10

4.1 Relationale Algebra Kartesisches Produkt (I) Bei dem kartesischen Produkt zweier Relationen R 1 und R 2 wird eine neue Relation erzeugt, die aus allen möglichen Kombinationen der Tupel der beiden Relationen R 1 und R 2 besteht. R 1 TIMES R 2 Das kartesische Produkt A x B zweier Tabellen A vom Grad n und B vom Grad m ist die Menge aller Kombinationstupel ((n x m)-tupel). Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 11 4.1 Relationale Algebra Kartesisches Produkt (II) Bilden Sie das kartesische Produkt der Relationen Pilot und Gehaltsklasse. Ausgangsrelationen Relationale Algebra Pilot TIMES Gehaltsklasse Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 12

4.1 Relationale Algebra Verbund (I) Der Verbund zweier Relationen R 1 und R 2 ist das kartesische Produkt beider Relationen, aus dem nur diejenigen Tupel selektiert werden, deren Attributwerte für gleichbenannte Attribute der beiden Relationen R 1 und R 2 gleich sind. R 1 JOIN R 2 Der Verbund zweier Tabellen A und B ist das kartesische Produkt A x B beider Tabellen, aus dem die Zeilen ausgewählt werden, deren Attributwerte für gleichbenannte Spalten der beiden Tabellen A und B gleich sind. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 13 4.1 Relationale Algebra Verbund (II) Bilden Sie den Verbund zwischen den Relationen Pilot und Gehaltsklasse. Ausgangsrelationen Relationale Algebra Pilot JOIN Gehaltsklasse Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 14

4.1 Relationale Algebra Verbund (III) Schrittweises Vorgehen: Pilot JOIN Gehaltsklasse. Ausgangsrelationen Relationale Algebra 1. Kartesisches Produkt Zwischen- Ergebnisrelation Pilot TIMES Gehaltsklasse Pilot JOIN Gehaltsklasse Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 15 4.1 Relationale Algebra Verbund (IV) Schrittweises Vorgehen: Pilot JOIN Gehaltsklasse. 2. Gemeinsame Attribute identifizieren Zwischen- Ergebnisrelation 3. Auswahl der Zeilen mit dem selben Wert beim Vergleich der gemeinsamen Attribute Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 16

4.1 Relationale Algebra Natürlicher Verbund Beim Verbund ist das in beiden Relationen R 1 und R 2 vorkommende Attribut redundant. Wird dieses redundante Attribut nachträglich durch eine Projektion entfernt, so handelt es sich um einen natürlichen Verbund. Ausgangsrelationen Relationale Algebra Pilot Gehaltsklasse Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 17 Gliederung 4 Relationale Datenbanksprachen: SQL 4.1 Relationale Algebra 4.2 Relationale Algebra und SQL Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 18

4.2 Relationale Algebra und SQL Datenbanksprache SQL (I) SQL = Structured Query Language SQL zählt zu den Sprachen der 4. Generation (4GL). Es ist eine deklarative Programmiersprache. SQL ist eine Implementierung der Relationenalgebra - Aber kleinere Unterschiede z.b. Ordnung der Tabellenzeilen in SQL z.b. Duplikate von Tabellenzeilen in SQL erlaubt Bekannte auf SQL basierende Datenbankmanagementsysteme: Oracle, IBM DB2, Microsoft SQL Server, Access, Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 19 4.2 Relationale Algebra und SQL Datenbanksprache SQL (II) Historische Entwicklung Anfang der 80er Jahre durch IBM entwickelt SQL wurde vom ANSI (American National Standard Institut) zur Standardsprache für relationale Datenbanken erklärt. Normierungen durch die ISO (International Organization for Standardization): - 1. Norm: 1986-2. Norm: 1989 (SQL1) - 3. Norm: 1992 (SQL2) - 4. Norm: 1999 (SQL3) Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 20

4.2 Relationale Algebra und SQL Datenbanksprache SQL (III) Sprachumfang Zum Sprachumfang von SQL gehören 3 Befehlsgruppen: - Data Definition Language (DDL) Erstellen von Relationen, Datenbanken und Indizes. - Data Manipulation Language (DML) Anlegen, Ändern, und Löschen von Datensätzen in Relationen. - Data Query Language (DQL) integriert in DML Abfrage auf Datenbanken - Data Control Language (DCL) Anlegen von Benutzern und Vergabe von Zugriffsrechten. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 21 4.2 Relationale Algebra und SQL Datenbanksprache SQL (IV) Einfaches Standardabfrageschema in SQL Zu den wichtigsten Operationen auf Datenbanktabellen zählen Projektion, Selektion, Kartesisches Produkt und Verbund Diese Operationen werden in SQL in der einheitlichen Notation formuliert: Schema einer SQL Standardabfrage SELECT Attributliste FROM Tab 1, Tab 2,,Tab n WHERE Bedingung; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 22

4.2 Relationale Algebra und SQL Datenbanksprache SQL (V) Darstellung der relationalen Operationen in SQL Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 23 4.2 Relationale Algebra und SQL Projektion Pilot Ausgangsrelation PilotID Name Vorname GKID 4712 Müller Heinz 23 1183 Maier Marie 14 2306 Müller Daniel 27 Relationale Algebra Pilot [Name, Vorname] SQL SELECT Name, Vorname FROM Pilot; Ergebnisrelation Name Müller Maier Müller Vorname Heinz Marie Daniel Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 24

4.2 Relationale Algebra und SQL Selektion Pilot Ausgangsrelation PilotID Name Vorname GKID 4711 Borel Heinz 23 1183 Maier Marie 14 2306 Müller Daniel 27 Relationale Algebra Pilot WHERE Name = Maier SQL SELECT * FROM Pilot WHERE Name = Maier ; Ergebnisrelation PilotID Name Vorname GKID 1183 Maier Marie 14 Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 25 4.2 Relationale Algebra und SQL Kartesisches Produkt Ausgangsrelationen Relationale Algebra Pilot TIMES Gehaltsklasse SQL SELECT * FROM Pilot, Gehaltsklasse; Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 26

4.2 Relationale Algebra und SQL Verbund Ausgangsrelationen Relationale Algebra Pilot JOIN Gehaltsklasse SQL Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 27 4.2 Relationale Algebra und SQL Natürlicher Verbund Ausgangsrelationen Relationale Algebra Pilot Gehaltsklasse SQL Ergebnisrelation Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 28

Gliederung 4 Relationale Datenbanksprachen: SQL 4.1 Relationale Algebra 4.2 Relationale Algebra und SQL Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 29 Allgemeine Informationen zu diesem Abschnitt (I) Die nachfolgenden e beziehen sich auf folgendes relationale Datenmodell Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 30

Allgemeine Informationen zu diesem Abschnitt (II) Welche Informationen muss die Ergebnisrelation enthalten? - Achten Sie jeweils darauf, welche Daten laut Aufgabenstellung ausgegeben werden sollen. - Empfehlung Nehmen Sie sowohl den/die Primärschlüssel der beteiligten Tabelle(n) wie auch mindestens ein weiteres Attribut pro Tabelle in die SELECT-Klausel auf. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 31 Vereinfachtes Standardabfrageschema Notwendig SELECT * Attributliste FROM Tab 1, Tab 2,, Tab n Projektion / Attributauswahl Relation / Produkt / Join WHERE Bedingung Selektion einzelner Tupel Optional GROUP BY HAVING Attributliste Bedingung Bildung von Tupelgruppen, Aggregation, Selektion von Tupelgruppen ORDER BY Attributliste ASC DESC Sortierung Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 32

Einfache Standardabfrage Notwendig Optional SELECT [DISTINCT] * Attributliste FROM Tabellenname [WHERE Bedingung] [ORDER BY Attributliste] [ASC DESC]; Ergebnisrelation Ausgangsrelation Eingrenzen der Ergebnismenge Sortieren der Ergebnismenge Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 33 SELECT-Klausel (I) Syntax SELECT * Attributliste FROM Tabellenname; Projektion / Attributauswahl Übernehmen Sie alle Daten der Relation Buchung in die Ergebnisrelation. SELECT * FROM Buchung; Stellen Sie die Projektion über die Attribute PassID, FlugNr und das jeweilige Datum dar. SELECT PassID, FlugNr, Datum FROM Buchung; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 34

SELECT-Klausel (II) Umbenennung von Attributen (Spalten) in der Ergebnisrelation Ein Attributname (Spalte) kann zur Ausgabe mit Hilfe des AS-Operators umbenannt werden. Das Attribut Name der Relation Pilot soll in der Ergebnisrelation umbenannt werden in Nachname. SELECT PilotID, Name AS Nachname, Vorname FROM Pilot; Das Attribut Name der Relation Pilot soll in der Ergebnisrelation umbenannt werden in Nachname des Piloten. SELECT PilotID, Name AS Nachname des Piloten, Vorname FROM Pilot; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 35 SELECT-Klausel (III) Abgeleitete Attribute Aufnahme eines neuen Attributs In einer Ergebnisrelation kann ein neues Attribut (eine zusätzliche Spalte) aufgenommen werden, dessen Attributwerte konstant sind, sich aus den Werten bestimmter Attribute der Ausgangsrelation herleiten lassen oder das Ergebnis einer Funktion sind. <Ausdruck> AS <Bezeichnung der neuen Spalte> : Die Relation Pilot soll in der Ergebnisrelation durch ein zusätzliches Attribut erweitert werden, das den konstanten Wert Angestellter enthalten und die Bezeichnung Status tragen soll. SELECT PilotID, Name, Vorname, Angestellter AS Status FROM Pilot; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 36

SELECT-Klausel (IV) Syntax SELECT [DISTINCT] * Attributliste FROM Tabellenname; Wenn Sie den DISTINCT-Parameter in der SELECT-Klausel angeben, erhalten Sie nur eindeutige Ergebnisse, d.h. die Ausgabe identischer Tupel wird vermieden. Listen Sie aus der Relation Pilot alle Nachnamen der Piloten auf. Stellen Sie sicher, dass in der Ergebnisrelation jeder Nachname nur einmal erscheint. SELECT DISTINCT Name FROM Pilot; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 37 ORDER BY-Klausel (I) Syntax SELECT [DISTINCT] * Attributliste FROM Tabellenname [ORDER BY Attributliste] [ASC DESC]; Mit der ORDER BY-Klausel werden die Tupel (Datensätze) der Ergebnisrelation in eine bestimmte Reihenfolge gebracht. Attributliste: ASC DESC: Angabe der Attribute, nach denen sortiert werden soll. geben die jeweilige Sortierreihenfolge an. Mit DESC wird absteigend sortiert. Mit ASC erfolgt die Sortierung aufsteigend. Dies ist jedoch standardmäßig der Fall und muss somit nicht explizit angegeben werden. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 38

ORDER BY-Klausel (II) Sortieren Sie die Pilotenliste nach den Nachnamen in aufsteigender Reihenfolge. SELECT * FROM Pilot ORDER BY Name; alternativ: ORDER BY Name ASC; Sortieren Sie die Pilotenliste nach den Nachnamen in absteigender Reihenfolge. SELECT * FROM Pilot ORDER BY Name DESC; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 39 ORDER BY-Klausel (III) Sortieren Sie die Flugliste absteigend nach dem Datum und danach aufsteigend nach der PilotID. SELECT * FROM Flug ORDER BY Datum DESC, PilotID ASC; Alternativ SELECT * FROM Flug ORDER BY Datum DESC, PilotID; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 40

WHERE-Klausel (I) Syntax SELECT [DISTINCT] * Attributliste FROM Tabellenname [WHERE Bedingung]; Selektion Soll nicht der Inhalt der Ausgangsrelation vollständig ausgegeben werden, so kann die Ergebnismenge mittels Bedingungen in der WHERE-Klausel eingegrenzt werden. Listen Sie alle Flüge auf, die vom Piloten mit der PilotID 4711 durchgeführt werden. SELECT * FROM Pilot WHERE PilotID = 4711; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 41 WHERE-Klausel (II) Bedingung (1) ist ein logischer Ausdruck, dessen Ergebnis WAHR oder FALSCH ist. In diesen logischen Ausdrücken werden die Attributwerte (vorwiegend) mit konstanten, vorgegebenen Werten verglichen. Hierbei stehen verschiedene Operatoren zur Verfügung, vor allem: Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 42

WHERE-Klausel (III) Bedingung (2) In den logischen Ausdrücken werden die Attributwerte (vorwiegend) mit konstanten, vorgegebenen Werten verglichen. Datentyp des Attributs Darstellung des Vergleichswerts numerisch ohne Anführungszeichen SELECT * FROM Flug WHERE PilotID = 4711; alphanumerisch in einfachen oder doppelten Anführungszeichen SELECT * FROM Flug WHERE FlugNr <> "LH3654"; Datum In folgenden Formaten möglich: #MM/TT/JJJJ# (Access) JJJJ-MM-TT TT.MM.JJJJ SELECT * FROM Flug WHERE Datum = #07/15/2010#; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 43 WHERE-Klausel (IV) Bedingung (3) Bedingungsarten Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 44

WHERE-Klausel (V) Bedingung (4) Bedingungsarten Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 45 WHERE-Klausel (VI) Bedingung (5) Klammersetzung bei der Verwendung logischer Operatoren - Auswertung der logischen Ausdrücke ohne Klammersetzung NOT ist die engste Verbindung und wird vorrangig ausgewertet. AND ist die nächststärkere Verbindung und wird danach ausgewertet. OR ist die schwächste Verbindung und wird zuletzt ausgewertet. - Auswertung der logischen Ausdrücke mit Klammersetzung Logische Ausdrücke, die in Klammern gesetzt sind, werden vor allem anderen ausgewertet. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 46

Gruppierung (I) Abfragen werden sehr häufig gruppiert, weil nicht nur Informationen auf Datensatzebene (einzelne Tupel) von Interesse sind, sondern auch (daten-)gruppenbezogene Auswertungen angefordert werden. Durch die GROUP BY-Klausel werden alle Tupel, die in einem oder mehreren Attributen den gleichen Wert enthalten, in jeweils einer Gruppe zusammengefasst. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 47 Gruppierung (II) Geben Sie für jeden Passagier seine durchschnittlichen Flugkosten (Preis) an. Buchung Gruppierung Aggregation SELECT PassagierID, AVG(Preis) AS durchschnittl. Flugkosten FROM Buchung GROUP BY PassagierID; Aggregation Gruppierung Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 48

GROUP BY-Klausel (I) Syntax SELECT [DISTINCT] * Attributliste FROM Tabellenname [GROUP BY Attributliste]; Durch die GROUP BY-Klausel werden alle Tupel, die in einem Attribut oder mehreren Attributen den gleichen Wert enthalten, in jeweils einer Gruppe zusammengefasst. Dies ist in der Regel nur dann sinnvoll, wenn in der Ergebnisrelation eine gruppenweise Auswertung, also eine der Aggregatfunktionen, enthalten ist. Mit Hilfe von Aggregatfunktionen werden neue Attribute zu einer Ergebnisrelation hinzugefügt, in denen als Wert das pro gebildeter Gruppe ermittelte Ergebnis der Aggregatfunktion dargestellt wird. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 49 GROUP BY-Klausel (II) Aggregatfunktionen Funktion Erläuterung COUNT() Liefert die Anzahl der Werte (außer den Wert NULL) in der Ergebnismenge einer SELECT- Abfrage bzw. einer Gruppierung. SELECT COUNT(PilotID) AS Anzahl FROM Pilot SELECT COUNT(*) AS Anzahl FROM Pilot AVG () MIN () MAX () Liefert den Durchschnittswert eines Datenfeldes der Abfrage oder Gruppierung. Liefert den kleinsten bzw. größten Wert eines Datenfeldes der Abfrage oder Gruppierung. SELECT AVG(Preis) AS Durchschnitt FROM Buchung SELECT MIN(Gehalt) AS Minimum FROM Gehaltsklasse SUM () Liefert die Summe der Werte eines Datenfeldes in der Abfrage oder Gruppierung. SELECT MAX(Gehalt) AS Maximum FROM Gehaltsklasse SELECT SUM(Preis) AS Umsatz FROM Buchung Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 50

GROUP BY-Klausel (III) Die GROUP BY-Klausel muss gewisse Bedingungen erfüllen. (Auch dafür gilt: Jedes DBMS weicht an manchen Punkten vom Standard ab.) Jedes Attribut in der SELECT-Klausel, welches nicht zu einer Aggregatfunktion gehört, muss auch in der GROUP BY-Klausel verwendet werden. Umgekehrt ist es möglich, ein Attribut per GROUP BY zu gruppieren, ohne das Attribut selbst in der SELECT-Klausel und damit in der Ergebnisrelation zu verwenden. Achtung: Durch die GROUP BY-Klausel entsteht eine neue interne Tabelle! Deswegen können für die Ausgabe von Gruppen nur Attribute verwendet werden, nach denen gruppiert wurde. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 51 GROUP BY-Klausel (IV) Listen Sie für die einzelnen Gehaltsklassen basierend auf GKID die Anzahl der Piloten auf, die sich in der jeweiligen Gehaltsklasse befinden. SELECT GKID, COUNT(*) AS Anzahl FROM Pilot GROUP BY GKID; Geben Sie pro Flug (basierend auf Flugnummer und Datum) den durchschnittlichen Preis an. SELECT FlugNr, Datum, AVG(Preis) AS Durchschnittspreis FROM Buchung GROUP BY FlugNr, Datum; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 52

HAVING-Klausel (I) SELECT [DISTINCT] * Attributliste FROM Tabellenname [GROUP BY Attributliste] [HAVING Bedingung]; Die HAVING-Klausel ist eine Ergänzung zu den Aggregatfunktionen, die bei Gruppierungen verwendet wird, um die Anzahl der Tupelgruppen in der Ergebnisrelation einzugrenzen. Im Gegensatz zur WHERE-Klausel werden die in der HAVING-Klausel angegebenen Bedingungen nicht auf einzelne Tupel, sondern auf Tupelgruppen angewendet. Die in der HAVING-Klausel angegebene Bedingung wird aus dem Wertebereich der Aggregatfunktion vorgegeben. Tupelgruppen, welche diese Bedingung nicht erfüllen, werden verworfen. Mögliche Vergleichsoperatoren: <, >, <>, =, >=, <= Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 53 HAVING-Klausel (II) Bestimmen Sie für die einzelnen Gehaltsklassen basierend auf GKID die Anzahl der Piloten, die der jeweiligen Gehaltsklasse angehören. Die Ergebnisrelation soll nur solche Gehaltsklassen darstellen, denen mindestens drei Piloten angehören. SELECT GKID, COUNT(*) AS Anzahl FROM Pilot GROUP BY GKID HAVING COUNT(*) > 2; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 54

HAVING-Klausel (III) Geben Sie pro Flug (anhand des Primärschlüssels) den durchschnittlichen Preis an, den die Passagiere bezahlt haben. Es sollen jedoch nur jene Flüge aufgeführt werden, deren Durchschnittspreis unter 350 liegt. SELECT FlugNr, Datum, AVG(Preis) AS Durchschnittspreis FROM Buchung GROUP BY FlugNr, Datum HAVING AVG(Preis) < 350; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 55 Abfragen über mehrere Tabellen (I) Ein besonderes Merkmal von relationalen Datenbanken ist, dass die Informationen fast immer über mehrere Tabellen verteilt sind und bei Abfragen in der Ergebnismenge zusammengeführt werden müssen. Die Verbundoperationen sind die Grundlage für Datenbankabfragen, die sich über mehrere Relationen erstrecken. Beim Inner-Join wird das kartesische Produkt über zwei Relationen gebildet, verbunden mit der Prüfung, ob ein oder mehrere gemeinsame Attribute den gleichen Wert haben. Der Inner-Join entspricht in der Relationenalgebra dem Verbund. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 56

Abfragen über mehrere Tabellen (II) Verbundoperationen auf mehreren Tabellen werden durch ein gemeinsames Attribut definiert. An diese werden einschränkende Bedingungen gestellt. Alle zu verknüpfenden Tabellen werden namentlich in die FROM-Klausel aufgenommen und jeweils durch ein Komma getrennt aufgelistet. In die WHERE-Klausel wird die Bedingung eingefügt, dass die Fremdschlüsselwerte der einen Tabelle mit den Primärschlüsselwerten der jeweils referenzierten Tabelle übereinstimmen müssen. Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 57 Abfragen über mehrere Tabellen (III) Innerer Verbund zwischen den beiden Relationen Pilot und Gehaltsklasse. SELECT * FROM Pilot, Gehaltsklasse WHERE Pilot.GKID = Gehaltsklasse.GKID; Sobald ein Attributname in mehr als einer der verwendeten Relationen vorhanden ist, muss angegeben werden, aus welcher dieser Relationen das Attribut verwendet werden soll. Dies erfolgt durch: Tabellenname.Attributname Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 58

Abfragen über mehrere Tabellen (IV) Erstellen Sie eine Übersicht, aus der hervorgeht, welche Piloten welche Flüge durchgeführt haben. SELECT Pilot.PilotID, Name, FlugNr, Datum, Gate FROM Flug, Pilot WHERE Flug.PilotID = Pilot.PilotID; Erstellen Sie eine Übersicht, aus der hervorgeht, welcher Pilot den Flug LH3615 am 27.11.2008 durchgeführt hat. SELECT Pilot.PilotID, Name, Vorname FROM Flug, Pilot WHERE Flug.PilotID = Pilot.PilotID AND FlugNr = "LH3615" AND Datum = #11/27/2008#; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 59 Abfragen über mehrere Tabellen (V) Listen Sie alle Piloten auf, die mehr als 2 Flüge durchgeführt haben. SELECT Pilot.PilotID, Name, Vorname COUNT(*) AS Anzahl FROM Flug, Pilot WHERE Flug.PilotID = Pilot.PilotID GROUP BY Pilot.PilotID, Name, Vorname HAVING COUNT(*) > 2 ; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 60

Abfragen über mehrere Tabellen (VI) Innerer Verbund zwischen den beiden Relationen Flug und Passagier. Diese beiden Relationen können nicht direkt miteinander verknüpft werden. Hierzu muss zusätzlich die Relation Buchung betrachtet werden.? Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 61 Abfragen über mehrere Tabellen (VII) Listen Sie alle Passagiere auf, die im letzten Quartal des Jahres 2008 von Düsseldorf nach Mailand geflogen sind. SELECT DISTINCT Passagier.PassID, Name, Vorname FROM Passagier, Buchung, Flugstrecke WHERE Passagier.PassID = Buchung.PassID AND Buchung.FlugNr = Flugstrecke.FlugNr AND Datum BETWEEN #10/01/2008# AND #12/31/2008# AND Abflugort = "Düsseldorf" AND Ankunftsort = "Mailand"; Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 62

Notwendig SELECT [DISTINCT] * Attributliste FROM Tab 1, Tab 2,, Tab n Projektion / Attributauswahl Relation / Produkt / Join WHERE Bedingung Selektion einzelner Tupel Optional GROUP BY HAVING Attributliste Bedingung Bildung von Tupelgruppen, Aggregation, Selektion von Tupelgruppen ORDER BY Attributliste ASC DESC Sortierung Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 63 Verarbeitung einer Datenbankabfrage 5 4 6 1 2 3 Prof. Dr. Peter Chamoni - Einführung in die Wirtschaftsinformatik - Folie 64