Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы уже рассмотрели DDL команды в SQLite и синтаксис команды CREATE в SQLite3. Теперь давайте рассмотрим команду ALTER в SQLite3, а так же синтаксис и особенности использования оператора ALTER в SQLite3.

Команда ALTER в SQLite3. Оператор ALTER в SQLite3

Команда ALTER в SQLite3. Оператор ALTER в SQLite3

Синтаксис и особенности использования оператора ALTER в SQLite3

Самое простое, что есть в SQLite– команда ALTER. Здесь мы полностью рассмотрим все особенности команды ALTER в SQLite3 (оператора ALTER в SQLite3) и больше никогда не будем к ней возвращаться.

Оператор ALTER в SQLite3 умеет делать ровно две вещи: переименовывать таблицы и добавлять новые колонки. Синтаксис команды ALTER в SQLite3 представлен ниже.

 Cинтаксис команды ALTER в SQLite3. Cинтаксис оператора ALTER в SQLite3


Cинтаксис команды ALTER в SQLite3. Cинтаксис оператора ALTER в SQLite3

Приведем пример работы команды ALTER в SQLite3. Для этого создадим новую таблицу в нашей базе данных .

[php]

— Создание таблицы с именем table1 и столбцами a,b,c,d

CREATE TABLE table1 (a,b,c,d);

[/php]

Воспользуемся дот-командой .tables, чтобы посмотреть, что таблица создана и имеет имя table1. И теперь переименуем нашу таблицу при помощи команды ALTER (оператора ALTER).

[php]

— Переименовываем таблицу при помощи команды ALTER

ALTER TABLE table1 RENAME TO table2;

[/php]

Убедимся, что переименование произошло успешно, пользуясь всё той же .tables. А теперь добавим новый столбец уже в таблицу table2 при помощи команды ALTER  (оператора ALTER).

[php]

— Добавляем новый столбец к таблице table2

ALTER TABLE table2 ADD CLUMN e;

[/php]

Обратите внимание: новому столбцу можно задать характеристики, как и при создании новой таблицы. Чтобы убедиться, что создан новый столбец, воспользуйтесь командой .schema table2. Мы изучили команду ALTER в SQLite3 и рассмотрели синтаксис оператора ALTER в SQLite3

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 5 comments

  1. Лимон Reply

    То есть оператор alter, кроме как добавить столбец и поменять имя таблицы в SQlite ниче не делает, так? Например, в майскул альтер все че угодно меняет. Как мне тогда sqlite удалять столбцы или изменять ключи?

    • Кирилл Reply

      Совершенно верно! В SQLite3 команда ALTER ничего не делает, кроме как: изменяет имя таблицы и добавляет столбец. Другие операции по модификации таблицы можно делать при помощи транзакций: мы просто запускаем транзакцию, удаляем таблицу и делаем новую с той структурой, которая нам нужна. Думаю, в новой версии разработчики SQLite исправят этот недочет ALTER. Более подробно про модификацию таблиц без оператора ALTER я планирую написать когда начну подробнее рассматривать работу с таблицами.

  2. Вадим Reply

    Лимон, да, интересная реализация ALTER в SQLite, даже уж не могу сказать хорошо это или плохо. Если смотреть с практической точки зрения то большинству баз данных под управлением SQLite ALTER нужен, как собаке пятая нога, потому что обычно SQLite выбирают под небольшие проекты и базы данных там — это одна-две таблицы и ALTER в таких ситуациях ну совсем редко нужен.

  3. Alex555 Reply

    Согласен, для sqlite возможностей alter более чем достаточно, если нужно что-то большое и серьезное стоит глядеть в сторону постгри.

  4. Playermet Reply

    У вас опечатка в последнем образце кода — «ALTER TABLE table2 ADD CLUMN e;».

Leave a Comment

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

Loading Disqus Comments ...