Datenmanagement I SoSe 2006 Aufgabenblatt 4

Ähnliche Dokumente
Übersicht der wichtigsten MySQL-Befehle

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

Oracle 10g Einführung

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

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

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

Datenbanksysteme 2013

Übungsaufgaben mit Lösungen

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Abfragen (Queries, Subqueries)

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

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

Die Anweisung create table

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

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

SQL als Zugriffssprache

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

5.8 Bibliotheken für PostgreSQL

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

Wiederholung VU Datenmodellierung

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

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Übung PL/SQL Trigger Lösungen

ARBEITSBLATT ZUR SQL-BEFEHLEN

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

Lösungen der Übungsaufgaben von Kapitel 10

Labor 3 - Datenbank mit MySQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

Views in SQL. 2 Anlegen und Verwenden von Views 2

A Datendenition in SQL ( Punkte)

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

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

Verbunde (Joins) und mengentheoretische Operationen in SQL

105.3 SQL-Datenverwaltung

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski

DB2 for z/os. Übungen zur Schulung

ACCESS SQL ACCESS SQL

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

Datenbank und Tabelle mit SQL erstellen

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

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

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

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

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

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

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)

Datenbanken. Zusammenfassung. Datenbanksysteme

Bibliografische Informationen digitalisiert durch

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

SQL structured query language

Erstellen einer Datenbank. Datenbankabfragen

Bedingungen über Werte Statische Integrität. CHECK-Klausel

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Relationentheorie grundlegende Elemente

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

SQL: Weitere Funktionen

MySQL: Einfaches Rechnen.

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Beispiel zur referentiellen Integrität

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Entwicklungsumgebung für die Laborübung

DB2 for z/os. Musterlösungen zu den Übungen

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

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Übungsblatt 8- Lösungsvorschlag

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Vergessene (?) SQL- und PL/SQL- Funktionen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Tabellen verknüpfen: Joins

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

SQL und MySQL. Kristian Köhntopp

DB1 Abgabe Umsetzung der Callcenter Datenbank nach SQL von Daniel Häfliger, Dominik Süsstrunk und Reto Brühwiler

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

Übung zu Datenbanken. Musterlösung zur 1. Probeklausur. Dipl.-Inform. Sascha Kriewel

IV. Datenbankmanagement

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Klausur Datenbanksysteme, Lösungen

Unterabfragen (Subqueries)

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Beispiel 1: Filmdatenbank

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Installation MySQL Replikationsserver

Einführung in die Spezialisierungsrichtungen

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

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum: Datenbanken Woche 7: Noch mehr SQL

Datenbank Grundlagen. Performanceuntersuchungen

DB2 SQL, der Systemkatalog & Aktive Datenbanken

VO Datenmodellierung. Katrin Seyr

Es geht also im die SQL Data Manipulation Language.

Kapitel 3: Datenbanksysteme

SQL-Anweisungen. SELECT (SQL Data Query Language)

Datenbanksysteme 1 Herbst-/Wintersemester Oktober 2014

Transkript:

Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html. 1. Welche Cocktails gibt es in der Datenbank? SELECT cname FROM cocktail 2. Welche Lokale haben die Postleitzahlen 39108? SELECT lname FROM lokal WHERE plz=39108 3. Gib alle Postleitzahlen aus (ohne Duplikate). SELECT DISTINCT plz FROM lokal 4. Welche Zutat hat einen Alkoholgehalt, der größer 30 ist? SELECT zname FROM zutat WHERE alkoholgehalt > 30 5. Verbund/Join: Wählen Sie dazu eine beliebige Aufgabe aus dem Fundus aus und ersetzen die Verknüpfungsklausel aus der Where-Bedingung durch einen Join in der from-anweisung. Hier wird Aufgabe 13 (19) gewählt. SELECT lname FROM lokal NATURAL JOIN cocktail_lokal WHERE cocktail_lokal.cid IN ( 8, 11 ) oder SELECT lname FROM lokal JOIN cocktail_lokal USING ( lid ) WHERE cocktail_lokal.cid IN ( 8, 11 ) 1

6. In einem Trinkspiel soll jeder gegen jeden antreten. Geben Sie die zugehörige Liste der Spielpaare (Name, Name) aus. SELECT p1.name, p2.name FROM person p1, person p2 WHERE p1.pid < p2.pid 7. Geben Sie die Namen der Gläser und Cocktails in einer einspaltigen Liste/Tabelle aus. SELECT cname FROM cocktail UNION ALL SELECT gname FROM glas 8. Für welche Cocktails gibt es noch kein Rezept in der Datenbank(welche Cocktails werden nicht in zutatcocktail erwähnt)? SELECT cname FROM cocktail LEFT JOIN zutat_cocktail USING (cid) WHERE zutat_cocktail.cid IS NULL 9. In welchen Lokalen wird kein Knieweich serviert? SELECT DISTINCT lname FROM lokal NATURAL JOIN cocktail_lokal WHERE lid NOT IN ( SELECT lid FROM lokal NATURAL JOIN cocktail_lokal NATURAL JOIN cocktail WHERE cocktail.cname = "Knieweich" ) 10. Fügen Sie in Tabelle cocktail einen neuen Cocktail Lila Kuh ein. Der Cocktail ist alkoholisch, wird in einem Schwenker serviert und hat die ID 18. INSERT INTO cocktail VALUES ( 18, Lila Kuh, y, 2 ) 11. Der Cocktail Lila Kuh heisst eigentlich Blaue Kuh. Korrigieren Sie diesen Fehler. UPDATE cocktail SET cname = Blaue Kuh WHERE cid =18 12. Löschen Sie das Glas Bierkrug. 2

DELETE FROM glas WHERE gname = Bierkrug 13. Welche Lokale bieten die Cocktails mit der ID 8 oder ID 11 an? SELECT DISTINCT lname FROM lokal, cocktail_lokal WHERE cocktail_lokal.cid IN ( 8, 11 ) AND lokal.lid = cocktail_lokal.lid 14. Welcher Cocktail ist alkoholisch und wird im Cocktailglas serviert? SELECT cname FROM cocktail, glas WHERE cocktail.alkoholisch = y AND glas.gname = Cocktailglas AND cocktail.gid = glas.gid 15. Welche Gläser werden nie benutzt? SELECT gname FROM glas LEFT JOIN cocktail USING ( gid ) WHERE cocktail.gid IS NULL 16. Über welche Cocktails wird eine Unterhaltung geführt? SELECT DISTINCT cname FROM cocktail, cocktail_person WHERE cocktail.cid = cocktail_person.cid 17. Welche Zutaten haben einen Alkoholgehalt zwischen 0 und 50? SELECT zname FROM zutat WHERE alkoholgehalt BETWEEN 0 AND 50 18. Welche Personennamen beginnen mit S? SELECT name FROM person WHERE name LIKE S% 19. Gibt es ein Lokal, dass keinen Cocktail serviert? SELECT if( count( * ) >0, ja, nein ) lname FROM lokal LEFT JOIN cocktail_lokal USING ( lid ) WHERE cocktail_lokal.lid IS NULL 3

20. Was ist der mittlere Alkoholgehalt? (Ohne avrg-funktion). Geben Sie das Ergebnis in Promille aus. SELECT sum( alkoholgehalt ) / ( SELECT count( * ) FROM zutat ) FROM zutat 21. Was ist der mittlere Alkoholgehalt der Zutaten? SELECT avg(alkoholgehalt)/100 FROM zutat 22. Wie viele Zutaten gibt es? SELECT count(*) FROM zutat 23. Ein Cocktail besteht aus mehreren Zutaten. Die Anzahl der Einheiten jeder Zutat pro Cocktail stehen in der Tabelle zutatcocktail. Gesucht sind die Summe der Einheiten der einzelnen Cocktails. SELECT cid, sum( menge ) FROM zutat_cocktail GROUP BY cid 24. Gesucht sind die Summe der Einheiten der einzelnen Cocktails die Alkohol enthalten. SELECT cocktail.cid, sum( menge ) FROM zutat_cocktail, cocktail where cocktail.alkoholisch= y and cocktail.cid=zutat_cocktail.cid GROUP BY cid 25. Legen Sie eine Sicht CocktailAlkoholgehalt mit den Attributen CID und alkoholgehalt an. geht in MySQL 5.0 noch nicht 26. Erstellen Sie eine Sicht für Cocktails die möglichts viele Daten (auch aus anderen Tabellen) über den jeweiligen Cocktail enthalten. CREATE VIEW test.v AS SELECT cid, alkoholisch FROM cocktail; SELECT * FROM test.v 27. Vergeben Sie an einen beliebigen Nutzer beliebige Tabellenrechte, einschließlich der Möglichkeit bei Ihnen zu löschen. Im Beispiel: Nutzer mit allen Rechten für alle Tabellen der Datenbank buchladen, kein GRANT. 4

GRANT ALL ON buchladen.* TO nutzer @ localhost IDENTIFIED BY nutzer 28. Entziehen Sie dem Nutzer das Recht zum Löschen wieder. REVOKE DELETE ON buchladen. * FROM nutzer @ localhost 29. Legen Sie eine Tabelle Updatewatcher an mit den Attributen (tabellename char(20), Anzahl number) und machen Sie ein Insert mit values( cocktail, 0). CREATE TABLE Updatewatcher ( tabellenname VARCHAR( 20 ) NOT NULL, Anzahl INT UNSIGNED NOT NULL) INSERT INTO Updatewatcher VALUES ( cocktail, 0 ) 30. Erzeugen Sie einen Trigger der bei jedem Update auf der Tabelle cocktail ein entsprechendes Update auf der Tabelle updatewatcher ausführt. Also das Attribut Anzahl beim Attribut tabellennamen= cocktail um 1 hochsetzt. CREATE TRIGGER trname AFTER UPDATE ON cocktail FOR EACH ROW BEGIN UPDATE Anzahl SET Anzahl+1 WHERE tabellenname = cocktail Zum Thema Trigger: http://www.onlamp.com/pub/a/onlamp/2005/02/03/triggers.html 5