SQLite. Введение
SQLite — это лёгкая встраиваемая реляционная СУБД. Она не требует серверной установки, так как база данных хранится в одном файле. Активно используется в мобильных приложениях, браузерах, IoT-устройствах и десктопных программах.
История
- 2000 — первая версия SQLite от Ричарда Хиппа.
- 2005 — широкое распространение.
- 2010-е — интеграция в Android, iOS, Firefox, Chrome.
- 2025 — одна из самых популярных баз данных в мире.
Преимущества
- Размер библиотеки менее 1 МБ.
- Поддержка ACID-транзакций.
- Кроссплатформенность.
- Поддержка SQL-стандарта, индексов, JSON, триггеров.
Установка
sudo apt update
sudo apt install sqlite3
brew install sqlite
sqlite3 --versionСоздание базы и таблицы
sqlite3 company.db
CREATE TABLE employees (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
position TEXT,
salary REAL,
hire_date TEXT
);CRUD
INSERT INTO employees (name, position, salary, hire_date)
VALUES ('Иван Иванов', 'Менеджер', 60000, '2022-05-01');
SELECT name, position, salary FROM employees;
UPDATE employees SET salary = salary * 1.1 WHERE position = 'Менеджер';
DELETE FROM employees WHERE id = 3;Индексы
CREATE INDEX idx_salary ON employees(salary);Транзакции
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;JSON
CREATE TABLE products (
id INTEGER PRIMARY KEY,
data JSON
);
INSERT INTO products (data)
VALUES ('{"name": "Ноутбук", "price": 75000, "features": {"ram": "16GB"}}');
SELECT json_extract(data, '$.name') AS product_name,
json_extract(data, '$.features.ram') AS ram
FROM products;Ограничения и связи
CREATE TABLE departments (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE staff (
id INTEGER PRIMARY KEY,
dept_id INTEGER,
name TEXT,
FOREIGN KEY (dept_id) REFERENCES departments(id)
);Триггеры
CREATE TRIGGER set_hire_date
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
SELECT date('now') INTO NEW.hire_date;
END;Представления
CREATE VIEW high_salary AS
SELECT name, salary FROM employees WHERE salary > 70000;Бэкап
sqlite3 company.db ".backup company_backup.db"Безопасность
- Использование SEE (SQLite Encryption Extension) для шифрования.
- Контроль доступа к файлу базы.
- Защита от SQL-инъекций через параметризованные запросы.
Применение
Мобильные приложения: Android, iOS используют SQLite для хранения локальных данных.
Браузеры: Firefox и Chrome сохраняют историю и кэш в SQLite.
IoT: лёгкая база для встраиваемых устройств.
Заключение
SQLite — это простая, быстрая и надёжная СУБД, которая идеально подходит для приложений, где важна лёгкость и автономность. Благодаря универсальности SQLite стала одной из самых популярных баз данных в мире.