Определение структуры данных в SQLite

Создание и удаление таблицы. Прикрепление базы данных

Последнее обновление: 26.11.2021

Для создания таблиц используется команда CREATE TABLE. Общий формальный синтаксис команды CREATE TABLE:

CREATE TABLE название_таблицы
(название_столбца1 тип_данных атрибуты_столбца1, 
 название_столбца2 тип_данных атрибуты_столбца2,
 ................................................
 название_столбцаN тип_данных атрибуты_столбцаN,
 атрибуты_уровня_таблицы
)

После команды CREATE TABLE указывается название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Кроме того, оно не должно начинаться на "sqlite_", поскольку названия таблиц, которые начинаются на "sqlite_", зарезервированы для внутреннего пользования.

Затем после названия таблицы в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.

Создадим простейшую таблицу. Перед выполнением команды CREATE TABLE вне зависимости, что мы используем - консольный клиент sqlite3, графический клиент DB Browser for SQLite или какой-то другой клиент, вначале откроем базу данных, где мы хотим создать таблицу.

Для создания таблицы выполним следующий скрипт:

CREATE TABLE Users
(
    Id INTEGER,
	Name TEXT,
    Age INTEGER
);

В данном случае таблица называется "Users". В ней определено три столбца: Id, Age, Name. Первые два столбца представляют идентификатор пользователя и его возраст и имеют тип INTEGER, то есть будут хранить числовые значения. Столбец "Name" представляет имя пользователя и имеет тип TEXT, то есть представляет строку. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.

И в результате выполнения этой команды будет создана таблица Users с тремя столбцами.

Create TABLE в SQLite

Создание таблицы при ее отсутствии

Если мы повторно выполним выше определенную sql-команду для создания таблицы Users, то мы столкнемся с ошибкой - ведь мы уже создали таблицу с таким названием. Но могут быть ситуации, когда мы можем точно не знать или быть не уверены, есть ли в базе данных такая таблица (например, когда мы пишем приложение на каком-нибудь языке программирования и используем базу данных, которая не нами создана). И чтобы избежать ошибки, с помощью выражения IF NOT EXISTS мы можем задать создание таблицы, если она не существует:

CREATE TABLE IF NOT EXISTS Users
(
    Id INTEGER,
	Name TEXT,
    Age INTEGER
);

Если таблицы Users нет, она будет создана. Если она есть, то никаких действий не будет производиться, и ошибки не возникнет.

Прикрепление базы данных

Также мы можем прикрепить базу данных и затем в ней уже создать базу данных.

Для прикрепления базы данных применяется команда ATTACH DATABASE:

ATTACH DATABASE 'C:\sqlite\test.db' AS test;

После команды ATTACH DATABASE указывается путь к файлу базы данных (в данном случае это путь "C:\sqlite\test.db"). Затем после оператора AS идет псевдоним, на который будет проецироваться база данных. То есть в коде для обращения к базе данных "C:\sqlite\test.db" будет применяться имя "test". При обращении к таблице из этой базы данных, сначала указывается псевдоним базы данных и через точку название таблицы:

псевдоним_бд.таблица

Например, создадим таблицу в прикрепленной базе данных:

ATTACH DATABASE 'C:\sqlite\test.db' AS test;
CREATE TABLE test.users
(
    id INTEGER,
	name TEXT,
    age INTEGER
);

Для создания таблицы users в бд test.db название таблицы предваряется псевдонимом: test.users.

ATTACH DATABASE и прикрепление базы данных в SQLite

И после открытия базы данных test.db в ней можно будеть увидеть таблицу users.

Удаление таблиц

Для удаления таблицы применяется команда DROP TABLE, после которой указывается название удаляемой таблицы. Например, удалим таблицу users:

DROP TABLE users;

По аналогии с созданием таблицы, если мы попытаемся удалить таблицу, которая не существует, то мы столкнемся с ошибкой. В этом случае опять же с помощью операторов IF EXISTS проверять наличие таблицы перед удалением:

DROP TABLE IF EXISTS users;
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850