ARBEITSBLATT ZU SQL-BEFEHLEN

Ähnliche Dokumente
ARBEITSBLATT ZUR SQL-BEFEHLEN

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

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

SQL als Zugriffssprache

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

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

Übersicht der wichtigsten MySQL-Befehle

Oracle 10g Einführung

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

Abfragen (Queries, Subqueries)

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

Objektorientierte Datenbanken

SQL: Abfragen für einzelne Tabellen

Wiederholung VU Datenmodellierung

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

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenbanksysteme 2013

Diskussion: Personal (1)

Lösungen der Übungsaufgaben von Kapitel 10

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

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Wiederholung VU Datenmodellierung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Fortsetzung: Projektion Selektion. NULL Werte

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

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

Wirtschaftsinformatik 7a: Datenbanken. Dozent: R. Witte

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

ACCESS SQL ACCESS SQL

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Übung 1: SQL. Übungen finden bei Bedarf anstelle der Vorlesungen statt Fragen? Vorlesung Datenbankeinsatz WS 04/05 IPD

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

Informatik 12 Datenbanken SQL-Einführung

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

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

Datenmanagement I SoSe 2006 Aufgabenblatt 4

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

5.8 Bibliotheken für PostgreSQL

Datenbanksysteme Kapitel 5: SQL - Grundlagen

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

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Übungen zu Datenbanksysteme

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

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

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

Kapitel 8: Datenintegrität

DATENBANKSYSTEME: SQL

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbankabfragen und Datenmanipulation

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

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

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

Datenbanken und SQL. Kapitel 4. Die Datenbankzugriffssprache SQL. Edwin Schicker: Datenbanken und SQL (4)

Entity Relationship Modell

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

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

Kapitel 5: Der SQL-Standard

GROUP BY, HAVING und Sichten

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

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

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Microsoft Access 2010 SQL nutzen

7. Einfache Auswertungen aus der Datenbank (select)

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

Datenbanken. Zusammenfassung. Datenbanksysteme

Grundlagen von Datenbanken

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

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

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

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül

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

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

Kapitel 5: Sortieren, Gruppieren und Views in SQL

Relationale Abfragesprachen

Transkript:

ARBEITSBLATT ZU SQL-BEFEHLEN Die Syntax eines Standard-SELECT-Befehls in Backus-Naur-Form sieht wie folgt aus: SELECT [ALL DISTINCT]{spalten *} FROM tabelle [alias] [tabelle[alias]]... [WHERE {bedingung unterabfrage}] [GROUP BY spalten[having {bedingung unterabfrage}]] [ORDER BY spalten[asc DESC]...]; Aufgabe 1: Gegeben seien die Relationen Student(MatrNr, Name) Vorlesung(VorlNr, Titel, PersNr) Professor(PersNr, Name) und die Beziehungsrelation hört(matrnr, VorlNr) Was bewirken die folgenden SQL-Anweisungen? SELECT * SELECT * WHERE (MatrNr LIKE "156-*") OR (Name LIKE "Ab*") SELECT MatrNr SELECT DISTINCT PersNr SELECT Name, MatrNr AS Matrikelnummer SELECT Titel, VorlNr WHERE PersNr = 12 SELECT Titel, VorlNr ORDER BY PersNr SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.Name, Professor.PersNr FROM Professor INNER JOIN Vorlesung ON Professor.PersNr = Vorlesung.PersNr SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.Name, Professor.PersNr SELECT Professor.Name, Professor.PersNr WHERE Vorlesung.PersNr IS NULL SELECT Professor.Name, Professor.PersNr FROM Professor WHERE NOT EXISTS (SELECT * WHERE Vorlesung.PersNr = Professor.PersNr) SELECT COUNT(Vorlesung.PersNr) AS Anzahl, Professor.Name, Professor.PersNr GROUP BY Professor.Name, Professor.PersNr

Aufgabe 2: Folgende Tabelle sind gegeben: Abteilung ID Name Leiter 0 Raumfahrt 1 1 Fuhrpark 4 2 Verwaltung 2 arbeitet_an ID Mitarbeiter Projekt 0 1 0 1 1 1 2 2 2 3 5 0 4 0 1 5 0 2 Mitarbeiter ID Name Vorname Abteilung 0 Müller Anton NULL 1 Geiger Sven 0 2 Schwab Anita 2 4 Görgens Margit 1 5 Hurz Willy NULL Projekt ID Bezeichner Abteilung Verantwortlicher 0 Apollo 13 0 5 1 Challenger 0 4 2 Webseiten 2 0 a) Erstellen Sie ein Entity-Relationship-Diagramm. b) Geben Sie die SQL-Befehle an, welche nötig sind, um die folgenden Abfragen zu erhalten. 1. Wer ist Leiter der Raumfahrtabteilung? 2. Geben Sie alle Abteilungsleiter aus. 3. Welche Projekte gehören zur Verwaltungsabteilung? 4. Wer ist für das Apollo 13 Projekt verantwortlich? 5. Wer arbeitet am Challenger Projekt? 6. Geben Sie alle Projektverantworlichen aus. 7. Wer arbeitet am Challenger Projekt und ist gleichzeitig Leiter einer Abteilung? 8. Wer arbeitet am Apollo 13 Projekt oder am WebSeiten-Projekt? c) Geben Sie die aus den Abfragen resultierenden Tabellen an.

SELECT * Listet die Werte aller Spalten aus der Tabelle Student auf. SELECT MatrNr Projektion: Listet die Spalte MatrNr der Tabelle Student auf. SELECT DISTINCT PersNr Projektion: Listet die vorhandenen, verschiedenen Ausprägungen der Spalte PersNr aus der Tabelle Vorlesung auf. SELECT Name, MatrNr AS Matrikelnummer Die Spalte MatrNr heißt in der Ergebnisrelation jetzt Matrikelnummer. SELECT Titel, VorlNr WHERE PersNr = 12 Selektion: Listet alle Vorlesungen eines Professors auf. SELECT Titel, VorlNr ORDER BY PersNr Projektion mit Gruppierung: Listet alle Vorlesungs-Titel sortiert nach unterrichtenden Professoren auf. SELECT a.vorlnr, a.titel, b.name, b.persnr FROM Professor b INNER JOIN Vorlesung a ON b.persnr = a.persnr Innerer natürlicher Verbund: Listet die Werte der Spalten VorlNr und Titel aus der Tabelle Vorlesung sowie der Spalten Name und Persnr aus der Tabelle Professor für alle Vorlesungen auf. SELECT a.vorlnr, a.titel, b.name, b.persnr FROM Professor b LEFT OUTER JOIN Vorlesung a ON b.persnr = a.persnr Äußerer linker natürlicher Verbund: Listet die Werte der Spalten VorlNr und Titel aus der Tabelle Vorlesung sowie der Spalten Name und PersNr aus der Tabelle Professor für alle Vorlesungen auf. Professoren die keine Vorlesungen halten werden auch mit aufgelistet. SELECT c.name, c.persnr FROM Professor c LEFT OUTER JOIN Vorlesung b ON c.persnr = b.persnr WHERE b.persnr IS NULL Äußerer linker natürlicher Verbund, Selektion und Projektion: Listet alle Professoren auf, die keine Vorlesungen halten. SELECT a.name, a.persnr FROM Professor a WHERE NOT EXISTS (SELECT * WHERE PersNr = a.persnr) Unterabfrage mit Existenz-Quantor: Das gleiche mit einer Unterabfrage. SELECT COUNT(b.PersNr) AS Anzahl, a.name, a.persnr FROM Professor a LEFT OUTER JOIN Vorlesung b on a.persnr = b.persnr GROUP BY a.name, a.persnr Gruppierung, Aggregation und äußerer linker natürlicher Verbund: Zählt die Anzahl der Vorlesungen pro Professor. Merke: COUNT(a.PersNr) oder COUNT(*) wären falsch (Nullwerte sollen nicht mitgezählt werden).

Frage: Wer ist Leiter der Raumfahrtabteilung? -> mitarbeiter,abteilung where -> abteilung.name="raumfahrt" and -> leiter=mitarbeiter.id; 1 row in set (0.01 sec) Frage: Geben Sie alle Abteilungsleiter aus. -> mitarbeiter,abteilung where -> leiter=mitarbeiter.id; Görgens Margit Schwab Anita 3 rows in set (0.00 sec) Frage: Welche Projekte gehören zur Verwaltungsabteilung? mysql> select projekt.bezeichner from -> projekt,abteilung where -> abteilung.name="verwaltung" and -> abteilung.id=projekt.zugeord_abt; bezeichner WebSeiten 1 row in set (0.01 sec) Frage: Wer ist für das Apollo 13 Projekt verantwortlich? mysql> select mitarbeiter.name from -> mitarbeiter,projekt where -> projekt.bezeichner="apollo13" and -> projekt.verantw_mitarb=mitarbeiter.id; name Hurz 1 row in set (0.00 sec) Frage: Wer arbeitet am Challenger Projekt? -> mitarbeiter,arbeitet_an,projekt where -> projekt.bezeichner="challenger" and 2 rows in set (0.00 sec) Frage: Geben Sie alle Projektverantworlichen aus.

-> projekt,mitarbeiter where -> projekt.verantw_mitarb=mitarbeiter.id; Hurz Willy Görgens Margit 3 rows in set (0.00 sec) Frage: Wer arbeitet am Challenger Projekt und ist gleichzeitig Leiter einer Abteilung? -> abteilung,arbeitet_an,mitarbeiter,projekt where -> projekt.bezeichner="challenger" and -> arbeitet_an.mitarbeiter=abteilung.leiter and 1 row in set (0.00 sec) Frage: Wer arbeitet am Apollo 13 Projekt oder am WebSeiten-Projekt? -> mitarbeiter,arbeitet_an,projekt where -> (projekt.bezeichner="apollo13" or projekt.bezeichner="webseiten") and Hurz Willy Schwab Anita 4 rows in set (0.01 sec)