wtorek,
SQL: Klauzula FROM
Klauzula FROM w języku SQL jest podstawowym elementem zapytań, który określa źródło danych — czyli tabelę lub zestaw tabel — z którego będą pobierane dane. Jest kluczowa w większości operacji na danych, zwłaszcza w zapytaniach SELECT, ale także w niektórych typach zapytań UPDATE i DELETE.
Przykłady
Podstawowe użycie
Klauzula FROM
jest używana po zapytaniu SELECT
do określenia tabeli, z której będą pobierane dane. Na przykład:
SELECT nazwa_kolumny
FROM nazwa_tabeli;
W tym przypadku dane są pobierane z kolumny nazwa_kolumny
tabeli nazwa_tabeli
.
Łączenie tabel
Klauzuli FROM
można użyć do łączenia wielu tabel w jedno zapytanie, używając różnych typów łączeń, takich jak INNER JOIN
, LEFT JOIN
, RIGHT JOIN
itp.
SELECT kolumna1, kolumna2
FROM tabela1
INNER JOIN tabela2 ON tabela1.kolumna_wspólna = tabela2.kolumna_wspólna;
W tym przykładzie INNER JOIN
łączy tabela1
i tabela2
na podstawie wspólnej kolumny.
Alias tabeli
Czasami dla uproszczenia zapytania lub podczas łączenia ze sobą wielu tabel, można nadać tabelom aliasy, używając klauzuli AS
.
SELECT t1.kolumna1, t2.kolumna2
FROM tabela1 AS t1
INNER JOIN tabela2 AS t2 ON t1.kolumna_wspólna = t2.kolumna_wspólna;
W tym przykładzie t1
i t2
są aliasami dla tabela1
i tabela2
.
Wybór z podzapytań
Klauzula FROM
może również używać podzapytań jako źródła danych.
SELECT kolumna1
FROM (SELECT kolumna1 FROM tabela) AS subquery;
W przykładzie subquery
jest podzapytaniem używanym jako tymczasowa tabela w zapytaniu głównym.
Zapytanie DELETE
Klauzula FROM
w zapytaniu DELETE
określa tabelę, z której mają być usunięte dane. Na przykład:
DELETE FROM nazwa_tabeli
WHERE warunek;
W tym przypadku wszystkie rekordy spełniające warunek
zostaną usunięte z nazwa_tabeli
.
Zapytanie UPDATE
W zapytaniu UPDATE
klauzula FROM
jest używana rzadziej, ale także może być przydatna. Na przykład:
UPDATE tabela1
SET tabela1.kolumna = wartość
FROM tabela2
WHERE tabela1.id = tabela2.id;
Aktualizacja tabela1
na podstawie danych z tabela2
.
Zapytania z podzapytaniami
Klauzula FROM
może być również używana w podzapytaniach wewnątrz większych zapytań SELECT
, DELETE
lub UPDATE
.
DELETE FROM tabela1
WHERE id IN (SELECT id FROM tabela2 WHERE warunek);
Usuwamie rekordów z tabela1
na podstawie warunku określonego w podzapytaniu z tabela2
.