Viele Universitäten verwenden sie zum Testen mit MySQL und zum Programmieren .
Als nächstes entpacken wir die heruntergeladene Datei und sehen zwei sakila-schema.sql- Dateien mit der Datenbankstruktur und sakila-data.sql mit den Beispieldaten.
Diese Datenbank soll eine Testumgebung bereitstellen, um entweder Software zu entwickeln oder SQL-Abfragen zu testen und so die Möglichkeiten von MySQL nutzen zu können. Sakilas Struktur ist komplex, es hat 1000 Datensätze und mehrere Beziehungen.
Die Sakila- Datenbank enthält auch Beispiele für Ansichten, gespeicherte Prozeduren und Trigger oder Trigger.
Diese Datenbank ist ein Filmverleih, der Filialen und Anbieter haben kann,
Der Prozess setzt voraus, dass zum Ausleihen eines Films zunächst bestätigt werden muss, dass der Film verfügbar oder vorrätig ist. Anschließend muss überprüft werden, ob der Client in der Datenbank vorhanden ist, und der Film oder die DVD muss dem Client zugewiesen werden. Wir müssen auch den Verkauf in die Zahlungstabelle einfügen. Abhängig von den Geschäftsregeln kann es auch erforderlich sein, zu überprüfen, ob der Kunde einen ausstehenden Saldo aufweist.
Um zu überprüfen, ob der Client namentlich existiert, können wir eine einfache Abfrage durchführen:
Wählen Sie als Kunden customer.customer_id, customer.store_id, CONCAT (customer.first_name, '', customer.last_name) aus vom Kunden wo customer.first_name wie 'Carlos%
In diesem Tutorial konzentrieren wir uns auf die kombinierten Abfragen, indem wir einige Beispiele erstellen, die im Detail erklärt werden.
Klausel SQL Inner Join
Eine SQL JOIN-Klausel wird verwendet, um Zeilen aus zwei oder mehr Tabellen basierend auf einem gemeinsamen Feld zu kombinieren.
INNER JOIN gibt alle kombinierten Zeilen der Tabellen zurück, die die Join-Bedingung erfüllen.
Beispiel A
Wir möchten wissen, welche Kunden Filme dafür ausgeliehen haben, wir haben die Tabelle “Kunden” und die Tabelle “Verleih”, also müssen wir wissen, welche Kunden in der Tabelle “Verleih” enthalten sind.
Wählen Sie Miet-ID, Vorname des Kunden, Nachname des Kunden, Miet-Datum, Miet-Datum von der Miete INNER JOIN Kunde ON rental.customer_id = customer.customer_id
Das Ergebnis der Ausführung dieser Klausel ist das Folgende:
In diesem Fall ist es dasselbe, die Abfrage mit einem Where durchzuführen:
Wählen Sie Miet-ID, Vorname des Kunden, Nachname des Kunden, Miet-Datum, Miet-Datum vom Verleih, Kunde Dabei ist rental.customer_id = customer.customer_id
Der Unterschied besteht darin, dass der innere Join bei der Optimierung der SQL-Abfrage etwas schneller sein wird.
Beispiel B
Wir haben zwei Geschäfte oder Filialen, in denen täglich eine Liste überfälliger Mieten erstellt wird, damit die Kunden kontaktiert werden können und aufgefordert werden, den Film zurückzugeben.
Um diese Liste zu erstellen, müssen wir die Leihtabelle nach Filmen durchsuchen, deren Rückgabedatum NULL ohne Datum ist und deren Leihdatum die Zeit oder Anzahl der Tage überschreitet, an denen der Kunde den Film aufbewahren kann. Wenn diese Bedingung erfüllt ist, schuldet der Kunde den Film und der Name des Films muss zusammen mit dem Namen, der Telefonnummer und der E-Mail-Adresse des Kunden in der Liste angezeigt werden. Wir werden auch zeigen, ob der Film bezahlt wurde, an welchem Datum er bezahlt wurde und wie viel bezahlt wurde.
SELECT CONCAT (customer.last_name, ',', customer.first_name) AS customer, address.phone, film.title, customer.email, rental.return_date, payment.payment_date, payment.amount VON der Miete INNER JOIN customer ON rental.customer_id = customer.customer_id INNER JOIN address ON customer.address_id = address.address_id INNER JOIN inventory ON rental.inventory_id = inventory.inventory_id INNER JOIN film ON inventory.film_id = film.film_id INNER JOIN payment ON payment.rental_id = rental.rental_id WO rental.return_date NULL IST UND Mietdatum + INTERVALL film.mietdauer TAG <AKTUELLES_DATUM ()
Beispiel C
Wir wollen herausfinden, wer der Kunde ist, der mehr Filme dafür leiht. Wir schreiben die folgende Klausel
Wählen Sie CONCAT (customer.first_name, '', customer.last_name) als Customer aus und zählen Sie (rental.customer_id) als Total aus der Vermietung Inner Join Kunde on rental.customer_id = customer.customer_id Gruppe von rental.customer_id ***** von total absteigend
Daher können wir mit MySQL viele Tests durchführen, um die Leistung zu testen. In einem anderen Lernprogramm werden wir bei komplexeren Abfragen voranschreiten:
Beispiel C
Wir wollen herausfinden, wer der Kunde ist, der mehr Filme dafür leiht. Wir schreiben die folgende Klausel
Wählen Sie CONCAT (customer.first_name, '', customer.last_name) als Customer aus und zählen Sie (rental.customer_id) als Total aus der Vermietung Inner Join Kunde on rental.customer_id = customer.customer_id Gruppe von rental.customer_id ***** von total absteigend
Daher können wir mit MySQL viele Tests durchführen, um die Leistung zu testen. In einem weiteren Tutorial werden wir komplexere Abfragen bearbeiten.