Zapytania do bazy danych pobierają określone informacje z bazy danych.
Podzapytanie to zapytanie w innym zapytaniu. Podzapytanie może również zawierać inne podzapytanie. Mówi się, że są to podzapytania „zagnieżdżone”. Sprzężenie ma miejsce, gdy w klauzuli „From” zapytania odwołuje się co najmniej dwie tabele. Różne aparaty baz danych mogą w różny sposób optymalizować podzapytania i sprzężenia. Na przykład optymalizator DB2 przekształci podzapytanie w łączenie, jeśli zostaną spełnione określone kryteria. W niektórych przypadkach sprzężenie zapewnia lepszą wydajność niż podzapytanie.
Co tworzy podzapytanie
Podzapytanie to instrukcja „SELECT” w klauzuli „WHERE” lub „HAVING” zewnętrznej instrukcji „INSERT”, „UPDATE”, „MERGE” lub „DELETE”. Podzapytanie jest również nazywane „zapytaniem wewnętrznym” lub „wewnętrznym wyborem”. Podzapytanie może zawierać klauzulę „FROM” z jedną lub większą liczbą tabel i opcjonalnie może zawierać klauzulę „WHERE”, „GROUP BY” lub „HAVING”. Jest zawsze ujęty w nawias.
Wideo dnia
Zalety i wady podzapytań
Podzapytania są korzystne, ponieważ strukturyzują zapytanie, aby odizolować każdą część instrukcji, wykonać tę samą operację, która normalnie wymagałaby złożonych złączeń i związków i jest łatwiejsza do wykonania czytać. Podzapytania były nawet podstawą nazwy „Structured Query Language” (SQL) ze względu na ich łatwą do odczytania strukturę. Wadą jest to, że nie można modyfikować tabeli i wybierać z tej samej tabeli w podzapytaniu w tej samej instrukcji SQL. Wykonanie podzapytań może również trwać dłużej niż złączenia ze względu na sposób ich przetwarzania przez optymalizator bazy danych.
Co sprawia, że dołączyć?
Większość podzapytań można przepisać jako sprzężenia, a większość sprzężeń można przepisać jako podzapytania. Sprzężenie definiuje dwie lub więcej tabel przez powiązaną kolumnę. Tabele są zwykle łączone na podstawie kluczy podstawowych i obcych. Na przykład tabela pracowników może zawierać klucz podstawowy kolumny identyfikatora pracownika, podczas gdy tabela grafiku zawiera również kolumnę identyfikatora pracownika, która jest kluczem obcym tabeli pracownik. Złączenie SQL można zapisać jako „WHERE worker.empid = timesheet.empid” lub „FROM worker JOIN timesheet ON (employee.empid = timesheet.empid)”.
Zalety i wady połączeń
Główną zaletą sprzężenia jest to, że jest wykonywane szybciej. Wzrost wydajności może nie być zauważalny dla użytkownika końcowego. Jednak ponieważ kolumny są specjalnie nazwane, indeksowane i optymalizowane przez aparat bazy danych, czas pobierania prawie zawsze będzie krótszy niż w przypadku podzapytania. Istnieją również sprzężenia wewnętrzne i zewnętrzne, sprzężenia lewe i prawe, sprzężenia pełne i sprzężenia krzyżowe. Wadą używania sprzężeń jest to, że nie są tak łatwe do odczytania jak podzapytania. Inną wadą jest to, że może być mylące, które złącze jest odpowiednim typem złączenia, aby uzyskać poprawny pożądany zestaw wyników.