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 — отдельный сервер.