Введение.
SQLite отличается от MySQL, Oracle, PostgreSQL, SQL Server… Он не предназначен в качестве замены или конкурента, какой-либо из выше перечисленных систем. Его не нужно устанавливать и настраивать, ему не требуется отдельного серверного процесса для запуска и остановки — это библиотека бессерверного компонента, размер которой менее 750 КБ. При обслуживании не требуется создавать новый экземпляр бд и раздавать права доступа. У SQLite нет файла конфигурации и режима клиент серверной связи с ядром процессора (например TCP / IP), для обмена результатами.
SQLite является встроенным, а не клиент-серверным механизмом, не существует
отдельного серверного процесса для управления БД. Приложение взаимодействует с механизм базы данных с помощью вызовов функций, а не отправки сообщений отдельному процессу или потоку.
В SQLite все процессы имеют доступ к бд, как к простому текстовому файлу лежащему на диске. Читать бд могут несколько процессов, записывать только один, остальные ждут.
- Отличительные особенности:
- Нулевая конфигурация
- Бессерверный
- Текстовый файл базы данных
- Единая БД для всех архитектур
- Компактный
- Хранит любые типы данных
- Управляет длиной записи таблиц
- Удобен в чтении кода
- В качестве компилятора работает виртуальная машина
- Общественная лицензия
Применения SQLite охватывает широкий круг устройств: телефоны, смартфоны, приставки, веб-сервера, веб-браузеры (Firefox, Chrome и Safari), Skype, iTunes… Имея кросс платформенную поддержку используется на 32 и 64 разрядных устройствах.
Лицензия для SQLite является общественным достоянием, любой может свободно копировать, изменять, публиковать, использовать, компилировать, продавать или распространять исходный код SQLite, либо в виде исходного кода, либо в виде скомпилированного двоичного файла, для любых целей, коммерческих или некоммерческих, и любыми средствами.
Подготовка.
- Стенд:
- ALT Linux, имя lin-sqllite; ip-10.0.2.11;
- Simply Linux, имя: lin-sl, IP=10.0.2.30
Выбрав и установив сервер минимум, обновляем его репозиторий.
# apt-get update; apt-get dist-upgrade
Для установки можно воспользоваться графическим менеджером управления пакетами Synaptic.
# apt-get install synaptic
# synaptic
Установка консольной sqlite3 утилиты объекта подключения к БД.
# apt-get install sqlite3
Скомпилировать sqlite можно, скачав исходники с сайта производителя.
Управление SQlite.
Прежде чем использовать sqlite разберёмся, на нескольких примерах, с синтаксисом вводимых команд. По умолчанию, при первом запуске, мы подключаемся к главной базе main database file.
$ sqlite3
sqlite> .database
main: "" r/w
sqlite>
Посмотрим какой справочный аппарат входит в утилиту.
$ sqlite3
sqlite> .help
...
Список выводит большинство оперативных команд.
Перед вводимой командой должна стоять точка, после ввода инструкций ставим точку с запятой или / «go» и «Enter». Для комментарий используем «#» без пробела перед знаком. Для выхода из sqlite нажимаем ctrl+D, для прерывания выполнения ctrl+C.
Примеры работы.
Создадим базу данных с именем rtr.db
Название базы можно указывать без расширения, но для корректной работы, следует придерживаться правилам синтаксиса для баз данных — указав суффикс db
$ sqlite3 rtr.db
Если отсутствует название бд — создается временная база данных, которая автоматически удаляется при завершении работы программы sqlite3.
Построим таблицу tab внутри бд rtr.db с одним текстовым и двумя числами столбцами, как показано ниже.
sqlite> create table tab(one text, two int);
Заполним таблицу tab некоторыми значениями.
sqlite> insert into tab values('Привет', '23');
Выведем информацию таблицы на экран.
sqlite> select * from tab;
Привет|23
sqlite>
С помощью параметра .mode изменим формат вывода с list на column.
sqlite> .mode
current output mode: list
sqlite> .mode column
sqlite> select * from tab;
one two
------ ---
Привет 23
sqlite>
По умолчанию установлен формат list, после выхода из оболочки настройки формата не сохраняются.
Просмотреть таблицы, схемы и индексы можно командами.
sqlite> .tables
tab
sqlite> .indexes
sqlite> .schema
CREATE TABLE tab(one text, two int);
Для подключения к базе вводим команду .databases
sqlite> .databases
main: "" r/w
Листинг выводит одну базу main доступную для чтения и записи.
Ранние мы создали базу rtr.db давайте подключимся к ней. Теперь мы видим две базы main и rtr с правами доступа rw.
$ sqlite3 rtr
...
main: /home/user/rtr r/w
Открыть нужную бд находясьвнутриsqlite3 можно командой .open
sqlite> .open rtr.db
sqlite> .databases
main: /home/user/rtr r/w
Экспорт таблиц поддерживаются для CSV и Excel формата.
$ sqlite3
sqlite> .open rtr.db
sqlite> .excel
SELECT * FROM tab;
Использование sqlite.
Все мы используем браузер на своих цифровых устройствах. Но, мало, кто догадывается, что в большинстве из них в качестве бд работает — sqlite. Если просмотреть каталоги профиля своего обозревателя, например Firefox, мы заметим два неприметных файла cert9.db и key4.db.
- key4.db — хранилище паролей
- cert9.db — хранилище сертификатов
Давайте попробуем заглянуть внутрь этих файлов, предварительно скопировав их, для безопасности, в локальную папку. При попытке открыть для чтения любой из них, мы получим предупреждение.
Теперь мы знаем о чём идёт речь — установим sqlite, как показано выше. После чего открываем базу cert9.db для выполнения манипуляций.
По условию мы находимся в каталоге где лежат cert9.db, key4.db.
$ sqlite3
sqlite> .open cert9.db
sqlite> .excel
sqlite> SELECT * FROM nssPublic;
После экспорта таблиц в Exel, вызывав последнею инструкцию мы увидим окно вывода значений таблицы.
Такие действия можно выполнить с базой key4.db.
Заключение.
По своим характеристикам SQLite не может конкурировать с большими корпоративными базами, её задача состоит в другом — работать там где будет «тесно» большим БД. Разворачивая большие базы мы вместе с функционалом получаем множественное дерево папок и журналов, всё это занимает место в ОЗУ и HDD устройства и как результат влияет на размер изделия. Не смотря на свои небольшие возможности SQLite поддерживает резервное копирование, индексацию, откат после аварии, форматы времени и языков, управление с помощью графической утилиты SQLiteStudio и многое другое.
Полезные ссылки.
- Сайт компании.
- Приложение SQLiteStudio