Программирование

SQLite

Что такое SQLite?

SQLite написал D. Richard Hipp в 2000 году. Движок кладут внутрь программы. Он не ждёт другой процесс. Все таблицы обычно лежат в одном файле .sqlite или .db. Язык SQL используется и здесь, но движок — не MySQL. MySQL — отдельный сервер, и много людей могут писать одновременно. SQLite удобен с одним пишущим и пускает много читающих. Разница с Python такая: Python запускает программу, а SQLite хранит строки. В стандартной библиотеке Python есть sqlite3, файл открывают им. Разница с Node.js такая же: Node запускает JavaScript. Файл SQLite он может открыть пакетом или собственным модулем нового Node. В старом Node этого модуля нет.

Для чего нужен SQLite?

SQLite нужен для данных одного пользователя или одного устройства. Настройка, заметка и маленький каталог — его место.

  • Местная база приложения телефона
  • Заметка, которую хранит браузер
  • Настройка настольной программы
  • База маленького сайта в одном файле

Что можно делать с SQLite?

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

Сложно ли освоить SQLite?

Открыть файл легко. Трудность в одновременной записи. Когда два процесса меняют одну строку, один ждёт. Если ожидание затягивается, команда останавливается. Перенос файла в другую папку меняет и путь программы. Вставка текста пользователя в текст SQL и здесь открывает инъекцию.

Плюсы и ограничения

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

Основные понятия

Файл — это сама база. Таблица — имена столбцов. Строка — одна запись.

  • Отдельного процесса сервера нет
  • Запрос SQL используется и здесь
  • Одному пишущему удобно
  • Резервная копия — копия файла

Короткий пример

Этот запрос открывает одну таблицу. Если файла нет, движок может его создать. Подключаться к серверу не нужно.

CREATE TABLE note (
  id INTEGER PRIMARY KEY,
  text TEXT
);

Частые вопросы

  • SQLite и Python — одно и то же? Нет. Python запускает программу. SQLite хранит строки. Python открывает файл стандартным sqlite3.
  • SQLite и Node.js — одно и то же? Нет. Node запускает JavaScript. Файл SQLite он может открыть пакетом или собственным модулем нового Node. В старом Node этого модуля нет.
  • SQLite и MySQL — одно и то же? Нет. Оба используют SQL. SQLite — один файл, MySQL — отдельный сервер.