В этом учебном пособии вы узнаете, как использовать оператор CREATE TABLE AS в MariaDB с синтаксисом и примерами.
Описание
MariaDB оператор CREATE TABLE AS используется для создания таблицы из существующей таблицы путем копирования столбцов существующей таблицы.
Важно отметить, что при создании таблицы таким способом новая таблица будет заполняться записями из существующей таблицы (на основе оператора SELECT).
Синтаксис
Синтаксис оператора CREATE TABLE AS в MariaDB:
SELECT expressions
FROM existing_tables
[WHERE conditions];
Параметры или аргументы
- IF NOT EXISTS
- Необязательный. Если указано, инструкция CREATE TABLE AS не вызовет ошибку, если таблица уже существует.
- table_name
- Имя таблицы, которую вы хотите создать.
- AS
- Необязательный. Указываете ли вы ключевое слово AS или нет, это не влияет на создание таблицы.
- expressions
- Столбцы из existing_tables, которые вы хотели бы создать в new_table. Определения столбцов из перечисленных столбцов будут перенесены в созданную вами new_table.
- existing_tables
- Существующие таблицы, из которых можно скопировать определения столбцов и связанные с ними записи (согласно оператору WHERE).
- WHERE conditions
- Необязательный. Условия, которые должны быть выполнены для копирования записей в new_table.
Примечание
- Определения столбцов из existing_tables будут скопированы в new_table.
- new_table будет заполнен записями на основе условий в операторе WHERE.
Пример
Рассмотрим пример MariaDB CREATE TABLE AS, который показывает, как создать таблицу путем копирования всех столбцов из другой таблицы.
1 2 3 4 |
CREATE TABLE preferred_sites AS SELECT * FROM websites WHERE website_name in ('Google.com', 'Bing.com'); |
В этом примере будет создана новая таблица с именем preferred_sites, включающая все столбцы из таблицы websites.
Если в таблице websites есть записи, то новая таблица preferred_sites будет заполнена записями, возвращаемыми оператором SELECT.
Далее давайте рассмотрим пример CREATE TABLE AS, который показывает, как создать таблицу путем копирования выбранных столбцов из нескольких таблиц.
Например:
1 2 3 4 5 6 |
CREATE TABLE stats AS SELECT pages.page_id AS "stat_id", websites.website_name, pages.file_size FROM websites INNER JOIN pages ON pages.website_id = websites.website_id WHERE website_name in ('Google.com', 'Bing.com'); |
В этом примере будет создана новая таблица с именем stats, основанная на определениях столбцов из таблиц website и pages. Обратите внимание, что в этом примере мы имеем псевдоним поле page_id как "stat_id", так как мы хотим, чтобы поле в новой таблица stats должно называться stat_id, а не page_id.