SQLite Создание, изменение и удаление таблицы с примерами
⚡ Умное резюме
SQLite Управление таблицами осуществляется с помощью трех команд определения данных: CREATE TABLE для определения таблицы, ALTER TABLE для ее переименования, добавления или изменения столбцов и DROP TABLE для полного удаления таблицы из базы данных.

В разделах ниже показано, как создавать таблицы, изменять их структуру и удалять таблицы. SQLite3. С примерами, охватывающими команды CREATE TABLE, ALTER TABLE и DROP TABLE.
SQLite Создать таблицу
Синтаксис
Ниже приведен синтаксис оператора CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Для создания таблицы следует использовать запрос "CREATE TABLE" следующим образом:
CREATE TABLE guru99 ( Id Int, Name Varchar );
В двух скобках после имени таблицы вы определяете столбцы таблиц, каждый столбец должен иметь следующие свойства:
- Имя, имя столбца должно быть уникальным среди столбцов таблицы.
- Тип данных – тип данных столбца.
- Дополнительные ограничения для столбцов, как мы объясним в последующих разделах этого руководства.
SQLite СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ ОНА НЕ СУЩЕСТВУЕТ
Если скрипт выполняется более одного раза, обычная инструкция CREATE TABLE завершится ошибкой, если таблица уже существует, и остановится с сообщением об ошибке. SQLite Эта проблема решается с помощью необязательного условия IF NOT EXISTS, которое создает таблицу только тогда, когда она отсутствует, и ничего не делает, когда она уже существует.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Приведенное выше утверждение никогда не вызывает ошибку «таблица уже существует», что позволяет безопасно оставлять его в начале скрипта настройки или миграции.
Тот же принцип работает и в обратном направлении при удалении таблицы. Добавление условия IF EXISTS к команде DROP TABLE позволяет избежать ошибки, если таблица уже удалена:
DROP TABLE IF EXISTS guru99;
Оба пункта часто встречаются в автоматизированных скриптах, поскольку позволяют запускать один и тот же файл многократно без ручной очистки между запусками.
Отбросить таблицу
Для удаления таблицы используйте команду «DROP TABLE», за которой следует имя таблицы, следующим образом:
DROP TABLE guru99;
Изменить таблицу
Для переименования таблицы с помощью команды «ALTER TABLE» можно использовать следующий синтаксис:
ALTER TABLE guru99 RENAME TO guru100;
Чтобы убедиться, что имя таблицы изменено, можно использовать команду «.tables», чтобы отобразить список таблиц. Теперь имя таблицы должно измениться следующим образом:
Как видите, после выполнения команды «alter table» имя таблицы «guru99» изменяется на «guru100».
SQLite добавить столбцы — с помощью команды ALTER TABLE
Для добавления столбцов также можно использовать команду «ALTER TABLE»:
ALTER TABLE guru100 ADD COLUMN Age INT;
Это изменит таблицу «guru100» и добавит в неё новый столбец «Возраст».
Если вы не увидели никакого вывода, это означает, что запрос был выполнен успешно, и столбец был добавлен. Отсутствие вывода означает, что курсор будет расположен после «sqlite>» без текста после него, например, так:
Однако, чтобы убедиться, что столбец был добавлен, мы можем использовать команду «.schema guru100». Это покажет вам определение таблицы, и вы должны увидеть новый столбец, который мы только что добавили:
SQLite ALTER TABLE: Переименование и удаление столбца
Помимо добавления столбца, современные версии SQLite Также можно переименовать отдельный столбец и удалить один. Функция переименования столбца доступна с тех пор, как... SQLite 3.25, и это обновляет имя внутри определения таблицы, а также во всех индексах, триггерах и представлениях, которые ссылаются на этот столбец.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Чтобы удалить столбец, SQLite В пунктах 3.35 и последующих поддерживается прямое положение об удалении столбца:
ALTER TABLE guru100 DROP COLUMN Age;
Удалить столбец невозможно, если он является частью первичного ключа, уникального ограничения или индекса. В более старых версиях SQLite В версиях, где отсутствует функция DROP COLUMN, классический обходной путь заключается в создании новой таблицы с нужными столбцами, копировании строк из нее, удалении старой таблицы и, наконец, переименовании новой.
Как скопировать таблицу в SQLite Использование команды CREEATE TABLE AS SELECT
Иногда вам нужна копия таблицы, либо в качестве резервной копии перед рискованными изменениями, либо в качестве отправной точки для создания новой таблицы. SQLite Это делается за один шаг с помощью команды CREATE TABLE AS SELECT, которая создает новую таблицу, столбцы которой берутся из запроса, и заполняет ее строками, возвращенными этим запросом.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Новая таблица «guru100_backup» получает те же столбцы и все строки из таблицы «guru100». Чтобы скопировать только некоторые строки, добавьте условие WHERE к запросу SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Важно помнить, что команда CREATE TABLE AS SELECT копирует имена столбцов, типы и данные, но не копирует первичные ключи, другие ограничения или индексы. Вам необходимо добавить их в новую таблицу самостоятельно, если копия должна соблюдать те же правила, что и исходная.
SQLite Вставить значение в таблицу
Для вставки значений в таблицу используется оператор «INSERT INTO» следующим образом:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Вы можете опустить имена столбцов после имени таблицы и написать его следующим образом:
INSERT INTO Tablename VALUES(value1, value2, ….);
В таком случае, если вы опускаете имена столбцов в таблицах, количество вставленных значений должно совпадать с количеством столбцов таблицы. Затем каждое значение будет вставлено в столбец соответствия. Например, для следующего оператора вставки:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Результат этого утверждения будет следующим:
- В столбец «id» будет вставлено значение 1.
- Значение «Майк» будет вставлено в столбец «Имя», и
- В столбец «Возраст» будет вставлено значение 25.
INSERT… DEFAULT VALUES оператор
Вы можете сразу заполнить таблицу значениями по умолчанию для столбцов следующим образом:
INSERT INTO Tablename DEFAULT VALUES;
Если столбец не допускает значений NULL или значений по умолчанию, вы получите ошибку «Не выполняется ограничение NOT NULL» для этого столбца. Вот пример:





