Добавлен: 04.12.2023
Просмотров: 132
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Пример 7.
Создание и удаление таблицы. Прикрепление базы данных
Для создания таблиц используется команда CREATE TABLE. Общий формальный синтаксис команды CREATE TABLE:
После команды CREATE TABLE указывается название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Кроме того, оно не должно начинаться на "sqlite_", поскольку названия таблиц, которые начинаются на "sqlite_", зарезервированы для внутреннего пользования.
Затем после названия таблицы в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.
Создадим простейшую таблицу. Перед выполнением команды CREATE TABLE вне зависимости, что мы используем - консольный клиент sqlite3, графический клиент DB Browser for SQLite или какой-то другой клиент, вначале откроем базу данных, где мы хотим создать таблицу.
Для создания таблицы выполним следующий скрипт:
В данном случае таблица называется "Users". В ней определено три столбца: Id, Age, Name. Первые два столбца представляют идентификатор пользователя и его возраст и имеют тип INTEGER, то есть будут хранить числовые значения. Столбец "Name" представляет имя пользователя и имеет тип TEXT, то есть представляет строку. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.
И в результате выполнения этой команды будет создана таблица Users с тремя столбцами.
Создание таблицы при ее отсутствии
Если мы повторно выполним выше определенную sql-команду для создания таблицы Users, то мы столкнемся с ошибкой - ведь мы уже создали таблицу с таким названием. Но могут быть ситуации, когда мы можем точно не знать или быть не уверены, есть ли в базе данных такая таблица (например, когда мы пишем приложение на каком-нибудь языке программирования и используем базу данных, которая не нами создана). И чтобы избежать ошибки, с помощью выражения IF NOT EXISTS мы можем задать создание таблицы, если она не существует:
Если таблицы Users нет, она будет создана. Если она есть, то никаких действий не будет производиться, и ошибки не возникнет.
Прикрепление базы данных
Также мы можем прикрепить базу данных и затем в ней уже создать базу данных.
Для прикрепления базы данных применяется команда ATTACH DATABASE:
После команды ATTACH DATABASE указывается путь к файлу базы данных (в данном случае это путь "C:\sqlite\test.db"). Затем после оператора AS идет псевдоним, на который будет проецироваться база данных. То есть в коде для обращения к базе данных "C:\sqlite\test.db" будет применяться имя "test". При обращении к таблице из этой базы данных, сначала указывается псевдоним базы данных и через точку название таблицы:
Например, создадим таблицу в прикрепленной базе данных:
Для создания таблицы users в бд test.db название таблицы предваряется псевдонимом: test.users.
И после открытия базы данных test.db в ней можно будеть увидеть таблицу users.
Удаление таблиц
Для удаления таблицы применяется команда DROP TABLE, после которой указывается название удаляемой таблицы. Например, удалим таблицу users:
По аналогии с созданием таблицы, если мы попытаемся удалить таблицу, которая не существует, то мы столкнемся с ошибкой. В этом случае опять же с помощью операторов IF EXISTS проверять наличие таблицы перед удалением:
Основные операции с данными
Для добавления данных в SQLite применяется команда INSERT, которая имеет следующее формальное определение:
После выражения INSERT INTO в скобках можно указать список столбцов через запятую, в которые надо добавлять данные, и в конце после слова VALUES скобках перечисляют добавляемые для столбцов значения.
Например, пусть в базе данных SQLite есть следующая таблица users:
Добавим в эту таблицу одну строку с помощью следующего кода:
После названия таблицы указываны два стобца, в которые мы хотим выполнить добавление данные - (name, age). После оператора VALUES указаны значения для этих столбцов. Значения будут передаваться столбцам по позиции. То есть стобцу name передается строка "Tom', столбцу age - число 37. И после успешного выполнения данной команды в таблице появится новая строка:
Стоит отметить, что при добавлении данных указывать значения абсолютно для всех столбцов таблицы. Например, в примере выше не указано значение для стобца id, поскольку для данного столбца значение будет автоматически генерироваться.
Также можно можно было бы не указывать названия столбцов:
Однако в этом случае потребовалось бы указать значения для всех его столбцов, в том числе для столбца id. Причем значения передавались столбцам в том порядке, в котором они идут в таблице.
Добавление NULL
Также мы можем опускать при добавлении такие столбцы, которые поддерживают значение NULL (которые не имеют ограничения NOT NULL):
В данном случае для столбца age не указано значение, и поскольку данный столбец поддерживает значение NULL, то для него будет установлено значение NULL.
Также подобным столбцам, которые поддерживают NULL, можно явным образом передать NULL:
Значения по умолчанию
Если для столбца задано ограничение DEFAULT, то есть значение по умолчанию, то для него тоже можно не передавать значение. Например, возьмем следующую таблицу:
Теперь столбцы name и age имеют значения по умолчанию. При добавлении данных из можно опустить:
Если все столбцы поддерживают значения по умолчанию или автогенерацию или значение NULL, то с помощью ключевого слова DEFAULT можно явно указать, что в качестве значения будут использоваться значения по умолчанию:
В этом случае столбцы, для которых определено значение по умолчанию, получат это значение. Остальные столбцы получать значение NULL.