MySql

aus ZUM-Wiki, dem Wiki für Lehr- und Lerninhalte auf ZUM.de
Wechseln zu: Navigation, Suche
Kurzinfo

Datenbankabfragen mit MySql

Mathematik-digital Pfeil-3d.png
Lernpfad

Wie kann ich Daten aus einer oder mehrere Tabellen abfragen? Mit dieser Frage beschäftigt sich nun die vorliegende Unterrichtssequenz. Einfach mySql-Abfragen hast du bereits schon kennengelernt. Sie werden kurz zu Beginn der Sequenz wiederholt.

1. Wiederholung der bisher gelernten Zusatzangaben bei Abfragen (5.6.2013)

Bitte beachte:


  1. Bitte lies Dir die Aufgaben 1 bis 3 vor der Bearbeitung gründlich durch!
  2. Du hast für alle 3 Aufgaben bis 10:50 Uhr Zeit! Halte Dich ran, denn um 10:50 Uhr erfolgt eine kurze Besprechung der Aufgaben.
  3. Solltest du bereits früher mit alle 3 Aufgaben fertig werden, dann starte die Datenbank unter /server/phpmyadmin und beginne mit Aufgabe 4.
Verwende für die folgenden Übungen immer die Tabelle dvd_sammlung mit dem folgenden relationalen Datenbankschema:

dvd_sammlung {id:int (primarey key, not null, autoincrement); film:varchar(255)(not null); nummer:int (not null); laenge_minuten:int (not null); regisseur:varchar (255) (not null)}

Stift.gif   Aufgabe 1

Projektion und Selektion


Lies Dir die Erklärung zu den Begriffen Selektion und Projektion auf dem Übersichtsblatt Einfache Abfrage in MySql der letzten Stunde noch einmal gründlich durch! Beantworte deinem Nachbarn mündlich folgende Fragen:

1. Was versteht man unter Projektion? Was versteht man unter Selektion?

2. Gib eine reine Projektionsabfrage und eine Selektionsabfrage in Mysql an!

select film, laenge_minuten from dvd_sammlung (Projektion)

select * from dvd_sammlung where laenge_minuten>120 (Selektion

3. Gib eine Abfrage in MySql an, die sowohl eine Projektion, als auch eine Selektion beinhaltet!

select film, laenge_minuten from dvd_sammlung where laenge_minuten>120 (Projektion und Selektion)

4. Begründe Deinem Nachbarn, ob es sich bei der Abfrage

select * from dvd_sammlung
where regisseur ='cohen'
um eine reine Selektionsabfrage oder eine Kombination aus Selektion und Projektion handelt!
Stift.gif   Aufgabe 2

Begriffszuordnung


Lies Dir die Zusammenstellung der bisher besprochenen Zusatzangaben auf dem Übersichtsblatt Einfache Abfrage in MySql der letzten Stunde gründlich durch! Ordne dann den geforderten Daten die jeweilige mySql-Abfrage zu!

Diese Daten sollen ausgegeben werden...
Abfrage in mySql
Lass Dir alle Datensätze der Tabelle DVD-Sammlung ausgeben!
select * from dvd_sammlung
Erstelle eine Liste mit (nur) den Titeln aller Filmen von Cohen.
select film from dvd_sammlung
where regisseur = ‚Cohen’
Erstelle eine Liste aller Filmtitel, in deren Titel das Wort "Farbe" vorkommt.
select film from dvd_sammlung
where film LIKE ‘%farbe%’
Erstelle eine Liste aller Filmtitel, die kürzer als 90 Minuten sind.
select film from dvd_sammlung
where laenge_minuten<90
Erstelle eine Liste mit allen Filmen, die von Cohen oder von Tarantino gedreht wurden.
select * from dvd_sammlung
where regisseur LIKE '%cohen%' OR regisseur LIKE '%tarantino%'
Lass Dir eine Liste aller Regisseure, Filmtitel und Filmlänge ausgeben, die von Tarantino gedreht wurden. Die Liste soll erst nach Filmtitel absteigend sortiert sein.
select regisseur, film, laenge_minuten from dvd_sammlung
where regisseur = 'Tarantino'
ORDER BY film desc
Lass Dir eine Liste aller Filme ausgeben, sortiert nach Filmtitel, dann nach Filmlänge (aufsteigend).
select * from dvd_sammlung
ORDER BY film, laenge_minuten
Lass Dir eine Liste aller Filme ausgeben, die von Tarantino gedreht wurden und kürzer als 90 Minuten sind. Die Liste soll erst nach Filmtitel, dann nach Filmlänge (aufsteigend) sortiert sein.
select * from dvd_sammlung
where regisseur = 'Tarantino' and laenge_minuten<90
ORDER BY film, laenge_minuten

2. Die Operatoren BETWEEN, IN, DISTINCT und AS und die LIMIT-Klausel

Stift.gif   Aufgabe 3

Abfragen mit den Operatoren BETWEEN, IN, DISTINCT und AS und die LIMIT-Klausel


Lies Dir die Zusammenstellung Operatoren BETWEEN, IN, DISTINCT und AS und die LIMIT-Klausel auf dem Übersichtsblatt Einfache Abfrage in MySql gründlich durch! Ordne die entsprechende MySql-Abfrage zu! Präge Dir den Aufbau von Abfragen mit diesen Operatoren ein.

Diese Daten sollen ausgegeben werden...
Abfrage in mySql
Lass Dir die Filmtitel und die Filmlänge der Tabelle DVD-Sammlung ausgeben, deren Spieldauer zwischen 60 und 120 Minuten liegt!
select film, laenge_minuten from dvd_sammlung
where laenge_minuten BETWEEN 60 AND 120
Erstelle eine Liste aller Filme von Cohen, Quentin Tarantino und Steven Spielberg (mit Hilfe des IN-Operators!).
select * from dvd_sammlung
where regisseur IN \left('Cohen', 'Quentin Tarantino', 'Steven Spielberg'\right)
Lass Dir eine Liste aller Regisseure ausgeben (ohne Doppelungen!)
select DISTINCT regisseur from dvd_sammlung
Erstelle eine Tabelle mit Filmtitel (mit der Spaltenüberschrift "Spielfilme") und Regisseur. Es sollen nur die Filme ausgeben, die länger als 90 Minuten sind.
select film AS 'Spielfilme', regisseur from dvd_sammlung
where laenge_minuten>90
Erstelle eine Liste aller Filme die nur den 3. bis einschl. 5. Datensatz der Tabelle beinhaltet
select * from dvd_sammlung
LIMIT 2, 3
Erstelle eine Liste aller Filmtitel und Filmlängen (Spaltentitel soll "Dauer in Stunden" sein) anzeigen. Die Filmlänge soll in Stunden (Berechnung!) angezeigt werden.
select film, laenge_minuten/60 AS 'Dauer in Stunden' from dvd_sammlung


Stift.gif   Aufgabe 4

Abfragen mit den Operatoren und der Limit-Klausel in MySql


Gib jeweils die mySql-Abfragen in Mysql (unter server/phpmyadmin) ein und notiere dann die Abfrage auf dem Arbeitsplatt "2. Übung zu MySql-Abfragen"!

Du kannst das Arbeitsblatt entweder am Computer (speichern unter Eigene Dateien!) oder in Papierform ausfüllen. Du findest es im Austausch unter Informatik mit dem Titel "zweiteMySql-Abfragen_Übung.doc" oder auf dem Lehrerpult!

Hausaufgabe bis 06.06.2013


  1. Zusammenstellung der Begriffe noch einmal lernen!
  2. Falls das Arbeitsblatt von Aufgabe 4 nicht fertig bearbeitet wurde, bitte dieses bis zur nächsten Stunde fertig ausfüllen!
  3. Lesen S.102-103 bis vor dem Abschnitt "Nicht alle Gruppierungen sind verdächtig"


Stoffübersicht für die Kurzarbeit am 19.06.2013


Teil I: Vom Modell zu MySQL

  • Umwandlung eines Klassendiagramms in ein relationales Datenbankschema einschl. Primärschlüssel, Fremdschlüssel, Datentypen und besondere Eigenschaften (Kardinalitäten!)

Teil II: MySQL-Abfragen

  • einfach MySql-Abfragen select … from … where mit Vergleichsoperatoren, logischen Operatoren, like, distinct, order by, desc bzw. asc, IN, between (Buch S. 81-88)
  • Selektion und Projektion (S. 86)
  • Einfache Berechnungen und AS
  • Aggregatfunktionen (COUNT, AVG, MAX, MIN, SUM) und Gruppierung (GROUP BY) mit und ohne Bedingung (HAVING) (Buch S. 102-106)
  • Abfragen über mehrere Tabellen


Diese Sequenz wurde erstellt von:


Petra Kuhn-Bader