database mysql

Relacje w MySQL: Podstawy

W bazach danych relacyjnych, takich jak MySQL, dane są przechowywane w tabelach, które mogą być powiązane ze sobą poprzez relacje. Relacje umożliwiają efektywne przechowywanie i zarządzanie danymi. W tym artykule omówimy podstawy tworzenia relacji w MySQL na przykładzie tabel: „uzytkownicy”, „zamowienia” i „produkty”.

Tworzenie tabel

Zacznijmy od stworzenia trzech tabel, które będą nam potrzebne do zobrazowania na przykładzie podstawowych relacji w MySQL:

CREATE TABLE uzytkownicy (
id INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50) NOT NULL,
nazwisko VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);

CREATE TABLE produkty (
id INT PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(100) NOT NULL,
cena DECIMAL(10,2) NOT NULL
);

CREATE TABLE zamowienia (
id INT PRIMARY KEY AUTO_INCREMENT,
id_uzytkownika INT,
id_produktu INT,
ilosc INT NOT NULL,
FOREIGN KEY (id_uzytkownika) REFERENCES uzytkownicy(id),
FOREIGN KEY (id_produktu) REFERENCES produkty(id)
);

W powyższym kodzie stworzyliśmy trzy tabele. Najważniejsza część dotycząca relacji to klucze obce (FOREIGN KEY) w tabeli „zamowienia”, które odnoszą się do tabel „uzytkownicy” i „produkty”.

Relacje między tabelami

W naszym przykładzie tabela „zamowienia” jest tabelą łączącą, która reprezentuje relację między „uzytkownikami” a „produktami”. Dzięki tej tabeli wiemy, który użytkownik zamówił jaki produkt i w jakiej ilości.

Klucze obce w tabeli „zamowienia” wskazują na rekordy w tabelach „uzytkownicy” i „produkty”, tworząc w ten sposób relacje między tabelami. Dzięki temu możemy, na przykład, dowiedzieć się, jakie produkty zamówił dany użytkownik lub kto zamówił dany produkt.

Operacje na relacjach

Korzystając z relacji, możemy tworzyć złożone zapytania, które łączą dane z różnych tabel. Na przykład, jeśli chcemy zobaczyć, jakie produkty zamówił użytkownik o imieniu „Jan”, używamy zapytania:


SELECT produkty.nazwa, zamowienia.ilosc
FROM uzytkownicy
JOIN zamowienia ON uzytkownicy.id = zamowienia.id_uzytkownika
JOIN produkty ON zamowienia.id_produktu = produkty.id
WHERE uzytkownicy.imie = 'Jan';

W tym zapytaniu łączymy trzy tabele, korzystając z operacji JOIN, aby uzyskać informacje o produktach zamówionych przez użytkownika o imieniu „Jan”.

Relacje są kluczem do efektywnego i elastycznego projektowania baz danych. Dzięki nim możemy tworzyć złożone struktury danych i łatwo je łączyć w różnych kombinacjach, dostosowując się do potrzeb naszej aplikacji. W kolejnych artykułach dowiesz się więcej o zaawansowanych technikach projektowania relacyjnych baz danych. Do zobaczenia wkrótce!