Junior
212
Šta znaš o uzorcima i spojnicama u bazama podataka?
Одговор од АИ
sobes.tech АИ
Uzorki (upiti SELECT) izvlače podatke iz jedne ili više tabela. Spojevi (JOIN) kombinuju redove iz dve ili više tabela na osnovu povezane kolone između njih.
Tipovi spojeva:
- INNER JOIN: Vraća redove koji imaju podudaranja u obe tabele.
- LEFT JOIN (LEFT OUTER JOIN): Vraća sve redove iz leve tabele i odgovarajuće redove iz desne. Ako nema podudaranja, vraća
NULLza desnu tabelu. - RIGHT JOIN (RIGHT OUTER JOIN): Vraća sve redove iz desne tabele i odgovarajuće redove iz leve. Ako nema podudaranja, vraća
NULLza levu tabelu. - FULL JOIN (FULL OUTER JOIN): Vraća sve redove gde postoji podudaranje u bar jednoj od tabela. Ako nema podudaranja, vraća
NULLza nedostajuća polja. (Nije podržano od svih SGBD, na primer, MySQL koristi UNION za emulaciju). - CROSS JOIN: Vraća kartezijski proizvod redova obe tabele (svaki red prve tabele se kombinuje sa svakim redom druge).
Primeri sintakse:
-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;
Ključne reči za upite:
SELECT: Definiše kolone za izvlačenje.FROM: Navodi tabelu(e).WHERE: Filtrira redove prema datom uslovu.GROUP BY: Grupira redove sa istim vrednostima u jednu sažetu red.HAVING: Filtrira grupe nakonGROUP BY.ORDER BY: Sortira rezultat.LIMIT / OFFSET: Ograničava broj vraćenih redova.
Optimizacija upita i spojeva je važna za performanse baze podataka. Koriste se indeksi, pravilno definisani tipovi podataka, izbegavanje SELECT * (ako je moguće), optimizacija uslova u WHERE.
U PHP-u, za rad sa upitima i spojevima koriste se ekstenzije poput PDO ili MySQLi, koje pružaju API za izvršavanje SQL upita.