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)
Podstawy złączeń (JOIN): INNER JOIN
Zapytanie INNER JOIN w MySQL pozwala na łączenie dwóch lub więcej tabel w taki sposób, aby zwrócone zostały tylko te rekordy, które spełniają określony warunek w obu tabelach. Jest to najczęściej stosowane złączenie, ponieważ daje możliwość uzyskania tylko tych danych, które istnieją w obu tabelach.
INNER JOIN zwraca tylko te wiersze, które mają odpowiadające im rekordy w obu tabelach. Jeśli jeden z rekordów w jednej tabeli nie ma odpowiadającego rekordu w drugiej tabeli, nie zostanie uwzględniony w wyniku.
Podstawowa składnia zapytania INNER JOIN
- INNER JOIN – wskazuje typ złączenia między tabelami.
- ON – warunek łączenia, czyli wskazanie kolumny w tabelach, które będą ze sobą porównywane.
- kolumny – kolumny, które mają zostać wyświetlone w wyniku zapytania.
✅ Przykład: Połączenie tabel uzytkownicy i zamowienia na podstawie wspólnej kolumny id_uzytkownika
📌 Opis:
- Zwracamy imię i nazwisko użytkownika oraz identyfikator zamówienia dla tych użytkowników, którzy mają zamówienia.
- Łączenie odbywa się na podstawie kolumny id_uzytkownika w tabeli zamowienia i kolumnie id w tabeli uzytkownicy.
-- Podstawowa składnia
SELECT kolumny
FROM tabela1
INNER JOIN tabela2
ON tabela1.kolumna = tabela2.kolumna;
-- Przykład
SELECT uzytkownicy.imie, uzytkownicy.nazwisko, zamowienia.id_zamowienia
FROM uzytkownicy
INNER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika;
📌 Warunki złączenia
✅ Przykład: Łączenie tabel z dodatkowym warunkiem w zapytaniu
📌 Opis:
- Łączymy dane z tabeli uzytkownicy i zamowienia na podstawie wspólnej kolumny, ale dodatkowo filtrujemy dane po dacie zamówienia (od 1 stycznia 2022 roku).
- Warunki złączenia określamy za pomocą ON, a dodatkowe filtry używamy w WHERE.
SELECT uzytkownicy.imie, zamowienia.id_zamowienia
FROM uzytkownicy
INNER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika
WHERE zamowienia.data_zamowienia >= '2022-01-01';
📌 Łączenie wielu tabel
✅ Przykład: Łączenie trzech tabel: uzytkownicy, zamowienia, produkty
📌 Opis:
- Złączono trzy tabele: uzytkownicy, zamowienia, i produkty.
- Zapytanie zwraca imię użytkownika, identyfikator zamówienia oraz nazwę produktu, który został zamówiony przez danego użytkownika.
SELECT uzytkownicy.imie, zamowienia.id_zamowienia, produkty.nazwa
FROM uzytkownicy
INNER JOIN zamowienia
ON uzytkownicy.id = zamowienia.id_uzytkownika
INNER JOIN produkty
ON zamowienia.id_produktu = produkty.id;
📌 Optymalizacja zapytań z INNER JOIN
✅ Przykład: Użycie aliasów w zapytaniach
📌 Opis:
- Warto stosować aliasy (np. u dla uzytkownicy i z dla zamowienia), aby zapytania były krótsze i bardziej czytelne.
- Pomaga to w optymalizacji zapytań, zwłaszcza w przypadku dużych baz danych.
SELECT u.imie, z.id_zamowienia
FROM uzytkownicy AS u
INNER JOIN zamowienia AS z
ON u.id = z.id_uzytkownika;
Podsumowanie
- INNER JOIN łączy dane z dwóch lub więcej tabel, zwracając tylko te rekordy, które spełniają warunek złączenia w obu tabelach.
- Do określenia, które rekordy mają być połączone, służy klauzula ON.
- Jeśli rekord w jednej tabeli nie ma odpowiadającego rekordu w drugiej tabeli, nie zostanie uwzględniony w wyniku.
- Możemy łączyć więcej niż dwie tabele, używając kolejnych złączeń INNER JOIN.
- Używanie aliasów poprawia czytelność zapytań, szczególnie w przypadku łączenia wielu tabel.