MySQL-Abfragen mit SELECT ausführen
Falls über diesem Text keine PDF-Präsentation zu sehen ist, wurde diese von Ihrem Browser direkt runtergeladen (wenn Sie z.B. mit Safari@Mac surfen). Sie könnnen zum Download auch hier klicken: Direktdownload PDF-Präsentation
Datenbankabfragen werden mit SELECT ausgeführt.
Alle Datensätze anzeigen
zeigt alle Datensätze der Tabelle tabellenname an.
Einzelne Felder aller Datensätze anzeigen
zeigt alle Felder kunde_name aller Datensätze der Tabelle tabellenname an.
zeigt alle Felder kunde_name und kunde_vorname aller Datensätze der Tabelle tabellenname an.
Einschränkungen mit WHERE
Schränkt die Ausgabe auf alle Kunden aus Hamburg ein. Groß- und Kleinschreibung ist hier nicht relevant (Hamburg, hamburg).
Platzhalter mit LIKE %
findet die Orte “Ostfreiburg”, “Freiburg West” und “Freiburg-Süd”. Die Prozentzeichen sind Platzhalter für eine beliebige (oder keine) Zeichenfolge.
Verknüpfung von Abfragen mit OR und AND
MySQL-CodeSELECT * FROM tabellenname WHERE kunde_ort=freiburg' AND kunde_name='müller' SELECT * FROM tabellenname WHERE kunde_name='mayer' OR kunde_name='maier' OR kunde_name='meyer' OR kunde_name='meier'
Ausgabe sortieren mit ORDER BY
sortiert nach Kunde-ID aufsteigend (bei Text: alphabetisch aufsteigend).
sortiert nach Ort und dann nach Name (d.h. innerhalb eines Ortes nach Name, alphabetisch aufsteigend).
Um nicht aufsteigend, sondern absteigend zu sortieren, hängt man ein DESC an:
Übungen
Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).
Die aktuelle Übung können Sie hier als txt-File herunterladen.
***** Übungen: MySQL - SELECT *****
MySQL05_1: Übungen zu SELECT ("Filme")
Benutzen Sie für diese Übung die Tabelle unter der Aufgabenstellung
1. Lassen Sie sich mit SELECT alle Datensätze Ihrer DVD-Sammlung ausgeben.
2. Erstellen Sie eine Anweisung, die alle Filmtitel und die jeweils zugehörige Nummer ausgibt.
3. Erstellen Sie eine Anweisung, die alle Filmtitel und den jeweils zugehörigen Regisseur ausgibt.
4. Erstellen Sie eine Liste mit allen Filmen von Quentin Tarantino.
5. Erstellen Sie eine Liste mit allen Filmen von Steven Spielberg.
6. Erstellen Sie eine Liste aller Filme, in denen der Regisseur den Vornamen "Steven" hat.
7. Erstellen Sie eine Liste mit allen Filmen, die länger als 2 Stunden sind.
8. Erstellen Sie eine Liste mit allen Filmen, die von Tarantino oder von Spielberg gedreht wurden.
9. Suchen Sie alle Filme heraus, die von Tarantino gedreht wurden und kürzer als 90 Minuten sind.
10. Sie erinnern sich an einen Film, in dessen Titel "Sibirien" vorkam. Suchen Sie ihn.
11. Lassen Sie sich alle Teile von "Das große Rennen" ausgeben.
12. Lassen Sie sich eine Liste aller Filme ausgeben, sortiert nach Regisseur.
13. Lassen Sie sich eine Liste aller Filme ausgeben, sortiert nach Regisseur, dann nach Filmtitel.
14. Lassen Sie sich eine Liste aller Filme von Tarantino ausgeben, die längsten zuerst.
Tabelle (mit Copy-Paste in phpmyadmin anlegen):
MySQL-Code-- -- Tabellenstruktur für Tabelle dvd_sammlung -- CREATE TABLE dvd_sammlung ( id int(11) NOT NULL auto_increment, film varchar(255) NOT NULL, nummer int(11) NOT NULL, laenge_minuten int(11) NOT NULL, regisseur varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY nummer (nummer) ); -- -- Daten für Tabelle dvd_sammlung -- INSERT INTO dvd_sammlung VALUES(1, 'Meine Großmutter lacht nie', 1, 119, 'Quentin Tarantino'); INSERT INTO dvd_sammlung VALUES(2, 'Angst', 2, 92, 'Steven Spielberg'); INSERT INTO dvd_sammlung VALUES(3, 'Wenn ich nur könnte', 3, 89, 'Quentin Tarantino'); INSERT INTO dvd_sammlung VALUES(4, 'Men and Mice', 4, 88, 'Cohen'); INSERT INTO dvd_sammlung VALUES(6, 'Grün ist die Farbe der Liebe', 5, 201, 'Quentin Tarantino'); INSERT INTO dvd_sammlung VALUES(7, 'Frühstück in Sibirien', 6, 72, 'Steven Spielberg'); INSERT INTO dvd_sammlung VALUES(8, 'Das große Rennen', 8, 83, 'Cohen'); INSERT INTO dvd_sammlung VALUES(9, 'Das große Rennen, Teil 2', 9, 85, 'Cohen'); INSERT INTO dvd_sammlung VALUES(10, 'Adlatus', 7, 131, 'Quentin Tarantino'); INSERT INTO dvd_sammlung VALUES(11, 'Angriff auf Rom', 10, 138, 'Steven Burghofer');
MySQL05_2: Übungen zu SELECT, UPDATE, INSERT ("Lagerverwaltung")
Benutzen Sie für diese Übung die Tabelle unter den Aufgaben.
*** INSERT ***
A) Fügen Sie einen Datensatz mit folgenden Daten ein: Sonnenbrille, Regal 3, Einkaufspreis 3.14, Verkaufspreis 6.49, Anzahl 100, Lieferant 23.
B) Fügen Sie einen Datensatz mit folgenden Daten ein: Gletscherbrille, Regal 8, Einkaufspreis 12.16, Verkaufspreis 16.99, Anzahl 20, Lieferant 23.
C) Fügen Sie einen Datensatz mit folgenden Daten ein: Lesebrille, Regal 8, Einkaufspreis 21.46, Verkaufspreis 32.99, Anzahl 25, Lieferant 23.
D) Fügen Sie einen Datensatz mit folgenden Daten ein (Langform verwenden!): Fußmatte, Anzahl 18.
E) Fügen Sie einen Datensatz mit folgenden Daten ein (Langform verwenden!): Rutschschutz für Badewanne, Anzahl 20.
F) Fügen Sie einen Datensatz mit folgenden Daten ein (Langform verwenden!): Seifenhalter, Anzahl 30.
*** UPDATE ***
A) Vom Hut "English Lord" wurden 3 Stück verkauft. Die neue Anzahl beträgt 21.
B) Vom Regenschirm "Elephant" wurden 2 Stück verkauft. Die neue Anzahl beträgt 11.
C) Vom Snowboard "Highspeed" wurden 2 Stück verkauft. Die neue Anzahl beträgt 7.
D) Alle Artikel aus Regal Nummer 17 werden ab sofort in Regal 16 aufbewahrt.
E) Alle Artikel, deren Verkaufspreis mehr als 80 Euro beträgt, kommen ins Regal Nummer 17.
F) Alle Artikel, deren Verkaufspreis weniger als 20 Euro beträgt, kommen ins Regal Nummer 14.
*** SELECT ***
8a) Fügen Sie einen neuen Datensatz in die Tabelle "lagerbestand" ein mit folgendem Inhalt: Sonnenbrille, Einkaufspreis = 16,45, Verkaufspreis = 25,99, Anzahl = 100, Lieferant Nr. 19
8b) Fügen Sie einen neuen ein mit folgendem Inhalt: Mütze, lieferant_id 12
8c) Setzen Sie die Anzahl der Jacken auf 100.
8d) Setzen Sie die Anzahl der Perücken auf 8.
8e) Die Regenschirme liegen in Regal Nummer 16.
8f) Ein Hut wurde verkauft; ändern Sie die Anzahl entsprechend.
8g) Zeigen Sie alle Artikel an, die in Regal Nummer 15 liegen.
8f) Schnäppchenalarm! Zeigen Sie alle Artikel an, deren Verkaufspreis unter 80 Euro liegt.
8g) Zeigen Sie alle Artikel an, die in Regal 15 liegen (nach Name aufsteigend sortiert).
8f) Zeigen Sie den Namen aller Artikel an, deren Einkaufspreis mehr als 50 Euro beträgt (nach Einkaufspreis absteigend sortieren).
Tabelle (mit Copy-Paste in phpmyadmin anlegen):
MySQL-Code-- phpMyAdmin SQL Dump -- version 3.2.5 -- http://www.phpmyadmin.net -- -- Host: localhost -- Erstellungszeit: 02. Dezember 2010 um 09:59 -- Server Version: 5.1.44 -- PHP-Version: 5.3.2 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Datenbank: est -- -- -------------------------------------------------------- -- -- Tabellenstruktur für Tabelle lagerbestand -- CREATE TABLE lagerbestand ( id int(11) NOT NULL AUTO_INCREMENT, artikelname varchar(255) NOT NULL, regal_nr int(11) DEFAULT NULL, einkaufspreis float DEFAULT NULL, verkaufspreis float DEFAULT NULL, anzahl int(11) NOT NULL, lieferant_id int(11) DEFAULT NULL, PRIMARY KEY (id) ); -- -- Daten für Tabelle lagerbestand -- INSERT INTO lagerbestand VALUES(1, 'Hut "English Lord"', 13, 26.41, 39.99, 24, 8); INSERT INTO lagerbestand VALUES(2, 'Regenschirm "Elephant"', 2, 29.12, 45.99, 13, 12); INSERT INTO lagerbestand VALUES(3, 'Regenschirm "Alonso"', 2, 14.58, 19.99, 17, 12); INSERT INTO lagerbestand VALUES(4, 'Jacke "Outdoor"', 5, 58.17, 84.95, 4, 2); INSERT INTO lagerbestand VALUES(5, 'Zelt', 19, 142.25, 199.99, 2, 7); INSERT INTO lagerbestand VALUES(6, 'Wanderschuhe', 5, 32.56, 69.99, 4, 9); INSERT INTO lagerbestand VALUES(7, 'Trekkingschuhe', 5, 31.22, 45.99, 1, 9); INSERT INTO lagerbestand VALUES(8, 'Regenschirm "Kid"', 2, 8.21, 12.99, 15, 3); INSERT INTO lagerbestand VALUES(9, 'Handschuhe "Leather Master"', 6, 19.23, 28.99, 26, 3); INSERT INTO lagerbestand VALUES(10, 'Snowboard "Highspeed"', 16, 48.67, 65.99, 9, 2); INSERT INTO lagerbestand VALUES(11, 'Snowboard "Lowrider"', 17, 35.24, 49.99, 1, 2);
