Шаг 179.
Основы языка Python.
Основы SQLite. Создание таблицы

    На этом шаге мы рассмотрим SQL-оператор, выполняющий создание таблицы.

    Создать таблицу в базе данных позволяет следующая SQL-команда:

CREATE [TEMP | TEMPORARY] TABLE [IF NOT EXISTS]
[<Название базы данных> ] <Название таблицы> (
<Название поля1> [<Тип данных>] [<Опции>],
[ .   .   .   .
<Название поляN> [<Тип данных>] [<Опции>], ]
[<Дополнительные опции>]
);

    Если после ключевого слова CREATE указано слово TEMP или TEMPORARY, то будет создана временная таблица. После закрытия базы данных такие таблицы автоматически удаляются. Пример создания временных таблиц:


Рис.1. Создание временных таблиц

    Обратите внимание на предпоследнюю строку. С помощью команды .tables мы получаем список всех таблиц в базе данных. Эта команда работает только в утилите sqlite3.exe и является сокращенной записью следующего SQL-запроса:


Рис.2. SQL-запрос, выводящий список временных таблиц

    Необязательные ключевые слова IF NOT EXISTS означают, что если таблица уже существует, то создавать таблицу заново не нужно. И если таблица уже существует, а ключевые слова IF NOT EXISTS не указаны, то будет выведено сообщение об ошибке:


Рис.3. Вывод сообщения об ошибке

    В этом примере мы использовали SQL-команду PRAGMA table_info (<Название таблицы>), позволяющую получить информацию о полях таблицы (название поля, тип данных, значение по умолчанию и др.). Как видно из результата, структура временной таблицы tmp1 не изменилась после выполнения запроса на создание таблицы с таким же названием.

    В параметрах <Название таблицы> и <Название поля> указывается идентификатор или строка. В идентификаторах лучше использовать только буквы латинского алфавита, цифры и символ подчеркивания. Имена, начинающиеся с префикса sqlite_, зарезервированы для служебного использования. Если в параметрах <Название таблицы> и <Название поля> указывается идентификатор, то название не должно содержать пробелов и не должно совпадать с ключевыми словами SQL. Например, при попытке назвать таблицу именем table будет выведено сообщение об ошибке:


Рис.4. Вывод сообщения об ошибке

    Если вместо идентификатора указать строку, то сообщения об ошибке не возникнет:


Рис.5. Сообщения об ошибке не возникает

    Кроме того, идентификатор можно разместить внутри квадратных скобок:


Рис.6. Идентификатор находится внутри квадратных скобок


   Примечание. Хотя ошибки избежать и удается, на практике не стоит использовать ключевые слова SQL в качестве названия таблицы или поля.

    Обратите внимание на первую строку примера. С помощью SQL-команды DROP TABLE <Название таблицы> мы удаляем таблицу table из базы данных. Если этого не сделать, попытка создать таблицу при наличии уже существующей одноименной таблицы приведет к выводу сообщения об ошибке. SQL-команда DROP TABLE позволяет удалить как обычную, так и временную таблицу.

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг