Часть 10.4 Добавление данных и строк в таблицы баз данных SQLite
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Работать…
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы уже рассмотрели DDL команды в SQLite и синтаксис команды CREATE в SQLite3. Теперь давайте рассмотрим команду ALTER в SQLite3, а так же синтаксис и особенности использования оператора ALTER в SQLite3.
Самое простое, что есть в SQLite– команда ALTER. Здесь мы полностью рассмотрим все особенности команды ALTER в SQLite3 (оператора ALTER в SQLite3) и больше никогда не будем к ней возвращаться.
Оператор ALTER в SQLite3 умеет делать ровно две вещи: переименовывать таблицы и добавлять новые колонки. Синтаксис команды 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
То есть оператор alter, кроме как добавить столбец и поменять имя таблицы в SQlite ниче не делает, так? Например, в майскул альтер все че угодно меняет. Как мне тогда sqlite удалять столбцы или изменять ключи?
Совершенно верно! В SQLite3 команда ALTER ничего не делает, кроме как: изменяет имя таблицы и добавляет столбец. Другие операции по модификации таблицы можно делать при помощи транзакций: мы просто запускаем транзакцию, удаляем таблицу и делаем новую с той структурой, которая нам нужна. Думаю, в новой версии разработчики SQLite исправят этот недочет ALTER. Более подробно про модификацию таблиц без оператора ALTER я планирую написать когда начну подробнее рассматривать работу с таблицами.
Лимон, да, интересная реализация ALTER в SQLite, даже уж не могу сказать хорошо это или плохо. Если смотреть с практической точки зрения то большинству баз данных под управлением SQLite ALTER нужен, как собаке пятая нога, потому что обычно SQLite выбирают под небольшие проекты и базы данных там — это одна-две таблицы и ALTER в таких ситуациях ну совсем редко нужен.
Согласен, для sqlite возможностей alter более чем достаточно, если нужно что-то большое и серьезное стоит глядеть в сторону постгри.
У вас опечатка в последнем образце кода — «ALTER TABLE table2 ADD CLUMN e;».