MySQL
Wyszukiwarka
Wprowadzenie do MySQL
Tworzenie i modyfikowanie tabel
- Zapytanie CREATE: Tworzenie tabeli
- Instrukcja ALTER: Modyfikacja tabeli
- Zapytanie DROP: Usuwanie tabeli
Zapytania pobierające dane
- Zapytanie SELECT: Podstawy
- Zapytanie SELECT: Klauzula WHERE
- Zapytanie SELECT: Sortowanie danych (ORDER BY)
- Zapytanie SELECT: Filtrowanie danych (LIKE, IN, BETWEEN)
Zapytania modyfikujące dane
- Zapytanie INSERT: Dodawanie danych
- Zapytanie UPDATE: Aktualizacja danych
- Zapytanie REPLACE: Zastępowanie danych
Zapytania usuwające dane
Złączenia i relacje
- Podstawy złączeń (JOIN): INNER JOIN
- Zewnętrzne złączenia (OUTER JOIN)
- Złączenia CROSS JOIN i SELF JOIN
- Tworzenie relacji między tabelami
Funkcje agregujące i grupowanie
- Funkcje agregujące: COUNT, SUM, AVG
- Grupowanie danych: GROUP BY i HAVING
- Zapytania z funkcjami MAX i MIN
Zarządzanie użytkownikami
- Tworzenie nowego użytkownika
- Przydzielanie uprawnień użytkownikom
- Usuwanie użytkowników i cofanie uprawnień
- Zarządzanie hasłami użytkowników
Zaawansowane funkcje MySQL
- Transakcje w MySQL: BEGIN, COMMIT, ROLLBACK
- Tworzenie widoków (VIEWS)
- Procedury składowane: Tworzenie i wywoływanie
- Funkcje użytkownika (USER FUNCTIONS)
Zewnętrzne złączenia (OUTER JOIN)
Zapytanie OUTER JOIN w MySQL umożliwia łączenie tabel w taki sposób, że zwrócone zostaną wszystkie rekordy z jednej tabeli, a pasujące rekordy z drugiej tabeli. Główna różnica między OUTER JOIN a INNER JOIN polega na tym, że w przypadku OUTER JOIN rekordy z jednej tabeli, które nie mają pasujących danych w drugiej tabeli, będą nadal zwracane, ale z wartościami NULL w miejscu brakujących danych.
W MySQL dostępne są trzy rodzaje złączeń zewnętrznych: LEFT OUTER JOIN, RIGHT OUTER JOIN, oraz symulacja FULL OUTER JOIN (ponieważ MySQL nie obsługuje pełnych złączeń OUTER JOIN bezpośrednio).
📌 Składnia zapytania OUTER JOIN
✅ Podstawowa składnia:
- OUTER JOIN – definiuje typ złączenia. Używamy LEFT OUTER JOIN lub RIGHT OUTER JOIN w zależności od potrzeby.
- ON – wskazuje warunek, na podstawie którego zostaną połączone obie tabele.
- kolumny – kolumny, które mają zostać wyświetlone w wyniku zapytania.
Przykład
-- Podstawowa składnia
SELECT kolumny
FROM tabela1
LEFT OUTER JOIN tabela2
ON tabela1.kolumna = tabela2.kolumna;
📌 LEFT OUTER JOIN i RIGHT OUTER JOIN – Złączenia lewostronne i prawostronne
✅ Opis:
- LEFT OUTER JOIN zwraca wszystkie rekordy z lewej tabeli (tutaj uzytkownicy) oraz pasujące do nich rekordy z prawej tabeli (zamowienia).
- RIGHT OUTER JOIN zwraca wszystkie rekordy z prawej tabeli (tutaj zamowienia) oraz pasujące do nich rekordy z lewej tabeli (uzytkownicy).
- W przypadku braku pasujących rekordów w jednej z tabel, wstawiane są wartości NULL w miejsce brakujących danych.
✅ Zastosowanie:
- LEFT OUTER JOIN jest używane, gdy zależy nam na tym, by mieć pełne dane z lewej tabeli, niezależnie od tego, czy mają one odpowiadające dane w prawej tabeli.
- RIGHT OUTER JOIN jest używane, gdy zależy nam na tym, by mieć pełne dane z prawej tabeli, niezależnie od tego, czy mają one odpowiadające dane w lewej tabeli.
Przykład
-- LEFT OUTER JOIN (Złączenie lewostronne)
SELECT uzytkownicy.imie, zamowienia.id_zamowienia
FROM uzytkownicy
LEFT OUTER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika;
-- RIGHT OUTER JOIN (Złączenie prawostronne)
SELECT uzytkownicy.imie, zamowienia.id_zamowienia
FROM uzytkownicy
RIGHT OUTER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika;
📌 FULL OUTER JOIN – Złączenie pełne (Symulacja w MySQL)
✅ Przykład: Symulacja FULL OUTER JOIN za pomocą LEFT JOIN i RIGHT JOIN
📌 Opis:
- FULL OUTER JOIN łączy rekordy z obu tabel: uzytkownicy i zamowienia.
- Dzięki użyciu kombinacji LEFT JOIN i RIGHT JOIN w MySQL można uzyskać wynik, który obejmuje wszystkie rekordy z obu tabel, nawet jeśli nie mają one pasujących danych w drugiej tabeli.
Przykład
SELECT uzytkownicy.imie, zamowienia.id_zamowienia
FROM uzytkownicy
LEFT OUTER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika
UNION
SELECT uzytkownicy.imie, zamowienia.id_zamowienia
FROM uzytkownicy
RIGHT OUTER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika;
📌 Zastosowania OUTER JOIN
✅ Przykład: Przykład użycia OUTER JOIN w rzeczywistej aplikacji
📌 Opis:
- Zapytanie zwraca wszystkich klientów oraz ich zamówienia. Klienci, którzy nie złożyli żadnego zamówienia, będą mieli wartość NULL w kolumnie id_zamowienia.
✅ Zastosowanie:
- OUTER JOIN jest przydatne, gdy chcemy uzyskać pełny zbiór danych z jednej tabeli (np. klientów), niezależnie od tego, czy są one powiązane z innymi danymi (np. zamówieniami).
Przykład
SELECT klienci.nazwa, zamowienia.id_zamowienia
FROM klienci
LEFT OUTER JOIN zamowienia
ON klienci.id = zamowienia.id_klienta;
Podsumowanie
- OUTER JOIN zwraca wszystkie rekordy z jednej tabeli i pasujące rekordy z drugiej tabeli. Jeśli brak pasujących danych w drugiej tabeli, zostaną zwrócone wartości NULL.
- MySQL obsługuje LEFT OUTER JOIN (złączenie lewostronne) oraz RIGHT OUTER JOIN (złączenie prawostronne). Można także symulować FULL OUTER JOIN za pomocą kombinacji tych dwóch złączeń.
- LEFT OUTER JOIN zwraca wszystkie rekordy z lewej tabeli, a RIGHT OUTER JOIN z prawej.
- Warto używać OUTER JOIN, gdy zależy nam na uzyskaniu pełnego zbioru danych z jednej tabeli, niezależnie od powiązań w drugiej tabeli.