Перейти к содержимому

Sql как создать таблицу на основе другой

  • автор:

SQL оператор CREATE TABLE AS

В этом учебном материале вы узнаете, как использовать в SQL оператор CREATE TABLE AS с синтаксисом и примерами.

Описание

Вы также можете использовать SQL оператор CREATE TABLE AS, чтобы создать таблицу из существующей таблицы путем копирования столбцов существующей таблицы.
Важно отметить, что при создании таблицы таким способом новая таблица будет заполняться записями из существующей таблицы (на основе оператора SELECT).

Создать таблицу — путем копирования всех столбцов из другой таблицы

Синтаксис

Синтаксис для оператора CREATE TABLE AS при копировании всех столбцов из другой таблицы в SQL.

CREATE TABLE new_table
AS (SELECT * FROM old_table);

Пример

Давайте посмотрим на пример, который показывает, как создать таблицу путем копирования всех столбцов из другой таблицы.
Например.

CREATE TABLE AS CLONE OF

Создает новую таблицу в виде клона нулевой копии другой таблицы в Хранилище в Microsoft Fabric. Копируются только метаданные таблицы. Базовые данные таблицы, хранящиеся в виде файлов parquet, не копируются.

Дополнительные сведения о клонировании таблицы в Microsoft Fabric см. в таблице Клонирования с помощью TSQL в Microsoft Fabric. Вы также можете клонировать таблицы в Microsoft Fabric на портале Fabric, например таблицы клонирования на портале Fabric.

Синтаксис

CREATE TABLE < database_name.schema_name.table_name | schema_name.table_name | table_name >AS CLONE OF < database_name.schema_name.table_name | schema_name.table_name | table_name >[AT ] 

Аргументы

database_name

Имя базы данных, содержащей новую клонированную таблицу. Значение по умолчанию — текущая база данных.

schema_name

Схема таблицы, в которой находится клон таблицы. Указание схемы является необязательным, если таблица клонируется в той же схеме. Если пусто, используется схема по умолчанию.

Указание имени схемы требуется, если таблица клонируется между схемами.

table_name

Имя клонированного таблицы. Имена таблиц должны соответствовать правилам для идентификаторов. table_name может быть не более 128 символов.

point_in_time

В указанных датах и времени таблица клонирует точно зеркало данные, как это было в определенный момент времени и даты в формате UTC. Формат значения типа данных datetime должен иметь значение YYYY-MM-DDThh:mm:ss, где «T» указывает начало времени.

Указание point_in_time не требуется для создания клонов таблиц по состоянию на текущий момент времени.

Хранилище автоматически сохраняет и сохраняет журнал данных в течение семи календарных дней. Дополнительные сведения см . в таблице Clone.

Разрешения

  • Разрешение SELECT для всей исходной таблицы
  • Разрешения CREATE TABLE для схемы, в которой будет создан клон таблицы

Ограничения

Ограничения первичного и уникального ключа, определенные в исходной таблице, реплика при создании клона.

Ограничения

Ограничения см. в разделе «Ограничения клонирования таблицы».

Примеры

А. Создание клона таблицы в той же схеме

--Clone creation within the same schema CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA; 

B. Создание клона таблицы между схемами в одном хранилище данных

--Clone creation across schemas CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA; 

C. Создание клона таблицы в одной схеме в определенный момент времени

--Clone creation within the same schema CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA AT '2023-05-23T14:24:10.325'; 

D. Создание клона таблицы в схеме в определенный момент времени

--Clone creation within the same schema CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA AT '2023-05-23T14:24:10'; 

Связанный контент

  • Клонирование таблицы в Microsoft Fabric
  • Создание таблицы в хранилище в Microsoft Fabric
  • Хранилище в Microsoft Fabric
  • Клонирование таблицы в Microsoft Fabric
  • Клонирование таблиц на портале Fabric

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Отправить и просмотреть отзыв по

ALTER TABLE — изменение таблицы в SQL

Рассказываем о команде ALTER TABLE и учим вносить с ее помощью изменения в таблицы и столбцы.

Эта инструкция — часть курса «MySQL для новичков».

Смотреть весь курс

Введение

ALTER TABLE — один из самых незаменимых инструментов в работе с базами данных SQL. В этой статье мы рассмотрим SQL оператор ALTER TABLE и его применение. Узнаем, как добавить или удалить поля с помощью этого инструмента, и рассмотрим различные примеры его использования. В данной статье мы не будем рассматривать MS SQL и остановимся на синтаксисе наиболее популярной версии — MySQL.

Синтаксис оператора ALTER TABLE в SQL

Синтаксис оператора ALTER TABLE выглядит следующим образом:

ALTER TABLE название_таблицы [WITH CHECK | WITH NOCHECK]

Из этой записи мы видим, что сценариев применения данной команды достаточно много. Давайте рассмотрим их. В качестве примера мы будем использовать базу данных slcbookshelf, которую мы создавали в статье о первичных и внешних SQL ключах.

use slcbookshelf; 

Добавление столбца в таблицу (ADD COLUMN)

Сейчас наша таблица выглядит следующим образом:

mysql> DESC books; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | book_id | int | NO | | NULL | | | book_name | varchar(255) | NO | | NULL | | | book_category | varchar(255) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) 

Давайте добавим в нашу таблицу новый столбец, в котором будет отображаться автор каждой книги:

ALTER TABLE books ADD author NVARCHAR(50) NOT NULL; 

Данным запросом мы создали в нашей таблице новый столбец authors с типом NVARCHAR и длиной в 50 символов, который не может принимать пустое значение. Если мы не знаем автора произведения, тогда наша команда будет иметь такой вид:

ALTER TABLE books ADD author NVARCHAR(50) NOT NULL DEFAULT 'Неизвестен'; 

Теперь для существующих данных, для которых не заполнен столбец author, значение по умолчанию будет «Неизвестен».

Переименование столбца и таблицы

Переименование столбца (RENAME)

С помощью ALTER TABLE можно переименовать существующий столбец. Для этого выполните команду:

ALTER TABLE books RENAME COLUMN author TO authors; 

Переименование таблицы (RENAME)

При помощи ALTER TABLE можно переименовать таблицу. Выполняем запрос:

ALTER TABLE books RENAME TO books_selectel; 

Удаление столбца (DROP)

Чтобы удалить столбец из таблицы с помощью ALTER TABLE, требуется выполнить следующий запрос:

ALTER TABLE books DROP COLUMN authors; 

Изменение столбца (ALTER COLUMN)

Иногда бывают случаи, когда необходимо изменить уже созданный ранее столбец. Это действие можно выполнить с помощью команды ALTER TABLE. Для изменения существующего столбца необходимо выполнить такой запрос:

ALTER TABLE books ALTER COLUMN book_category VARCHAR(200); 

В данном примере мы изменили максимальное количество символов, которое может использоваться в полях столбца book_category с 255 до 200.

Также с помощью ALTER TABLE можно сделать действие сразу с несколькими столбцами. Чтобы изменить сразу несколько столбцов, вам потребуется использовать эту команду:

ALTER TABLE books MODIFY book_category VARCHAR(200), MODIFY book_name VARCHAR(200), . ; 

Таким запросом мы изменили сразу два столбца: book_category и book_name.

Изменение типа столбца

При помощи ALTER TABLE можно изменить тип столбца в таблице SQL. Изменение типа существующего столбца осуществляется при помощи команды:

ALTER TABLE books ALTER COLUMN book_category NVARCHAR(200); 

Выполнив эту команду, мы изменили тип book_category на NVARCHAR(200).

Добавление первичного и внешнего ключей при помощи ALTER TABLE

Вы можете определить существующий столбец в таблице в качестве первичного ключа с помощью команды ALTER TABLE. Запрос, добавляющий в таблицу первичный ключ, будет выглядеть следующим образом:

ALTER TABLE books ADD PRIMARY KEY (book_id); 

Аналогично при помощи ALTER TABLE можно добавить внешний ключ таблицы. Чтобы создать внешний ключ для таблицы MySQL выполните команду:

ALTER TABLE books ADD FOREIGN KEY (author_id) REFERENCES authors(author_id); 

В результате выполнения этой команды поле author_id в таблице books будет внешним ключом для аналогичного поля в таблице authors.

Работа с ограничениями

Ограничения — специальные правила, которые применяются к таблице, чтобы ограничить типы данных в таблице. Ограничения очень важны, так как их правильное применение помогает обеспечить целостность данных в таблицах и наладить стабильную работу базы. Давайте рассмотрим одно из таких ограничений — ограничение CHECK. Применяя ограничения CHECK к столбцу таблицы, мы создаем правило, по которому при добавлении данных СУБД будет автоматически проверять их на соответствии заданным правилам.

Создание ограничения

Например, если нам необходимо, чтобы все клиенты в базе данных Customers имели возраст больше 21 года, мы можем установить следующее ограничение:

ALTER TABLE Customers ADD CHECK (Age > 21); 

При применении такого ограничения стоит учитывать, что если в столбце уже существуют данные, не соответствующие ограничению, то команда будет выполнена с ошибкой. Чтобы избежать подобного поведения, вы можете добавить ограничение со значением WITH NOCHECK. Таким образом, текущие значения столбца не вызовут ошибок при выполнении запроса при несоответствии ограничению:

ALTER TABLE Customers WITH NOCHECK ADD CHECK (Age > 21); 

Добавление ограничений с именами

Так как ограничений в таблицах может быть много, добавление имен к ограничениям может в значительной мере упростить будущую работу с таблицей. Создать имя для ограничения можно при помощи оператора CONSTRAINT:

ALTER TABLE Customers ADD CONSTRAINT Check_Age_Greater_Than_Twenty_One CHECK (Age > 21); 

Удаление ограничений

ALTER TABLE можно пользоваться и для удаления ограничений. Для удаления существующих ограничений необходимо выполнить следующую команду:

ALTER TABLE Customers DROP Check_Age_Greater_Than_Twenty_One; 

После выполнения этой команды ограничение перестанет применяться при добавлении новых данных в столбец.

Заключение

В данной статье мы с вами узнали что такое ALTER TABLE, рассмотрели работу с этой командой и научились вносить с ее помощью изменения в таблицы и столбцы, а также рассмотрели несколько примеров использования данной команды, которые сильно упростят будущую работу с базами данных.

Сброс пароля root в MySQL

CREATE TABLE AS ОПЕРАТОР

Oracle/PLSQL CREATE TABLE AS можно использовать, чтобы создать таблицу из существующей таблицы путем копирования столбцов существующей таблицы.

Важно отметить, что при создании таблицы таким образом, новая таблица будет заполнена записями из существующей таблицы (на основе оператора SELECT).

Создание таблицы — путем копирования всех столбцов из другой таблицы

Синтаксис

Синтаксис CREATE TABLE AS в Oracle PL/SQL, для копирования всех столбцов:

CREATE TABLE new_table
AS (SELECT * FROM old_table);

Пример

Рассмотрим пример CREATE TABLE AS, который создаст таблицу путем копирования всех столбцов из другой таблицы. Например:

Oracle PL/SQL
CREATE TABLE suppliers
AS ( SELECT *
FROM companies
WHERE company_id < 5000);

Этот пример будет создавать новую таблицу suppliers (поставщики), в которую включены все столбцы из таблицы companies (компании).
Если в таблице companies нет записей, то новая таблица suppliers будет заполнена записями, возвращенными оператором SELECT.

Создание таблицы — путем копирования выбранных столбцов из другой таблицы

Синтаксис

Синтаксис CREATE TABLE AS, для копирования выбранных столбцов в Oracle PL/SQL:

CREATE TABLE new_table
AS (SELECT column_1, column2, . column_n
FROM old_table);

Пример

Рассмотрим на примере CREATE TABLE AS, который показывает, как создать таблицу путем копирования выбранных столбцов из другой таблицы.
Например:

Oracle PL/SQL
CREATE TABLE suppliers
AS ( SELECT company_id, address, city, state, zip
FROM companies
WHERE company_id < 5000);

Этот пример будет создать новую таблицу с наименованием suppliers . Новая таблица будет включать в себя только указанные столбцы ( company_id , address , city , state и zip ) из таблицы companies .
Кроме того, если в таблице companies будут записи, то новая таблица suppliers будет заполнена записями, возвращенными оператором SELECT.

Создание таблицы — путем копирования выбранных столбцов из нескольких таблиц

Синтаксис

Синтаксис CREATE TABLE AS, для копирования столбцов из нескольких таблиц в Oracle PL/SQL:

CREATE TABLE new_table
AS (SELECT column_1, column2, . column_n
FROM old_table_1, old_table_2, . old_table_n);

Пример

Рассмотрим пример CREATE TABLE AS, который показывает, как создать таблицу путем копирования выбранных столбцов из нескольких таблиц.
Например:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *