Код
#статьи

Основы SQLite: как её установить и создать базу данных

Лайтовые базы данных для лайтовых проектов.

Иллюстрация: Оля Ежак для Skillbox Media

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

Содержание

Что такое SQLite

SQLite — это компактная встроенная система управления базами данных, для работы которой не нужен отдельный сервер. Все данные она хранит в одном файле и позволяет получать доступ к ним локально. Благодаря этому SQLite часто используют в разработке мобильных приложений и других программ, которым нужен простой способ организации и хранения данных.

SQLite работает по реляционной модели, то есть все данные в базе данных связаны в виде таблиц. Так легче увидеть взаимосвязи между разными элементами. А ещё считается, что новичкам проще работать именно с таким видом баз данных.

Рассмотрим на примере, как работает реляционная модель. Для этого представим базу данных мобильной игры, которая состоит из нескольких таблиц. В них хранится информация об игроках, доступных внутриигровых предметах, уровнях, инвентаре каждого пользователя и прогрессе. Ниже представлена схема зависимостей таблиц в базе данных.

Инфографика: Майя Мальгина для Skillbox Media

Всего в базе данных игры будет пять таблиц с данными:

  • Players — таблица с информацией об игроках. В ней хранятся ID пользователя, никнейм, адрес электронной почты, уровень, дата регистрации и количество опыта.
player_idusernameemailregistration_datelevelexperience
1PlayerOneplayer1@
mail.com
2024-01-10101500
2GamerGirlgamergirl@
mail.com
2024-02-057850
  • Items — в ней находится информация о внутриигровых предметах, которые могут получить игроки.
item_idnamedescriptionrarityeffect
1001SwordМощный мечRare+10 к атаке
1002Healing potionЗелье здоровьяCommonВосстановление 50 HP
1003ShieldЩитUncommon+5 к защите
  • Player_Inventory — данные о предметах, которые есть в инвентаре каждого игрока. Эта таблица связана с Players и Items с помощью идентификационных номеров.
player_iditem_idquantity
110011
110023
210031
  • Levels — описывает уровни, существующие в игре.
level_idnamedescriptiondifficulty
1Forest of DoomЛес с монстрамиEasy
2Lava CaveПещера с лавой и драконамиHard
  • Player_Progress — отслеживает прогресс игрока на различных уровнях. Эта таблица связана с таблицами пользователей и доступных уровней.
player_idlevel_idcompletion_timescorecompleted
1115:308000TRUE
1230:0012000FALSE
2120:007000TRUE

Данные хранят в разных таблицах для более эффективного использования ресурсов системы, чтобы устройству не приходилось при каждом запросе штудировать одну большую таблицу. Также с маленькими таблицами удобнее работать программистам.

Для чего используют SQLite

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

  • Мобильные приложения. Не всем приложениям на смартфоне нужен постоянный доступ к удалённому серверу, но многим надо уметь эффективно хранить данные в памяти устройства. Для этих целей подходит СУБД SQLite. Например, с её помощью работает приложение с заметками в вашем смартфоне.
  • IoT-устройства. Гаджеты умного дома хранят данные локально и время от времени синхронизируются со смартфоном и удалённой базой. Благодаря этому они могут дольше работать без подзарядки, ведь каждое подключение к интернету расходует энергию.
  • Браузеры. Некоторые данные браузеры сохраняют локально, чтобы быстро получать к ним доступ. Например, cookies, пользовательские настройки и кэш. Также локальной памятью пользуются некоторые веб-приложения.
  • Десктопные приложения. Если не надо обмениваться данными с сервером, их можно хранить в памяти компьютера. Текстовые редакторы, офисные приложения и различные утилиты используют SQLite.

Чем различаются SQLite и MySQL

SQLite и MySQL — это системы управления базами данных, которые используют язык структурированных запросов SQL для работы с данными. Обе системы нужны для хранения и обработки информации, но между ними есть существенные различия.

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

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

Теперь представьте, что вам надо разработать простой менеджер задач, который будет работать локально и только с одним пользователем. Так как базе данных не придётся обслуживать огромный поток запросов, можно в качестве СУБД использовать SQLite.

Преимущества и недостатки SQLite

Вот несколько достоинств этой СУБД, которые сделали её такой популярной:

  • Лёгкость. Для SQLite не нужен отдельный сервер, поэтому с ней проще работать. Разработчикам не надо настраивать сервер, обслуживать его и организовывать сетевую передачу данных.
  • Высокая скорость работы. Вся база данных SQLite хранится в одном файле, поэтому для поиска информации и сортировки нужно меньше ресурсов. Благодаря этому такие базы данных можно запускать даже на слабом железе.
  • Кросс-платформенность. SQLite работает на всех популярных операционных системах и поддерживает множество языков программирования.

Но есть и минусы:

  • Не подходит для масштабируемых систем. Если вы рассчитываете, что в будущем ваше приложение станет масштабным международным проектом, которым ежедневно будут пользоваться миллионы людей, то стоит сразу присмотреться к СУБД, которая рассчитана на такие нагрузки, например MySQL или PostgreSQL.
  • Не поддерживает многопользовательскую работу. В SQLite ограничена опция параллельной записи данных, поэтому система не подходит для одновременной работы с большим количеством пользователей.
  • Ограниченный объём данных. Изначально SQLite создавали как легковесную СУБД, поэтому она не умеет работать с десятками терабайт данных.
  • Нет разделения нагрузки. SQLite работает локально, поэтому разработчики не могут распределить нагрузку для экономии ресурсов. В любом случае все операции будут выполняться на железе устройства.

Как работать с SQLite

Теперь перейдём к практической части и рассмотрим, как установить SQLite и создать первую базу данных.

Как установить SQLite

Установочный файл SQLite можно скачать с официального сайта разработчиков. Также можно воспользоваться пакетными менеджерами. Процесс установки на различных операционных системах выглядит следующим образом:

Windows

  • Загрузите архив с бинарным файлом с официального сайта.
  • Распакуйте архив в любую удобную папку.
  • Перейдите в папку с распакованным архивом и запустите файл sqlite3.exe.

macOS

  • Откройте «Терминал» и введите команду brew install sqlite (важно до этого установить пакетный менеджер Homebrew по инструкции от разработчика).
  • После установки введите sqlite3 в «Терминале».

Linux

  • Откройте «Терминал».
  • Введите команду sudo apt-get install sqlite3 (актуально для дистрибутивов на основе Debian).
  • После установки введите команду sqlite3.

Как создать базу данных

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

sqlite3 name.db

В ней:

  • sqlite3 — обращение к программе-клиенту для работы с базой данных.
  • name.db — название базы данных с расширением .db.

Эта команда создаст файл базы данных name.db и откроет сессию SQLite для работы с ней. Если файл уже существует, SQLite просто подключится к существующей базе данных.

Важно помнить, что если к базе не было ни одного запроса, то она автоматически удалится при выходе. Поэтому введите пустой запрос и нажмите Enter, если хотите сохранить её.

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

sqlite3 .save name.db

Как работать с таблицами

Чтобы хранить данные, в базе нужно создать таблицы. Например, создадим простую таблицу users, содержащую информацию о пользователях. Пропишем названия полей таблицы и тип данных, который будет храниться в этих полях:

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL
);

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

INSERT INTO users (name, email) VALUES ('Алиса', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Пётр', 'petr@example.com');

Чтобы просмотреть данные, можно выполнить запрос:

SELECT * FROM users;

Вы увидите список всех пользователей, добавленных в базу данных.

Что в итоге

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

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована