e SQLite: что это за база данных и как с ней работать
Категории Облако

Что такое база данных SQLite и как с ней работать

База данных — это упорядоченная информация с определенной схемой хранения. Как правило, эти данные размещены в таблицах, а таблицы входят в состав базы. Для работы с БД нужны специальные программы — системы управления базами данных (СУБД).

Одна из самых популярных программ — MySQL. Это реляционная СУБД со свободным распространением. Однако существует ее простой и легковесный аналог, который называется SQLite. Об этой СУБД мы расскажем в статье.

Что такое SQLite и как она работает

SQLite — это система управления базами данных, написанная на языке C. Она не имеет сервера и хранит созданные базы данных в пределах одного локального компьютера. SQLite имеет открытый исходный код.

SQLite является встраиваемой СУБД — то есть системой, которая не использует логику ‭«клиент-сервер» в своей основе. Движок этой СУБД входит в состав программы и представляет собой библиотеку. В свою очередь, приложение взаимодействует с этой библиотекой при помощи вызовов функций API. Вся информация о базах данных SQLite хранится в одном файле. Этот файл хранится на устройстве, которым вы пользуетесь в момент создания базы данных.

SQLite подходит для многих популярных языков программирования, таких как:

  • PHP,
  • Python,
  • C++,
  • C#, 
  • Java,
  • Perl,
  • Swift и многих других.
Источник: Shutterstock. Система управления базами данных SQLite не имеет сервера и хранит созданные базы данных в пределах одного локального компьютера

Отличие SQLite от MySQL

MySQL и SQLite имеют схожие названия, но значительно отличаются друг от друга. Разница заключается в типе архитектуры.

MySQL — реляционная система управления базами данных с клиент-серверной архитектурой. Что касается SQLite, она не имеет сервера и хранит информацию в одном файле.

Предположим, что вам предстоит перенос базы данных на другое устройство. При работе с MySQL нужно выполнить следующие действия:

  1. Найти все файлы, которые имеют отношение к БД.
  2. Перенести базу и все ее файлы на другое устройство.
  3. Указать новые пути к БД.
  4. Прописать настройки для подключения к базе данных.
  5. Проверить, насколько корректно прошел перенос.

Также можно встретить другой алгоритм:

  1. Сохранить дамп базы данных.
  2. Загрузить дамп на новое устройство.
  3. Создать пользователя и выдать ему права доступа к БД.
  4. Проверить корректность переноса.

В случае с SQLite подобный перенос происходит проще, так как достаточно выполнить два действия:

  1. Перенести файл БД с одного устройства на другое.
  2. В коде сайта или приложения прописать новый путь к базе данных.

Где применяется 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 — графический редактор и др.
Источник: Shutterstock. SQLite имеет открытый исходный код

Преимущества и недостатки 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:

  1. На Linux.
  2. На Windows. 

О каждом из них подробно расскажем ниже.

Linux

В качестве примера мы рассмотрим установку на ОС Ubuntu, также она применима для Debian.

Чтобы установить SQLite:

  1. Подключитесь к серверу по протоколу SSH.
  2. Обновите пакеты. Для этого поочередно выполните команды:
sudo apt update
sudo apt upgrade
  1. Установите SQLite:
sudo apt install sqlite3 
  1. Проверьте версию установленной СУБД:
sqlite3 --version

Вывод будет иметь следующий вид:

3.38.3 2022-04-27 12:03:15 872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1

После установки можно запустить консоль SQLite и начать работу.

Windows 

SQLite на Windows имеет отличительную особенность: фактически она не требует установки. Чтобы начать работу с СУБД, достаточно скачать архив с программой, распаковать его в отдельную папку и запустить консоль. Эти действия мы описали ниже как инструкцию по установке.

Чтобы установить SQLite:

  1. Подключитесь к серверу по протоколу RDP.
  2. Перейдите на официальный сайт SQLite.
  3. Загрузите архив с названием Windows tools:
qlite.org
  1. Создайте новую папку для хранения файлов SQLite. В нашем примере она размещена по пути C:\Program Files\SQLite.
  2. Распакуйте скачанный архив в папку, которую вы создали на предыдущем шаге.
  3. Перейдите в папку SQLite и запустите программу sqlite3.exe
Распаковка архива SQLite

После этого откроется консоль SQLite, в которой вы можете создать первую базу данных. Об основных консольных командах для работы с БД мы рассказали ниже.

Работа с базами данных в SQLite

Запуск консоли

Чтобы запустить консоль SQLite, выполните команду:

sqlite3

Создание базы данных

Для создания новой базы данных введите следующее:

db_name.db

Вместо db_name укажите желаемое название базы данных.

Обратите внимание: база данных сохраняется в системе только после того, как она выполнит какой-либо запрос. Если вы планируете заполнить созданную БД позже, направьте к ней пустой запрос. Он имеет следующий вид:

;

Создание таблицы

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

CREATE TABLE students_marks (id integer PRIMARY KEY,
    mark integer,
    surname text,
    name text);

Где:

  • students_marks — имя таблицы;
  • id, mark, surname, name — названия столбцов новой таблицы;
  • integer, text — типы данных, которые будут храниться в столбцах.

Добавление данных в таблицу

Чтобы добавить информацию в таблицу, в консоль введите следующее:

INSERT INTO students_marks (mark, surname, name)
VALUES (5, Ivanov, Ivan);

Где:

  • students_marks — название таблицы;
  • mark, surname, name — имена столбцов, в которые нужны внести данные;
  • 5, Ivanov, Ivan — значения, которые нужны внести в ячейки.

Просмотр таблицы

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

SELECT * FROM students_marks;

Вместо students_marks укажите название таблицы.

Переименование таблицы

Чтобы переименовать таблицу, в консоли введите команду:

ALTER TABLE students_marks RENAME TABLE new_students_marks

Где:

  • students_marks — текущее название таблицы,
  • new_students_marks — новое название таблицы.

Добавление столбца

Для того чтобы добавить новый столбец в таблицу, введите следующую команду:

ALTER TABLE students_marks ADD COLUMN patronymic text

Где:

  • students_marks — название таблицы,
  • patronymic — название нового столбца,
  • text — тип данных в новом столбце.

Переименование столбца

Чтобы переименовать столбец, выполните следующую команду:

ALTER TABLE students_marks RENAME COLUMN patronymic TO second_name

Где:

  • students_marks — название таблицы,
  • patronymic — текущее имя столбца,
  • second_name — новое имя столбца.

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

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

ALTER TABLE students_marks DROP COLUMN patronymic

Где:

  • students_marks — название таблицы,
  • patronymic — имя столбца для удаления,

Закрытие консоли

Если вам нужно закончить работу и выйти из консоли, выполните команду:

.exit

Мы подробно описали SQLite: принципы работы, особенности и процедуру установки. Несмотря на большое количество преимуществ, эта СУБД подходит не для всех приложений: рекомендуем выбирать ее для однопользовательских приложений, ресурсов с низким и средним трафиком, а также для программ с выполнением прямых операций чтения и записи на устройство.

Похожие публикации

Для чего бизнесу нужны ваучеры

Словом «ваучер», кажется, можно пугать людей старшего поколения в России: слишком уж серьезной оказалась травма…

15 часов назад

Как работать ИП на НПД: особенности системы налогообложения

Налог на профессиональный доход (НПД) ― это универсальный налоговый режим, предназначенный как для физических лиц,…

19 часов назад

Что такое транзакция: виды и особенности движения денег

Ежедневно мы совершаем десятки транзакций, даже не задумываясь об этом: приложить карту к автомату с…

20 часов назад

Отказоустойчивая ИТ-инфраструктура, ускоряющая 1С на 30%: опыт логистического сервиса Boxberry

Рассказываем, как помогли Boxberry получить новое качество облачного сервиса под 1С платформу, не увеличивая бюджет. …

2 дня назад

Что такое информационная безопасность

Угрозы для информационной безопасности могут возникать не только извне, но, наример, и внутри компании, а…

2 недели назад

Для чего нужен межсетевой экран и как он работает

Разберемся, что такое межсетевой экран (иначе называется firewall или файрвол, а также brandmauer или брандмайэр),…

3 недели назад