PostgreSQL SELECT INTO
Podsumowanie: W tym poradniku dowiesz się jak używać instrukcji PostgreSQL SELECT INTO do tworzenia nowej tabeli z zestawu wyników zapytania.
Jeśli szukasz sposobu na wybieranie danych do zmiennych, sprawdź to w PL/pgSQL SELECT INTO statement.
Wprowadzenie do instrukcji PostgreSQL SELECT INTO
Konstrukcja PostgreSQL SELECT INTO tworzy nową tabelę i wstawia do niej dane zwrócone z zapytania.
Nowa tabela będzie posiadała kolumny o nazwach takich samych jak kolumny zbioru wyników zapytania. W przeciwieństwie do zwykłej instrukcji SELECT, instrukcja SELECT INTO nie zwraca wyniku do klienta.
Poniżej przedstawiono składnię instrukcji PostgreSQL SELECT INTO:
Code language: SQL (Structured Query Language) (sql)SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Aby utworzyć nową tabelę o strukturze i danych pochodzących z zestawu wyników, należy podać nazwę nowej tabeli po słowie kluczowym INTO.
Słowo kluczowe TEMP lub TEMPORARY jest opcjonalne; umożliwia utworzenie tabeli tymczasowej.
Słowo kluczowe UNLOGGED jeśli jest dostępne, spowoduje utworzenie nowej tabeli jako tabeli niezalogowanej.
Klauzula WHERE pozwala określić wiersze z oryginalnych tabel, które powinny zostać wstawione do nowej tabeli. Poza klauzulą WHERE, można użyć innych klauzul w instrukcji SELECT dla instrukcji SELECT INTO, takich jak INNER JOINLEFT JOINGROUP BY, oraz HAVING.
Należy pamiętać, że nie można użyć instrukcji SELECT INTO w PL/pgSQL, ponieważ interpretuje ona klauzulę INTO w inny sposób. W takim przypadku można użyć instrukcji CREATE TABLE AS, która zapewnia większą funkcjonalność niż instrukcja SELECT INTO.
PostgreSQL SELECT INTO przykłady
Do demonstracji wykorzystamy tabelę film z przykładowej bazy danych.

Następująca instrukcja tworzy nową tabelę o nazwie o nazwie film_r która zawiera filmy o ratingu R i czasie wypożyczenia 5 dni z tabeli film.
Code language: SQL (Structured Query Language) (sql)SELECT film_id, title, rental_rateINTO TABLE film_rFROM filmWHERE rating = 'R'AND rental_duration = 5ORDER BY title;
Aby zweryfikować tworzenie tabeli, można odpytać dane z tabeli film_r:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM film_r;

Poniższa instrukcja tworzy tymczasową tabelę o nazwie short_film zawierającą filmy, których długość nie przekracza 60 minut.
Code language: SQL (Structured Query Language) (sql)
Poniżej przedstawiono dane z tabeli short_film:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM short_film;

W tym tutorialu, dowiedziałeś się jak używać instrukcji PostgreSQL SELECT INTO do tworzenia nowej tabeli na podstawie zbioru wyników zapytania.
- Czy ten tutorial był pomocny?
- TakNie