SQLite- лёгкая встраиваемая реляционная СУБД

🟢 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 стала одной из самых популярных баз данных в мире.

🔗 Официальная документация SQLite

Понравилась статья? Поделиться с друзьями:
1 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии