Статья Автор: Деникина Н.В., Деникин А.В.

Использование команды ALTER TABLE в SQLite

1. Добавление нового столбца

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

ALTER TABLE имя_таблицы ADD COLUMN имя_нового_столбца тип_данных [ограничения]; 

Примечание: Новый столбец будет добавлен в конец таблицы, и если для него не задано значение по умолчанию, все существующие строки будут иметь в этом столбце значение NULL.

Пример: Добавим новый столбец email в таблицу employees:

ALTER TABLE employees ADD COLUMN email TEXT; 

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

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

Переименование таблицы позволяет изменить её имя, сохранив при этом все данные и структуру. Команда ALTER TABLE позволяет сделать это с использованием следующего синтаксиса:

ALTER TABLE старое_имя_таблицы RENAME TO новое_имя_таблицы; 

Пример: Переименуем таблицу employees в staff:

ALTER TABLE employees RENAME TO staff; 

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

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

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

ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца; 

Пример: Переименуем столбец email в contact_email в таблице staff:

ALTER TABLE staff RENAME COLUMN email TO contact_email; 

Теперь столбец email будет называться contact_email и его данные останутся без изменений.

Ограничения команды ALTER TABLE в SQLite

SQLite имеет ряд ограничений при использовании ALTER TABLE. К примеру, нельзя:

  1. Удалить столбец из существующей таблицы напрямую.
  2. Изменить тип данных уже существующего столбца.
  3. Добавить ограничение NOT NULL, UNIQUE, CHECK или другие для уже существующего столбца.

Для выполнения этих операций нужно использовать обходной метод:

  1. Создать новую таблицу с нужной структурой.
  2. Скопировать данные из старой таблицы в новую.
  3. Удалить старую таблицу.
  4. Переименовать новую таблицу в имя старой таблицы.

Пример обходного метода для изменения столбца

Допустим, в таблице staff необходимо изменить тип данных столбца salary на REAL. В SQLite это делается через следующие шаги:

-- 1. Создаём новую таблицу с нужной структурой
CREATE TABLE new_staff (
    employee_id INTEGER PRIMARY KEY,
    first_name TEXT NOT NULL,
    last_name TEXT NOT NULL,
    hire_date DATE,
    salary REAL
);

-- 2. Переносим данные из старой таблицы
INSERT INTO new_staff (employee_id, first_name, last_name, hire_date, salary)
SELECT employee_id, first_name, last_name, hire_date, salary FROM staff;

-- 3. Удаляем старую таблицу
DROP TABLE staff;

-- 4. Переименовываем новую таблицу
ALTER TABLE new_staff RENAME TO staff; 

Заключение

Команда ALTER TABLE — мощный инструмент для изменения структуры таблицы после её создания. Однако, поскольку SQLite имеет ограниченные возможности для её использования, рекомендуется при проектировании таблиц заранее продумывать структуру и ограничения.

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать