MySQL łączy z Inner Join

W tym tutorialu użyjemy jednej z przykładowych baz danych, które Mysql udostępnia nam za darmo, nazywa się Sakila, możemy też pobrać inne przykłady z oficjalnej strony Mysql.

Wiele uniwersytetów używa ich do testowania MySQL i programowania.
Następnie rozpakujemy pobrany plik i zobaczymy dwa pliki sakila-schema.sql zawierające strukturę bazy danych i sakila-data.sql A zawierający przykładowe dane.
Celem tej bazy danych jest zapewnienie środowiska testowego do tworzenia oprogramowania lub testowania zapytań sql, a tym samym możliwość wykonywania testów z możliwościami oferowanymi przez MySQL. Struktura Sakili jest złożona, ma 1000 rekordów i wiele relacji.
Baza danych Sakila zawiera również przykłady widoków, procedur składowanych i wyzwalaczy.
Ta baza danych zakłada wypożyczalnię filmów, która może mieć oddziały i sprzedawców,
Proces zakłada, że ​​aby wypożyczyć film, musimy najpierw potwierdzić, że film jest dostępny lub na stanie, a następnie sprawdzić, czy klient istnieje w bazie danych i przyporządkujemy film lub DVD do klienta. Sprzedaż musimy również wstawić do tabeli wypłat. W zależności od reguł biznesowych konieczne może być również sprawdzenie, czy klient ma zaległe saldo.
Aby sprawdzić, czy klient istnieje po nazwie, możemy wykonać proste zapytanie:
 wybierz customer.customer_id, customer.store_id, CONCAT (customer.first_name, '', customer.last_name) jako klienta od klienta, gdzie customer.first_name jak 'Carlos% 
W tym samouczku skupimy się na zapytaniach połączonych, wykonując kilka przykładów, które zostaną szczegółowo wyjaśnione.

Klauzula SQL Inner Join


Klauzula SQL JOIN służy do łączenia wierszy z dwóch lub więcej tabel na podstawie wspólnego pola między nimi.
POŁĄCZENIE WEWNĘTRZNE zwraca wszystkie połączone wiersze z tabel, które spełniają warunek złączenia.

Przykład A


Chcemy wiedzieć, którzy klienci wypożyczyli do tego filmy, mamy tabelę Klient i tabelę Wypożyczalni, dlatego musimy wiedzieć, którzy klienci znajdują się w tabeli Wypożyczalnia.
 wybierz rental.rental_id, customer.first_name, customer.last_name, rental.rental_date, rental.return_date z wypożyczalni INNER JOIN klient WŁĄCZONY rental.customer_id = customer.customer_id 
Skutkiem wykonania tej klauzuli będzie:

W tym przypadku jest to samo, gdy wykonujemy zapytanie za pomocą Where:
 wybierz rental.rental_id, customer.first_name, customer.last_name, rental.rental_date, rental.return_date z wypożyczalni, klient, gdzie rental.customer_id = customer.customer_id 
Różnica polega na tym, że sprzężenie wewnętrzne w optymalizacji zapytania SQL będzie nieco szybsze.

Przykład B


Mamy dwa sklepy lub oddziały, które codziennie generują listę zaległych wypożyczeń, dzięki czemu można skontaktować się z klientami i poprosić o zwrot filmu.
Aby wygenerować tę listę, musimy przeszukać tabelę wypożyczeń pod kątem filmów z datą zwrotu NULL, to znaczy bez daty, a data wypożyczenia przekracza ustaloną godzinę lub liczbę dni, w których klient może zatrzymać film. Jeżeli ten warunek jest spełniony, to klient jest zadłużony za film i nazwa filmu powinna być widniejąca na liście wraz z imieniem i nazwiskiem klienta, numerem telefonu i e-mailem. Pokażemy również, czy film jest opłacony, w jakim terminie został opłacony i ile został opłacony.
 SELECT CONCAT (customer.last_name, ',', customer.first_name) AS klient, adres.telefon, film.title, klient.email, rental.return_date, payment.payment_date, payment.amount FROM rental INNER JOIN klient ON rental.customer_id = customer.customer_id adres INNER JOIN ON customer.address_id = address.address_id INNER JOIN inwentarz ON rental.inventory_id = Inventory_id INNER JOIN film ON Inventory.film_id = film.film_id płatność INNER JOIN płatność.rental_id = rental.rental_id GDZIE wynajem .return_date JEST NULL ORAZ rental_date + INTERVAL film.rental_duration DZIEŃ <CURRENT_DATE () 

Przykład C


Chcemy dowiedzieć się, który jest klientem, który wypożycza najwięcej filmów, w tym celu piszemy następującą klauzulę
 Wybierz CONCAT (customer.first_name, '', customer.last_name) jako Customer, count (rental.customer_id) jako Total z wynajmu wewnętrznego klienta dołączającego na rental.customer_id = customer.customer_id group by rental.customer_id ***** przez sumę opis 
Możemy więc wykonać wiele testów z Mysql, aby przetestować wydajność. W innym samouczku przejdziemy do bardziej złożonych zapytań:

Przykład C


Chcemy dowiedzieć się, który jest klientem, który wypożycza najwięcej filmów, w tym celu piszemy następującą klauzulę
 Wybierz CONCAT (customer.first_name, '', customer.last_name) jako Customer, count (rental.customer_id) jako Total z wynajmu wewnętrznego klienta dołączającego na rental.customer_id = customer.customer_id group by rental.customer_id ***** przez sumę opis 
Możemy więc wykonać wiele testów z MySQL, aby przetestować wydajność. W innym samouczku zajmiemy się bardziej złożonymi zapytaniami.

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave