Таблица SQL Server CREATE, ALTER, DROP [Примеры T-SQL]

⚡ Умное резюме

В таблицах SQL Server данные хранятся в строках и столбцах. Transact-SQL использует команду CREATE TABLE для создания таблицы, ALTER TABLE для добавления или изменения столбцов и DROP TABLE для удаления таблицы, ее данных и структуры.

  • 🧱 Что такое таблица: Таблица хранит данные в строках и столбцах и является основным объектом для хранения данных в базе данных.
  • 🇧🇷 СОЗДАТЬ ТАБЛИЦУ: Оператор CREATE TABLE определяет каждый столбец, указывая его имя, тип данных и значение NULL или NOT NULL.
  • 📋 Создать на основе существующего: Оператор SELECT … INTO копирует выбранные столбцы и строки из существующей таблицы в совершенно новую таблицу.
  • ИЗМЕНИТЬ ТАБЛИЦУ: Команда ALTER TABLE … ADD добавляет новые столбцы в таблицу без ее повторного создания.
  • 🇧🇷 Удалить таблицу: Команда DROP TABLE удаляет всю таблицу, включая ее данные и структуру.
  • 🇧🇷 Дизайнер столов: В SQL Server Management Studio также можно создавать и изменять таблицы визуально с помощью конструктора таблиц.

Примеры выполнения команд CREATE, ALTER и DROP для таблиц в SQL Server с использованием T-SQL.

Что такое таблица?

Стол — это объект в SQL Server Эта система хранит данные в формате строк и столбцов. На диаграмме ниже показаны строки и столбцы соответственно.

Диаграмма таблицы, хранящей данные в строках и столбцах.

Как создать таблицу в SQL Server с помощью T-SQL

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

Таблицу можно создать следующими способами:

  • T-SQL: создать новую таблицу, определив все столбцы и их типы данных.
  • T-SQL: создать новую таблицу, используя существующую.
  • Использование конструктора таблиц.

Давайте изучим это подробно.

T-SQL: Создайте новую таблицу, определив все столбцы и их типы данных.

Ниже приведён синтаксис для создания таблицы в SQL Server.

Синтаксис:

CREATE TABLE tableName
( 
  column_1 datatype [ NULL | NOT NULL ],
  column_2 datatype [ NULL | NOT NULL ],
  ...
);

Здесь,

  • Параметр tableName обозначает имя таблицы, которую вы собираетесь создать.
  • Параметры столбец_1, столбец_2… обозначают столбцы, которые необходимо добавить в таблицу.
  • Для столбца необходимо указать значение NULL или NOT NULL. Если значение не указано, SQL Server по умолчанию принимает значение NULL.

Давайте создадим простую таблицу с двумя столбцами.

Запрос:

CREATE TABLE COURSE
(
Course_ID Int,
Course_Name Varchar(10)
)

Предварительные требования: Выберите базу данных, в которой необходимо создать таблицу.

Шаг 1) Выполните запрос, нажав кнопку «Выполнить». До выполнения запроса таблица не существует, как показано ниже.

В обозревателе объектов таблица Course отсутствует до выполнения оператора CREATE.

После выполнения запроса нажмите кнопку «Обновить»; теперь существует новая таблица под названием Course, как показано ниже.

После выполнения и обновления таблица курсов отображается в обозревателе объектов.

Шаг 2) Вставьте данные. На скриншотах ниже показана только что созданная таблица «Курсы», готовая к приему строк.

В обозревателе объектов перед вставкой данных выбрана только что созданная таблица «Курсы».

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

На данный момент существует только таблица, но в ней пока нет данных.

Transact-SQL предоставляет оператор INSERT для вставки данных в таблицу. С помощью этого оператора можно вставить одну или несколько строк в таблицу.

Синтаксис:

INSERT INTO tableName
(column_1, column_2, ... )
VALUES
(expression_1, expression_2, ... ),
(expression_1, expression_2, ... ),
...;

Приведённый выше синтаксис демонстрирует базовую форму команды при использовании ключевого слова VALUES для вставки данных в таблицу.

Давайте вставим четыре строки, используя команду INSERT.

Insert into COURSE values (1,'SQL');
Insert into COURSE values (2,'Python');
Insert into COURSE values (3,'SQL');
Insert into COURSE values (4,'C');

На приведенном ниже снимке экрана видно, что вставка четырех строк прошла успешно.

Панель сообщений подтверждает добавление четырех строк в таблицу «Курсы».

Шаг 3) Для просмотра данных используйте оператор SELECT. Для просмотра данных в SQL Server используйте следующий синтаксис:

SELECT expression
FROM tableName
[WHERE condition];

Пример запроса:

SELECT * FROM COURSE;

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

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

T-SQL: Создание новой таблицы на основе существующей таблицы

Предположим, вам нужна еще одна таблица, похожая на созданную выше таблицу COURSE, но вам нужен только столбец Course_Name, а не Course_ID.

Синтаксис:

SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;

Пример запроса:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Шаг 1) Выполните запрос, нажав кнопку «Выполнить». Будет создана новая таблица с именем COURSE_NAMES, содержащая один столбец и четыре записи, скопированные из старой таблицы, как показано ниже.

Новая таблица COURSE_NAMES создана на основе существующей таблицы с помощью запроса SELECT INTO.

Пример запроса:

SELECT * FROM COURSE_NAMES;

В приведенном ниже результате перечислены четыре записи Course_Name из новой таблицы COURSE_NAMES.

В таблице результатов отображаются значения Course_Name из таблицы COURSE_NAMES.

Использование конструктора таблиц

Вы также можете создать таблицу из Студия управления SQL Server IDE с использованием Table Designer.

Шаг 1) Щелкните правой кнопкой мыши по таблице > Создать > Таблица, как показано ниже.

В обозревателе объектов щелкните правой кнопкой мыши по пункту «Таблица», затем выберите «Создать», а затем «Таблица».

Шаг 2) Введите названия столбцов и типы данныхи выберите, допускает ли каждый столбец значения NULL.

Панель инструментов конструктора таблиц для создания новой таблицы.

Конструктор таблиц: сетка с названиями столбцов, типами данных и параметрами «Разрешить значения NULL».

Шаг 3) Нажмите CTRL+S, чтобы сохранить таблицу, и введите имя в формате Course_Title.

В диалоговом окне «Выберите имя» сохраните новую таблицу как Course_Title.

После нажатия кнопки «Обновить» появится новая таблица с названием Course_Title и одним столбцом с названием Course_Name, как показано ниже.

В обозревателе объектов отображается таблица Course_Title с одним столбцом Course_Name.

Изменение таблицы в SQL Server

В SQL Server существует два способа изменения таблицы:

  • T-SQL: изменить таблицу, добавив новые столбцы.
  • Использование конструктора таблиц.

T-SQL: изменение таблицы путем вставки столбцов

Ниже приведён синтаксис команды ALTER в SQL:

Синтаксис:

 Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;

Запрос:

ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);

Шаг 1) Выполните запрос, нажав кнопку «Выполнить». В таблице Course_Title теперь появился новый столбец с именем Course_Duration, как показано ниже.

Оператор ALTER TABLE ADD добавляет столбец Course_Duration.

Столбцы Course_Title, включая недавно добавленный столбец Course_Duration.

Использование конструктора таблиц

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

Шаг 1) Щелкните правой кнопкой мыши по существующей таблице > Дизайн, как показано ниже.

Щелкните правой кнопкой мыши таблицу Course_Title и выберите «Дизайн».

Шаг 2) Добавьте в столбец имя Course_Start_Date и выберите тип данных.

Добавление столбца Course_Start_Date и его типа данных в конструктор таблиц.

Шаг 3) Нажмите CTRL+S, чтобы сохранить добавленный столбец. В таблице Course_Title будет создан новый столбец с именем Course_Start_Date, как показано ниже.

В таблице Course_Title отображается сохраненный столбец Course_Start_Date.

Удалить таблицу в SQL Server

Таблицу удаляют, когда она больше не нужна.

В SQL Server существует два способа удаления таблицы:

  • Используя SQL Server Management Studio.
  • T-SQL: удалить таблицу с помощью команды DROP TABLE.

Использование SQL Server Management Studio

Шаг 1) Щелкните правой кнопкой мыши существующую таблицу > Удалить, чтобы удалить таблицу с именем Course_Title, как показано ниже.

Щелкните правой кнопкой мыши таблицу Course_Title и выберите «Удалить».

Шаг 2) В окне «Удалить объект» нажмите кнопку «ОК».

Окно подтверждения удаления объекта с кнопкой «ОК».

Таблица Course_Title теперь удалена из списка таблиц, как показано ниже.

Список таблиц обозревателя объектов после удаления таблицы Course_Title

T-SQL: Удаление таблицы

Ниже приведён синтаксис для удаления таблицы.

Синтаксис:

DROP TABLE <tableName>;

Параметр tableName — это имя таблицы, которую необходимо удалить.

Запрос:

DROP TABLE COURSE_NAMES;

Шаг 1) Выполните запрос, нажав кнопку «Выполнить». Таблица COURSE_NAMES будет удалена из списка таблиц, как показано ниже.

Оператор DROP TABLE удаляет таблицу COURSE_NAMES.

Список таблиц обозревателя объектов после удаления таблицы COURSE_NAMES

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

Синтаксис:

DELETE TABLE <Table name>;

Примечание: В стандартном T-SQL строки удаляются с помощью DELETE FROM <table>и стол быстро опустошается TRUNCATE TABLE <table>Вся таблица удаляется с помощью команды DROP TABLE, как показано выше.

Интересные факты!

  • Большие файлы, такие как XML-файлы или изображения, можно хранить в столбце, используя типы данных для больших объектов, такие как VARBINARY(MAX), VARCHAR(MAX) или тип XML (SQL Server не использует этот тип). Oracle(имена BLOB и CLOB в стиле -).
  • Операция DELETE удаляет только строки и может быть отменена в рамках транзакции, в то время как DROP удаляет всю структуру таблицы; в SQL Server даже операцию DROP можно отменить, если она выполняется внутри явной транзакции.

Часто задаваемые вопросы (FAQ)

Команда DELETE удаляет выбранные строки и полностью регистрирует их в журнале. Команда TRUNCATE быстро удаляет все строки и сбрасывает значения идентификаторов. Команда DROP удаляет всю таблицу, ее данные и структуру. В SQL Server все три операции можно отменить в рамках явной транзакции.

Используйте команду DROP TABLE IF EXISTS table_name, доступную начиная с SQL Server 2016. Она удаляет таблицу, если она присутствует, и ничего не делает, если она отсутствует, избегая ошибки. В более старых версиях перед удалением проверяйте OBJECT_ID.ping.

В SQL Server отсутствует оператор RENAME TABLE. Вместо этого используйте системную хранимую процедуру sp_rename, например, EXEC sp_rename 'old_name', 'new_name'. После этого обновите зависимые представления, процедуры и код, поскольку sp_rename не изменяет эти ссылки автоматически.

Да. Команда ALTER TABLE table ALTER COLUMN column new_type изменяет тип данных столбца, а команда ALTER TABLE table DROP COLUMN column удаляет его. Изменение выполняется успешно только в том случае, если существующие данные совместимы, поэтому сначала проверьте преобразования и сделайте резервную копию.

Определите ограничения внутри команды CREATE TABLE, например, Course_ID INT PRIMARY KEY, или добавьте их позже с помощью команды ALTER TABLE ADD CONSTRAINT. первичный ключ обеспечивает уникальность, в то время как внешний ключ связывает строки между таблицами.

Временная таблица, именуемая префиксом #, создается в базе данных tempdb и автоматически удаляется по завершении сессии. Обычная таблица остается постоянной до тех пор, пока вы ее не удалите. Временные таблицы подходят для кратковременных промежуточных результатов внутри пакета или процедуры.

Да. Второй пилот GitHub Может создавать скрипты CREATE, ALTER и DROP TABLE на основе запросов на естественном языке и предлагать столбцы, типы данных и ограничения. Всегда проверяйте сгенерированную схему, ключи и возможность значений NULL перед запуском в рабочей среде.

Инструменты искусственного интеллекта и машинного обучения рекомендуют структуры таблиц, типы данных и индексы на основе примеров данных и шаблонов запросов, отмечают избыточные или слишком большие столбцы и предупреждают о рискованных операциях DROP или ALTER. Разработчик проверяет каждое предложение перед его применением.

Подведем итог этой публикации следующим образом: