В этом учебном пособии вы узнаете, как использовать оператор PostgreSQL CREATE TABLE AS с синтаксисом и примерами.
Описание
PostgreSQL оператор CREATE TABLE AS используется для создания таблицы из существующей таблицы путем копирования столбцов существующей таблицы.
Важно отметить, что при создании таблицы таким способом новая таблица будет заполняться записями из существующей таблицы (на основе оператора SELECT ).
Синтаксис
Синтаксис для оператора CREATE TABLE AS в PostgreSQL:
SELECT expressions
FROM existing_tables
[WHERE conditions];
Параметры или аргументы
- table_name
- Имя таблицы, которую вы хотите создать.
- expressions
- Столбцы из existing_tables, которые вы хотели бы создать в new_table. Определения столбцов из перечисленных столбцов будут перенесены в созданную вами новую_таблицу.
- existing_tables
- Существующие таблицы, из которых можно скопировать определения столбцов и связанные с ними записи (согласно предложению WHERE).
- WHERE conditions
- Необязательный. Условия, которые должны быть выполнены для копирования записей в new_table.
Примечание
- Определения столбцов из existing_tables будут скопированы в new_table.
- new_table будет заполнен записями на основе условий в предложении WHERE.
Пример
Рассмотрим пример PostgreSQL CREATE TABLE AS, который показывает, как создать таблицу путем копирования всех столбцов из другой таблицы.
1 2 3 4 |
CREATE TABLE current_inventory AS SELECT * FROM products WHERE quantity > 0; |
В этом примере будет создана новая таблица с именем current_inventory, включающая все столбцы из таблицы products.
Если в таблице products есть записи, то новая таблица current_inventory будет заполнена записями, возвращаемыми оператором SELECT. Другими словами, все записи из таблицы товаров с количеством больше 0 будут вставлены в таблицу current_inventory при ее создании.
Далее Рассмотрим пример CREATE TABLE AS, который показывает, как создать таблицу путем копирования выбранных столбцов из нескольких таблиц.
Например:
1 2 3 4 5 6 |
CREATE TABLE current_inventory AS SELECT products.product_id, products.product_name, categories.category_name FROM products INNER JOIN categories ON products.category_id = categories.category_id WHERE products.quantity > 0; |
В этом примере будет создана новая таблица с именем current_inventory на основе определений столбцов из таблиц products и categories.
Опять же, в новую таблицу current_inventory будут добавлены только записи, удовлетворяющие условиям оператора SELECT.