Sie sind auf Seite 1von 39

DATENBANKVERWALTUNG

1.4 Gartenarbeit

1.4.1 Entitäts-/Beziehungsmodell

1.4.2 MySQL-Datenbank
DROP DATABASE IF EXISTS gardening;
CREATE DATABASE gardening CHARACTER SET utf8mb4;
Gartenarbeit verwenden;

CREATE TABLE office (


office_code VARCHAR(10) NOT NULL,
Stadt VARCHAR(30) NOT NULL,
pais VARCHAR(50) NOT NULL,
region VARCHAR(50) DEFAULT NULL,
zip_code VARCHAR(10) NOT NULL,
telefono VARCHAR(20) NOT NULL,
address_line1 VARCHAR(50) NOT NULL,
address_line2 VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (büro_code)
);

CREATE TABLE employee (


mitarbeiter_code INTEGER NOT NULL,
name VARCHAR(50) NOT NULL,
Nachname1 VARCHAR(50) NOT NULL,
surname2 VARCHAR(50) DEFAULT NULL,
extension VARCHAR(10) NOT NULL,
email VARCHAR(100) NOT NULL,
office_code VARCHAR(10) NOT NULL,
boss_code INTEGER DEFAULT NULL,
set VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (mitarbeiter_code),
FOREIGN KEY (büro_code) REFERENCES büro (büro_code),
FOREIGN KEY (codigo_jefe) REFERENCES employee (codigo_empleado)
);

CREATE TABLE product_range (


gamma VARCHAR(50) NOT NULL,
text_description TEXT,
description_html TEXT,
image VARCHAR(256),
PRIMARY KEY (Bereich)
);

CREATE TABLE kunde (


kunden_code INTEGER NOT NULL,
kunde_name VARCHAR(50) NOT NULL,
kontakt_name VARCHAR(30) DEFAULT NULL,
kontakt_nachname VARCHAR(30) DEFAULT NULL,
telefono VARCHAR(15) NOT NULL,
fax VARCHAR(15) NOT NULL,
address_line1 VARCHAR(50) NOT NULL,
address_line2 VARCHAR(50) DEFAULT NULL,
Stadt VARCHAR(50) NOT NULL,
region VARCHAR(50) DEFAULT NULL,
pais VARCHAR(50) DEFAULT NULL,
postcode_code VARCHAR(10) DEFAULT NULL,
sales_rep_employee_code INTEGER DEFAULT NULL,
credit_limit NUMERIC(15,2) DEFAULT NULL,
PRIMARY KEY (kunden_code),
FOREIGN KEY (mitarbeiter_code_verkauf_rep_rep_code) REFERENCES mitarbeiter
(mitarbeiter_code)
);

CREATE TABLE order (


auftrag_code INTEGER NOT NULL,
order_date date NOT NULL,
expected_date Datum NOT NULL,
delivery_date date DEFAULT NULL,
status VARCHAR(15) NOT NULL,
kommentiert TEXT,
kunden_code INTEGER NOT NULL,
PRIMARY KEY (auftrag_code),
FOREIGN KEY (kunden_code) REFERENCES kunde (kunden_code)
);

CREATE TABLE product (


product_code VARCHAR(15) NOT NULL,
name VARCHAR(70) NOT NULL,
gamma VARCHAR(50) NOT NULL,
dimensions VARCHAR(25) NULL,
Lieferant VARCHAR(50) DEFAULT NULL,
Beschreibungstext NULL,
menge_im_lager SMALLINT NOT NULL,
sale_price NUMERIC(15,2) NOT NULL,
anbieter_preis NUMERIC(15,2) DEFAULT NULL,
PRIMARY KEY (produkt_code),
FOREIGN KEY (Bereich) REFERENCES Bereich_Produkt (Bereich)
);

CREATE TABLE order_detail (


auftrag_code INTEGER NOT NULL,
product_code VARCHAR(15) NOT NULL,
Menge INTEGER NOT NULL,
Stückpreis NUMERIC(15,2) NOT NULL,
zeilen_nummer SMALLINT NOT NULL,
PRIMARY KEY (auftrag_code, produkt_code),
FOREIGN KEY (order_code) REFERENCES order (order_code),
FOREIGN KEY (produkt_code) REFERENCES produkt (produkt_code)
);

CREATE TABLE payment (


kunden_code INTEGER NOT NULL,
payment_form VARCHAR(40) NOT NULL,
transaction_id VARCHAR(50) NOT NULL,
date_payment Datum NOT NULL,
gesamt NUMERIC(15,2) NOT NULL,
PRIMARY KEY (kunden_code, transaktions_id),
FOREIGN KEY (kunden_code) REFERENCES kunde (kunden_code)
);

1.4.3 Daten
https://gist.github.com/josejuansanchez/c408725e848afd64dd9a20ab37fba8c9https://
gist.github.com/josejuansanchez/c408725e848afd64dd9a20ab37fba8c9https://
gist.github.com/josejuansanchez/c408725e848afd64dd9a20ab37fba8c9https://
gist.github.com/josejuansanchez/c408725e848afd64dd9a20ab37fba8c9Rufen Sie das
SQL-Skript für die Erstellung der Datenbank und das Einfügen von
Datenauf:jardineria.sql.

1.4.4 Abfragen zu einer Tabelle


1. Gibt eine Liste mit dem Bürocode und der Stadt zurück, in der es Büros gibt.
2.

Gibt eine Liste mit der Stadt und der Telefonnummer der Büros in Spanien zurück.

3. Gibt eine Liste mit dem Vornamen, dem Nachnamen und der E-Mail-Adresse
der Mitarbeiter zurück, deren Chef einen Chef-Code gleich 7 hat.
4. Gibt die Bezeichnung der Position, den Vor- und Nachnamen sowie die E-Mail-
Adresse des Unternehmensleiters zurück.

5. Gibt eine Liste mit dem Vor- und Nachnamen und der Position der Mitarbeiter
zurück, die keine Handelsvertreter sind.
6. Gibt eine Liste mit den Namen aller spanischen Kunden zurück.

7. Gibt eine Liste der verschiedenen Zustände zurück, die eine Bestellung
durchlaufen kann.

8.
Gibt eine Liste mit dem Kundencode der Kunden zurück, die im Jahr 2008 eine Zahlung geleistet h
9.
Liefert eine Liste mit Auftragscode, Kundencode, erwartetem Datum und Lieferdatum für Aufträge

10.
Liefert eine Liste mit Auftragscode, Kundencode, erwartetem Datum und Lieferdatum für Aufträge
11. Gibt eine Liste aller Aufträge zurück, die2009abgelehnt wurden.

12. Gibt eine Liste aller Bestellungen zurück, die im Monat Januar eines beliebigen
Jahresgeliefert wurden.
13. Liefert eine Liste aller im Jahr2008 überPaypal getätigten Zahlungen. Ordnen
Sie das Ergebnis vom höchsten zum niedrigsten Wert.

14. Liefert eine Liste aller in derZahlungstabelle aufgeführten Zahlungsarten. Bitte


beachten Sie, dass keine wiederholten Zahlungsformen erscheinen sollten.
15. Gibt eine Liste mit allen Produkten zurück, die zum SortimentZierpflanzen
gehören und von denen mehr als100 Stück auf Lager sind. Die Liste ist nach
dem Verkaufspreis zu sortieren, wobei die teuersten Artikel zuerst aufgeführt
werden.

16. Liefert eine Liste aller Kunden, die aus der StadtMadrid stammen und deren
Handelsvertreter den Mitarbeitercode11 oder30 hat.
1.4.5 Mehrtabellenabfragen (interne Zusammensetzung)
Lösen Sie alle Abfragen mit derSQL1- undSQL2-Syntax auf. Abfragen mitSQL2-Syntax
müssen mitINNER JOIN undNATURAL JOIN aufgelöst werden.

1. Erstellen Sie eine Liste mit den Namen der einzelnen Kunden und dem Vor- und
Nachnamen des jeweiligen Vertriebsmitarbeiters.

select kunde.kunde.vor_name, mitarbeiter.vor_name,mitarbeiter.nach_name1

from kunde join mitarbeiter on


mitarbeiter.mitarbeiter_code=kunde.mitarbeiter_code_verkauf_rep_code

2. Zeigt die Namen der Kunden, die Zahlungen geleistet haben, zusammen mit den
Namen ihrer Handelsvertreter an.
3. Zeigt die Namen der Kunden, diekeine Zahlungen geleistet haben, zusammen
mit den Namen ihrer Handelsvertreter an.

4. Gibt die Namen der Kunden, die Zahlungen geleistet haben, und die Namen
ihrer Vertreter zusammen mit der Stadt des Büros, zu dem der Vertreter gehört,
zurück.
5. Gibt die Namen der Kunden, diekeine Zahlungen geleistet haben, und die
Namen ihrer Vertreter zusammen mit dem Ort der Geschäftsstelle, zu der der
Vertreter gehört, an.

6. Geben Sie die Adresse der Büros an, die Kunden inFuenlabrada haben.
Gibt den Namen des Kunden und den Namen seines Vertreters zusammen mit
der Stadt des Büros an, zu dem der Vertreter gehört.

8. Gibt eine Liste mit den Namen der Mitarbeiter und ihrer Vorgesetzten zurück.
9. Gibt die Namen der Kunden zurück, an die eine Bestellung nicht rechtzeitig
geliefert wurde.
10. Gibt eine Liste der verschiedenen Produktreihen zurück, die von jedem Kunden
gekauft wurden.
1.4.6 Mehrtabellenabfragen (externe Zusammensetzung)
Lösen Sie alle Abfragen mit den KlauselnLEFT JOIN,RIGHT JOIN,NATURAL LEFT JOIN
und NATURALRIGHT JOIN auf.

1. Gibt eine Liste zurück, in der nur Kunden aufgeführt sind, die noch keine
Zahlung geleistet haben.
2. Gibt eine Liste zurück, die nur Kunden enthält, die keine Bestellung aufgegeben
haben.

3. Liefert eine Liste mit Kunden, die keine Zahlung geleistet haben, und mit
Kunden, die keine Bestellung aufgegeben haben.
4. Gibt eine Liste zurück, in der nur Mitarbeiter aufgeführt sind, die kein
zugehöriges Büro haben.

5. Geben Sie die Büros zurück, in denenkeiner der Mitarbeiter arbeitet, die für
einen Kunden, der ein Produkt aus demFrutales-Sortiment gekauft hat, als
Handelsvertreter tätig waren.

6. Gibt eine Liste mit Mitarbeitern zurück, die kein zugehöriges Büro haben, und
mit Mitarbeitern, die keinen zugehörigen Kunden haben.
7. Gibt eine Liste von Produkten zurück, die noch nie in einer Bestellung
erschienen sind.

8. Geben Sie die Büros zurück, in denen keiner der Mitarbeiter arbeitet, die als
Handelsvertreter eines Kunden, der ein Produkt aus dem Frutales-Sortiment
gekauft hat, tätig waren.

9. Liefert eine Liste von Kunden, die eine Bestellung aufgegeben, aber noch nicht
bezahlt haben.

10. Gibt eine Liste mit den Daten der Mitarbeiter zurück, die keine zugehörigen
Kunden haben, sowie den Namen des zugehörigen Managers.
1.4.7 Zusammenfassende Abfragen
1. Wie viele Beschäftigte gibt es in dem Unternehmen?

2. Wie viele Kunden hat jedes Land?


3. Wie hoch war die durchschnittliche Zahlung im Jahr 2009?

4. Wie viele Aufträge gibt es in jedem Bundesland? Sortiert das Ergebnis in


absteigender Reihenfolge nach der Anzahl der Bestellungen.

5. Berechnen Sie den Verkaufspreis des teuersten und des billigsten Produkts in
derselben Abfrage.
6. Berechnen Sie die Anzahl der Kunden, die das Unternehmen hat.

7. Wie viele Kunden hat die Stadt Madrid?

8.
Berechnen Sie, wie viele Kunden jede der Städte, die mit M beginnen, hat?
M?
9.
Gibt die Namen der Handelsvertreter und die Anzahl der von ihnen betreuten Kunden an.

10.
Berechnet die Anzahl der Kunden, denen kein Vertriebsmitarbeiter zugewiesen ist.

11.
Berechnet das Datum der ersten und letzten Zahlung eines jeden Kunden. Die Liste muss den Vor-
12. Berechnen Sie die Anzahl der verschiedenen Produkte in jedem der Aufträge.

13. Berechnen Sie die Summe der Gesamtmenge aller Produkte, die in jedem der
Aufträge aufgeführt sind.
14.
Gibt eine Liste der 20 meistverkauften Produkte und die Gesamtzahl der verkauften Einheiten jede

15.

Der Umsatz des Unternehmens im Laufe seiner Geschichte mit Angabe der Steuerbemessungsgrun

bestellen_detail. Die Mehrwertsteuer beträgt 21 % der


Bemessungsgrundlage, und der Gesamtbetrag ergibt sich aus der Summe der
beiden oben genannten Felder.
16.
Die gleichen Informationen wie in der vorhergehenden Frage, aber gruppiert nach Produktcode.

17.
Die gleichen Informationen wie in der vorhergehenden Frage, aber gruppiert nach Produktcode, ge
ODER.
18. Listet den Gesamtumsatz von Produkten mit einem Umsatz von mehr als 3.000
Euro auf. Es werden der Name, die verkauften Einheiten, die Gesamtsumme der
Rechnung und die Gesamtsumme der Rechnung mit Steuer (21 % MwSt.)
angezeigt.

1.4.8 Unterabfragen

1.4.8.1 Mit einfachen Vergleichsoperatoren

1. Gibt den Namen des Kunden mit dem höchsten Kreditlimit zurück.

2. Gibt den Namen des Produkts mit dem höchsten Verkaufspreis zurück.
3.
Gibt den Namen des Produkts zurück, von dem die meisten Einheiten verkauft wurden. (Beachten
order_detail.
Sobald Sie den Produktcode kennen, können Sie den Produktnamen leicht
herausfinden).

4.
Kunden, deren Kreditrahmen größer ist als die von ihnen geleisteten Zahlungen. (Ohne Verwendun
INNER JOIN).

5. Gibt das Produkt mit den meisten Einheiten auf Lager zurück.
6. Geben Sie das Produkt zurück, von dem Sie die wenigsten Einheiten auf Lager
haben.

7. Gibt den Namen, den Vornamen und die E-Mail-Adresse der Mitarbeiter an, die
unter der Verantwortung vonAlberto Soria stehen.

1.4.8.2 Unterabfragen mit ALL und ANY

8. Gibt den Namen des Kunden mit dem höchsten Kreditlimit zurück.
9. Gibt den Namen des Produkts mit dem höchsten Verkaufspreis zurück.

10. Geben Sie das Produkt zurück, von dem Sie die wenigsten Einheiten auf Lager
haben.

1.4.8.3 Unterabfragen mit IN und NOT IN

11. Gibt den Vornamen, den Nachnamen1 und die Berufsbezeichnung von
Mitarbeitern zurück, die keinen Kunden vertreten.
12. Gibt eine Liste zurück, in der nur Kunden aufgeführt sind, die noch keine
Zahlung geleistet haben.

13. Gibt eine Liste zurück, die nur Kunden enthält, die eine Zahlung geleistet haben.

14. Gibt eine Liste von Produkten zurück, die noch nie in einer Bestellung
erschienen sind.
15. Gibt den Vornamen, den Nachnamen, die Position und die Bürotelefonnummer
derjenigen Mitarbeiter an, die keine Handelsvertreter eines Kunden sind.

1.4.8.4 Unterabfragen mit EXISTS und NOT EXISTS

16. Gibt eine Liste zurück, in der nur Kunden aufgeführt sind, die noch keine
Zahlung geleistet haben.
17. Gibt eine Liste zurück, die nur Kunden enthält, die eine Zahlung geleistet haben.
18. Gibt eine Liste von Produkten zurück, die noch nie in einer Bestellung
erschienen sind.

19. Gibt eine Liste der Produkte zurück, die jemals in einer Bestellung erschienen
sind.
1.4.8.5 Korrelierte Unterabfragen

1.4.9 Verschiedene Abfragen


1.
Gibt die Liste der Kunden zurück, mit Angabe des Namens des Kunden und der Anzahl der von ih

2. Liefert eine Liste mit den Namen der Kunden und dem Gesamtbetrag, der von
jedem von ihnen bezahlt wurde. Bitte beachten Sie, dass es Kunden geben kann,
die noch keine Zahlung geleistet haben.
3. Gibt die Namen der Kunden zurück, die im Jahr 2008 Bestellungen aufgegeben
haben, alphabetisch sortiert vom kleinsten bis zum größten Kunden.
4.
Gibt die Kundenliste mit dem Namen des Kunden, dem Vor- und Nachnamen des Vertreters und d

5. Liefert eine Liste mit allen Städten, in denen es Büros gibt, und der Anzahl der
dort Beschäftigten.

Das könnte Ihnen auch gefallen