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 JOIN
LEFT JOIN
GROUP 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