SQLite: что это, для чего её используют, как работать с базой данных / Skillbox Media
Лайтовые базы данных для лайтовых проектов.
Содержание:
Курс с трудоустройством: «Веб-разработчик»
Узнать большеSQLite — это лёгкая и быстрая система управления базами данных, которая хранит данные локально и не нагружает систему. В этой статье рассказываем о преимуществах этой СУБД, показываем, как её установить и создать свою первую легковесную базу данных.
Содержание
- Что такое SQLite
- Для чего её используют
- Чем различаются SQLite и MySQL
- Преимущества и недостатки SQLite
- Как работать с SQLite
Что такое SQLite
SQLite — это компактная встроенная система управления базами данных, для работы которой не нужен отдельный сервер. Все данные она хранит в одном файле и позволяет получать доступ к ним локально. Благодаря этому SQLite часто используют в разработке мобильных приложений и других программ, которым нужен простой способ организации и хранения данных.
SQLite работает по реляционной модели, то есть все данные в базе данных связаны в виде таблиц. Так легче увидеть взаимосвязи между разными элементами. А ещё считается, что новичкам проще работать именно с таким видом баз данных.
Читайте также:
База данных: что это такое и зачем она нужна
Рассмотрим на примере, как работает реляционная модель. Для этого представим базу данных мобильной игры, которая состоит из нескольких таблиц. В них хранится информация об игроках, доступных внутриигровых предметах, уровнях, инвентаре каждого пользователя и прогрессе. Ниже представлена схема зависимостей таблиц в базе данных.
Всего в базе данных игры будет пять таблиц с данными:
- Players — таблица с информацией об игроках. В ней хранятся ID пользователя, никнейм, адрес электронной почты, уровень, дата регистрации и количество опыта.
- Items — в ней находится информация о внутриигровых предметах, которые могут получить игроки.
- Player_Inventory — данные о предметах, которые есть в инвентаре каждого игрока. Эта таблица связана с Players и Items с помощью идентификационных номеров.
- Levels — описывает уровни, существующие в игре.
- Player_Progress — отслеживает прогресс игрока на различных уровнях. Эта таблица связана с таблицами пользователей и доступных уровней.
Данные хранят в разных таблицах для более эффективного использования ресурсов системы, чтобы устройству не приходилось при каждом запросе штудировать одну большую таблицу. Также с маленькими таблицами удобнее работать программистам.
Для чего используют SQLite
SQLite обычно используют, когда данных немного и важно, чтобы доступ к ним можно было получить, даже если нельзя подключиться к удалённому серверу. Например, такие базы используют в следующих системах:
- Мобильные приложения. Не всем приложениям на смартфоне нужен постоянный доступ к удалённому серверу, но многим надо уметь эффективно хранить данные в памяти устройства. Для этих целей подходит СУБД SQLite. Например, с её помощью работает приложение с заметками в вашем смартфоне.
- IoT-устройства. Гаджеты умного дома хранят данные локально и время от времени синхронизируются со смартфоном и удалённой базой. Благодаря этому они могут дольше работать без подзарядки, ведь каждое подключение к интернету расходует энергию.
- Браузеры. Некоторые данные браузеры сохраняют локально, чтобы быстро получать к ним доступ. Например, cookies, пользовательские настройки и кэш. Также локальной памятью пользуются некоторые веб-приложения.
- Десктопные приложения. Если не надо обмениваться данными с сервером, их можно хранить в памяти компьютера. Текстовые редакторы, офисные приложения и различные утилиты используют SQLite.
Чем различаются SQLite и MySQL
SQLite и MySQL — это системы управления базами данных, которые используют язык структурированных запросов SQL для работы с данными. Обе системы нужны для хранения и обработки информации, но между ними есть существенные различия.
Одно из главных различий заключается в том, что SQLite можно запускать локально на устройстве, а для MySQL нужен отдельный сервер, к которому устройство будет обращаться за данными. Поэтому SQLite подходит для небольших приложений, а MySQL используют для высоконагруженных систем со множеством пользователей.
Представьте, что вы разрабатываете социальную сеть с сотнями тысяч пользователей, которые каждый день обмениваются сообщениями, публикуют фотографии и созваниваются друг с другом. Для такого проекта важно, чтобы данные доходили без задержек, а база данных выдерживала огромное количество одновременных запросов. В этом случае для реализации задуманного лучше использовать MySQL.
Теперь представьте, что вам надо разработать простой менеджер задач, который будет работать локально и только с одним пользователем. Так как базе данных не придётся обслуживать огромный поток запросов, можно в качестве СУБД использовать SQLite.
Читайте также:
Какие базы данных существуют и для чего их используют: SQL, NoSQL, OLAP
Преимущества и недостатки SQLite
Вот несколько достоинств этой СУБД, которые сделали её такой популярной:
- Лёгкость. Для SQLite не нужен отдельный сервер, поэтому с ней проще работать. Разработчикам не надо настраивать сервер, обслуживать его и организовывать сетевую передачу данных.
- Высокая скорость работы. Вся база данных SQLite хранится в одном файле, поэтому для поиска информации и сортировки нужно меньше ресурсов. Благодаря этому такие базы данных можно запускать даже на слабом железе.
- Кросс-платформенность. SQLite работает на всех популярных операционных системах и поддерживает множество языков программирования.
Но есть и минусы:
- Не подходит для масштабируемых систем. Если вы рассчитываете, что в будущем ваше приложение станет масштабным международным проектом, которым ежедневно будут пользоваться миллионы людей, то стоит сразу присмотреться к СУБД, которая рассчитана на такие нагрузки, например MySQL или PostgreSQL.
- Не поддерживает многопользовательскую работу. В 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 — название базы данных с расширением .db.
Эта команда создаст файл базы данных name.db и откроет сессию SQLite для работы с ней. Если файл уже существует, SQLite просто подключится к существующей базе данных.
Важно помнить, что если к базе не было ни одного запроса, то она автоматически удалится при выходе. Поэтому введите пустой запрос и нажмите Enter, если хотите сохранить её.
Если вы вносили данные, то сохранить изменения можно с помощью команды .save с указанием имени базы:
Читайте также:
Что такое SQL: как устроен, зачем нужен и как с ним работать
Чтобы хранить данные, в базе нужно создать таблицы. Например, создадим простую таблицу users, содержащую информацию о пользователях. Пропишем названия полей таблицы и тип данных, который будет храниться в этих полях:
Теперь добавим несколько записей в таблицу:
Чтобы просмотреть данные, можно выполнить запрос:
Вы увидите список всех пользователей, добавленных в базу данных.
Читайте также:
SQL-запросы: основные команды для управления базами данных
Что в итоге
- SQLite — это встраиваемая реляционная СУБД, которая основана на языке структурированных запросов SQL. «Встраиваемая» означает, что она работает прямо внутри вашего приложения, а не на отдельном сервере.
- SQLite применяют, когда можно обойтись без сложной серверной инфраструктуры. Например, в мобильных приложениях, устройствах умного дома и браузерах.
- Базы данных, созданные в SQLite, занимают мало места, не требуют сложной настройки и постоянного обслуживания, но их нельзя масштабировать и использовать в сложных проектах.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!
Читайте также:
- Что такое SQL: как устроен, зачем нужен и как с ним работать
- «Мне 47, а я всё думаю, какой бы ещё IT-курс пройти»: путь топ-менеджера в data science
- SQL-запросы: основные команды для управления базами данных