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