Главная Веб-разработка Основы SQLite: как её установить и создать базу данных

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

от admin

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

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

Что такое SQLite

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

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

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

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

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

  • Players — таблица с информацией об игроках. В ней хранятся ID пользователя, никнейм, адрес электронной почты, уровень, дата регистрации и количество опыта.
player_id username email registration_date level experience
1 PlayerOne player1@
mail.com
2024-01-10 10 1500
2 GamerGirl gamergirl@
mail.com
2024-02-05 7 850
  • Items — в ней находится информация о внутриигровых предметах, которые могут получить игроки.
item_id name description rarity effect
1001 Sword Мощный меч Rare +10 к атаке
1002 Healing potion Зелье здоровья Common Восстановление 50 HP
1003 Shield Щит Uncommon +5 к защите
  • Player_Inventory — данные о предметах, которые есть в инвентаре каждого игрока. Эта таблица связана с Players и Items с помощью идентификационных номеров.
player_id item_id quantity
1 1001 1
1 1002 3
2 1003 1
  • Levels — описывает уровни, существующие в игре.
level_id name description difficulty
1 Forest of Doom Лес с монстрами Easy
2 Lava Cave Пещера с лавой и драконами Hard
  • Player_Progress — отслеживает прогресс игрока на различных уровнях. Эта таблица связана с таблицами пользователей и доступных уровней.
player_id level_id completion_time score completed
1 1 15:30 8000 TRUE
1 2 30:00 12000 FALSE
2 1 20:00 7000 TRUE

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

Для чего используют 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 можно скачать с официального сайта разработчиков. Также можно воспользоваться пакетными менеджерами. Процесс установки на различных операционных системах выглядит следующим образом:

  • Загрузите архив с бинарным файлом с официального сайта.
  • Распакуйте архив в любую удобную папку.
  • Перейдите в папку с распакованным архивом и запустите файл sqlite3.exe.
  • Откройте «Терминал» и введите команду brew install sqlite (важно до этого установить пакетный менеджер Homebrew по инструкции от разработчика).
  • После установки введите sqlite3 в «Терминале».
  • Откройте «Терминал».
  • Введите команду 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, занимают мало места, не требуют сложной настройки и постоянного обслуживания, но их нельзя масштабировать и использовать в сложных проектах.

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

Похожие статьи