Что такое база данных 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 database встроена в следующие программы:

  • 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. Обновите пакеты. Для этого поочередно выполните команды:
  1. Установите SQLite:
  1. Проверьте версию установленной СУБД:

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

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

Windows

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

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

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

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

Как пользоваться SQLite

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

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

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

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

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

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

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

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

Где:

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

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

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

Где:

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

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

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

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

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

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

Где:

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

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

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

Где:

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

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

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

Где:

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

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

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

Где:

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

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

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

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

Кейс Stworka: как создать ERP в облаке для 5000 строительных компаний

А также запустить маркетплейс для строителей и обрабатывать 1,5 млн артикулов ежедневно. Рассказываем, как компания Stworka развернула IT-инфраструктуру в Облаке...
Read More

Системы контроля версий: зачем они нужны и как их использовать

Мир разработки ПО издалека кажется непонятным и запутанным, но существуют инструменты, которые значительно упрощают жизнь и делают работу более эффективной....
Read More

Соглашение об уровне обслуживания (SLA)

Поговорим о документе, который может серьезно повлиять на успех проекта, будь то интернет-магазин, SaaS-платформа или любой другой онлайн-сервис. Речь пойдет...
Read More

Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений...
Read More

Полный обзор NoSQL: особенности и использование

Развитие интернета диктует новые правила в разработке. Традиционные базы данных, которые называются реляционными (RDBMS), не справляются с задачами, которые требуют...
Read More

Как использовать DataSphere. Датасеты в DataSphere

Данные нужны в любой сфере: магазины анализируют продажи, в медцентры — истории болезней, ученые — результаты экспериментов. Чем больше информации,...
Read More

Основные задачи машинного обучения: классификация, регрессия, кластеризация и уменьшение размерности

Machine Learning ― это уже часть нашей повседневной жизни. От рекомендаций фильмов на Кинопоиске до спам-фильтров в почте — за...
Read More

Обзор CLI: командная строка и ее возможности

Когда были созданы первые компьютеры, операционной системой на них можно было управлять только при помощи ввода текстовых команд. Со временем...
Read More

Шардирование в базах данных: обзор концепции

В условиях стремительного роста объемов данных и увеличения нагрузок на информационные системы эффективность их масштабирования становится критически важной. Одним из...
Read More

Графический процессор (GPU): что это, для кого, разновидности

Дизайнерам, проектировщикам и разработчикам требуются мощные вычислительные ресурсы для работы. Обычный процессор (CPU) не справится с такими задачами, как обработка...
Read More