SQLite Введение

Этот учебник поможет вам понять, что такое SQLite, чем он отличается от SQL, зачем он нужен и как приложения с его помощью работают с базами данных.

SQLite — это программная библиотека, реализующая самодостаточный, бессерверный, не требующий настройки транзакционный движок базы данных SQL. SQLite — самый быстрорастущий по популярности движок баз данных, независимо от его размера. Исходный код SQLite не подпадает под ограничения авторского права.

Что такое SQLite?

SQLite — это встраиваемая библиотека, реализующая самодостаточный, бессерверный, не требующий настройки транзакционный движок базы данных SQL. Это база данных с нулевой конфигурацией, что означает, что в отличие от других баз данных её не нужно настраивать в системе.

Как и другие базы данных, движок SQLite не является отдельным процессом; при необходимости его можно статически или динамически подключить к приложению. SQLite напрямую обращается к своим файлам хранения.

Почему стоит использовать SQLite?

  • Не требуется отдельный серверный процесс или операционная система (бессерверный режим).

  • SQLite не требует конфигурации, что означает, что не требуется установка или администрирование.

  • Полная база данных SQLite хранится в одном кроссплатформенном дисковом файле.

  • SQLite очень мала и легковесна; при полной конфигурации она занимает менее 400KiB, а при исключении дополнительных функций — менее 250KiB.

  • SQLite самодостаточна, то есть не требует внешних зависимостей.

  • Транзакции SQLite полностью соответствуют ACID, обеспечивая безопасный доступ из нескольких процессов или потоков.

  • SQLite поддерживает большинство функций языка запросов стандарта SQL92 (SQL2).

  • SQLite написана на ANSI-C и предоставляет простой и удобный API.

  • SQLite работает на UNIX (Linux, Mac OS-X, Android, iOS) и Windows (Win32, WinCE, WinRT).

История

  1. 2000 -- D. Richard Hipp разработал SQLite, чтобы программы могли работать без необходимости администрирования.

  2. 2000 -- В августе SQLite 1.0 был выпущен как GNU Database Manager.

  3. 2011 -- Hipp объявил о добавлении интерфейса UNQl к SQLite DB, разработав UNQLite (документно-ориентированную базу данных).

Ограничения SQLite

В SQLite не поддерживаются следующие возможности SQL92:

ХарактеристикаОписание
RIGHT OUTER JOINРеализовано только LEFT OUTER JOIN.
FULL OUTER JOINРеализовано только LEFT OUTER JOIN.
ALTER TABLEПоддерживает варианты команд RENAME TABLE и ALTER TABLE ADD COLUMN, но не поддерживает DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.
Поддержка триггеровПоддерживает триггеры FOR EACH ROW, но не триггеры FOR EACH STATEMENT.
ПредставленияВ SQLite представления доступны только для чтения. Нельзя выполнять операторы DELETE, INSERT или UPDATE над представлениями.
GRANT и REVOKEЕдинственные применимые права доступа — это обычные права доступа к файлам, предоставляемые базовой операционной системой.

Команды SQLite

Стандартные команды SQLite для взаимодействия с реляционными базами данных похожи на SQL. К командам относятся CREATE, SELECT, INSERT, UPDATE, DELETE и DROP. По характеру выполняемых операций эти команды можно разделить на следующие категории:

DDL — язык определения данных

КомандаОписание
CREATEСоздаёт новую таблицу, представление таблицы или другие объекты в базе данных.
ALTERИзменяет существующий объект базы данных, например таблицу.
DROPУдаляет всю таблицу, представление таблицы или другие объекты в базе данных.

DML - язык манипулирования данными

КомандаОписание
INSERTСоздаёт запись.
UPDATEИзменяет записи.
DELETEУдаляет записи.

DQL - язык запросов к данным

КомандаОписание
SELECTИзвлекает определённые записи из одной или нескольких таблиц.
Другие расширения