Что такое база данных SQLite и как с ней работать
База данных — это упорядоченная информация с определенной схемой хранения. Как правило, эти данные размещены в таблицах, а таблицы входят в состав базы. Для работы с БД нужны специальные программы — системы управления базами данных (СУБД).
Одна из самых популярных программ — MySQL. Это реляционная СУБД со свободным распространением. Однако существует ее простой и легковесный аналог, который называется SQLite. Об этой СУБД мы расскажем в статье.
Что такое SQLite и как она работает
SQLite — это система управления базами данных, написанная на языке C. Она не имеет сервера и хранит созданные базы данных в пределах одного локального компьютера. SQLite имеет открытый исходный код.
SQLite является встраиваемой СУБД — то есть системой, которая не использует логику «клиент-сервер» в своей основе. Движок этой СУБД входит в состав программы и представляет собой библиотеку. В свою очередь, приложение взаимодействует с этой библиотекой при помощи вызовов функций API. Вся информация о базах данных SQLite хранится в одном файле. Этот файл хранится на устройстве, которым вы пользуетесь в момент создания базы данных.
SQLite подходит для многих популярных языков программирования, таких как:
- PHP,
- Python,
- C++,
- C#,
- Java,
- Perl,
- Swift и многих других.
Отличие SQLite от MySQL
MySQL и SQLite имеют схожие названия, но значительно отличаются друг от друга. Разница заключается в типе архитектуры.
MySQL — реляционная система управления базами данных с клиент-серверной архитектурой. Что касается SQLite, она не имеет сервера и хранит информацию в одном файле.
Предположим, что вам предстоит перенос базы данных на другое устройство. При работе с MySQL нужно выполнить следующие действия:
- Найти все файлы, которые имеют отношение к БД.
- Перенести базу и все ее файлы на другое устройство.
- Указать новые пути к БД.
- Прописать настройки для подключения к базе данных.
- Проверить, насколько корректно прошел перенос.
Также можно встретить другой алгоритм:
- Сохранить дамп базы данных.
- Загрузить дамп на новое устройство.
- Создать пользователя и выдать ему права доступа к БД.
- Проверить корректность переноса.
В случае с SQLite подобный перенос происходит проще, так как достаточно выполнить два действия:
- Перенести файл БД с одного устройства на другое.
- В коде сайта или приложения прописать новый путь к базе данных.
Где применяется SQLite
SQLite используется во многих популярных приложениях: веб-браузерах, музыкальных плеерах, графических редакторах и других. Такому распространению способствовало гибкое встраивание СУБД и простота работы с ней.
SQLite встроена в следующие программы:
- Adobe Integrated Runtime — среда для запуска приложений,
- Qt — фреймворк для разработки на C++,
- Mozilla Firefox — веб-браузер,
- Mozilla Thunderbird — почтовый клиент,
- SQLite Manager — приложение для работы с БД в Google Chrome,
- Viber — мессенджер,
- Skype — программа для видеосвязи и прочие.
Также существует ПО, в котором нет SQLite по умолчанию, однако есть возможность подключить ее в качестве формата хранения данных. SQLite поддерживается в следующем ПО:
- 1С:Предприятие версий 7.7 и 8.3 — платформа для автоматизации работы предприятия,
- Google Chrome, Opera и Safari — веб-браузеры,
- Nextcloud — набор программ для создания облачного хранилища,
- Banshee — музыкальный и видеоплеер,
- FAR Manager — консольный менеджер файлов,
- Adobe Photoshop Lightroom — графический редактор и др.
Преимущества и недостатки SQLite
SQLite — система управления базами данных, которая часто используется для компьютерных и мобильных программ, а также для веб-приложений.
Преимущества SQLite
Эта СУБД популярна за счет своих преимуществ:
- высокая скорость работы. Так как SQLite имеет простую архитектуру, все операции внутри СУБД отрабатываются быстро. Кроме того, ее компоненты уже включены в приложение — это также ускоряет работу СУБД;
- надежность. Каждый компонент SQLite был протестирован разработчиками. Это значит, что риск некорректной работы системы достаточно низок;
- минималистичный функционал. В СУБД встроен минимальный набор необходимых функций: то есть тех, которые пригодятся практически для всех проектов. Если вам нужны дополнительные опции, можно использовать как расширения SQLite, так и сторонние программы;
- однофайловая архитектура. Все таблицы, их связи и индексы базы данных хранятся в одном файле на том же устройстве, что и программа. Перед записью изменений файл блокируется для сторонних процессов.
- простая настройка. Весь базовый функционал СУБД встроен в решение «из коробки». Также SQLite не требует длительной установки и настройки — в этом вы сможете убедиться в следующем разделе;
- кроссплатформенность. SQLite можно установить на большинство популярных операционных систем. Среди доступных систем — Windows, macOS и ОС семейства Linux;
- автономность. SQLite не зависит от сторонних программ, фреймворков и библиотек. СУБД может работать без дополнительных расширений и даже доступа к интернету;
- малое потребление ресурсов. Так как SQLite — легковесная СУБД (чаще всего файл БД занимает не более 1 Мб), то для корректной работы системы подойдет оборудование практически любой мощности;
- открытый код. SQLite распространяется свободно и имеет открытый исходный код. Благодаря этому вы можете бесплатно пользоваться СУБД и модифицировать ее по своему усмотрению.
Недостатки SQLite
Однако SQLite обладает и недостатками, такими как:
- слабая отказоустойчивость и масштабируемость. В SQLite нет встроенных механизмов отказоустойчивости и масштабируемости: например, репликации;
- отсутствие встроенной поддержки Unicode. Unicode — это один из самых популярных стандартов кодирования. Он включает в себя символы практически всех алфавитов мира, а также цифры. По умолчанию Unicode не добавлен в состав SQLite. Если вы планируете работать с символами национальных алфавитов (например, с кириллицей) потребуется добавление Юникода в качестве расширения;
- ограниченная поддержка типов данных. SQLite по умолчанию поддерживает четыре типа данных: TEXT (текст), INTEGER (целое число), REAL (дробь) и BLOB (двоичное значение), а также NULL — то есть отсутствие данных. Если вам потребуются другие типы, их нужно будет создать самостоятельно;
- ограничения многопоточности. Многопоточность — это выполнение нескольких процессов одновременно. SQLite поддерживает многопоточность лишь частично: чтение данных из базы могут выполнять несколько потоков, а записывать данные — только один.
Как установить SQLite
Рассмотрим два варианта установки СУБД SQLite:
- На Linux.
- На Windows.
О каждом из них подробно расскажем ниже.
Linux
В качестве примера мы рассмотрим установку на ОС Ubuntu, также она применима для Debian.
Чтобы установить SQLite:
- Подключитесь к серверу по протоколу SSH.
- Обновите пакеты. Для этого поочередно выполните команды:
1 2 |
sudo apt update sudo apt upgrade |
- Установите SQLite:
1 |
sudo apt install sqlite3 |
- Проверьте версию установленной СУБД:
1 |
sqlite3 --version |
Вывод будет иметь следующий вид:
1 |
3.38.3 2022-04-27 12:03:15 872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1 |
После установки можно запустить консоль SQLite и начать работу.
Windows
SQLite на Windows имеет отличительную особенность: фактически она не требует установки. Чтобы начать работу с СУБД, достаточно скачать архив с программой, распаковать его в отдельную папку и запустить консоль. Эти действия мы описали ниже как инструкцию по установке.
Чтобы установить SQLite:
- Подключитесь к серверу по протоколу RDP.
- Перейдите на официальный сайт SQLite.
- Загрузите архив с названием Windows tools:
- Создайте новую папку для хранения файлов SQLite. В нашем примере она размещена по пути C:\Program Files\SQLite.
- Распакуйте скачанный архив в папку, которую вы создали на предыдущем шаге.
- Перейдите в папку SQLite и запустите программу sqlite3.exe:
После этого откроется консоль SQLite, в которой вы можете создать первую базу данных. Об основных консольных командах для работы с БД мы рассказали ниже.
Работа с базами данных в SQLite
Запуск консоли
Чтобы запустить консоль SQLite, выполните команду:
1 |
sqlite3 |
Создание базы данных
Для создания новой базы данных введите следующее:
1 |
db_name.db |
Вместо db_name укажите желаемое название базы данных.
Обратите внимание: база данных сохраняется в системе только после того, как она выполнит какой-либо запрос. Если вы планируете заполнить созданную БД позже, направьте к ней пустой запрос. Он имеет следующий вид:
1 |
; |
Создание таблицы
Для создания таблицы в базе данных введите следующую информацию:
1 2 3 4 |
CREATE TABLE students_marks (id integer PRIMARY KEY, mark integer, surname text, name text); |
Где:
- students_marks — имя таблицы;
- id, mark, surname, name — названия столбцов новой таблицы;
- integer, text — типы данных, которые будут храниться в столбцах.
Добавление данных в таблицу
Чтобы добавить информацию в таблицу, в консоль введите следующее:
1 2 |
INSERT INTO students_marks (mark, surname, name) VALUES (5, Ivanov, Ivan); |
Где:
- students_marks — название таблицы;
- mark, surname, name — имена столбцов, в которые нужны внести данные;
- 5, Ivanov, Ivan — значения, которые нужны внести в ячейки.
Просмотр таблицы
Для просмотра таблицы используйте команду:
1 |
SELECT * FROM students_marks; |
Вместо students_marks укажите название таблицы.
Переименование таблицы
Чтобы переименовать таблицу, в консоли введите команду:
1 |
ALTER TABLE students_marks RENAME TABLE new_students_marks |
Где:
- students_marks — текущее название таблицы,
- new_students_marks — новое название таблицы.
Добавление столбца
Для того чтобы добавить новый столбец в таблицу, введите следующую команду:
1 |
ALTER TABLE students_marks ADD COLUMN patronymic text |
Где:
- students_marks — название таблицы,
- patronymic — название нового столбца,
- text — тип данных в новом столбце.
Переименование столбца
Чтобы переименовать столбец, выполните следующую команду:
1 |
ALTER TABLE students_marks RENAME COLUMN patronymic TO second_name |
Где:
- students_marks — название таблицы,
- patronymic — текущее имя столбца,
- second_name — новое имя столбца.
Удаление столбца
Для удаления столбца из таблицы используйте команду:
1 |
ALTER TABLE students_marks DROP COLUMN patronymic |
Где:
- students_marks — название таблицы,
- patronymic — имя столбца для удаления,
Закрытие консоли
Если вам нужно закончить работу и выйти из консоли, выполните команду:
1 |
.exit |
Мы подробно описали SQLite: принципы работы, особенности и процедуру установки. Несмотря на большое количество преимуществ, эта СУБД подходит не для всех приложений: рекомендуем выбирать ее для однопользовательских приложений, ресурсов с низким и средним трафиком, а также для программ с выполнением прямых операций чтения и записи на устройство.