Добавлен: 04.12.2023
Просмотров: 131
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Содержание
-
Введение -
Дистрибутив и установка -
Применение SQLite -
Как работает SQLite -
Преимущества SQLite -
Недостатки SQLite -
конфигурационные файлы -
взаимодействие с веб-серверами и PHP -
Создание и удаление таблиц. Прикрепление базы данных -
Основные операции с данными
Введение
SQLite — это быстрая и легкая встраиваемая однофайловая СУБД на языке C, которая не имеет сервера и позволяет хранить всю базу локально на одном устройстве. Для работы SQLite не нужны сторонние библиотеки или службы.
Понятие «встраиваемый» означает, что СУБД не использует парадигму клиент-сервер. Движок SQLite — не отдельно работающий процесс, с которым взаимодействует программа, а библиотека. Программа компонуется с ней, и движок служит составной частью программы. В качестве протокола обмена применяются вызовы функций (API) библиотеки SQLite.
Дистрибутив и установка
Дистрибутив загрузки SQLite можно скачать по данной ссылке - https://www.sqlite.org/download.html
Установка SQLite в Windows
-
Шаг 1 - Переходим на страницу загрузки SQLite и загружаем предварительно скомпилированные двоичные файлы из раздела Windows. -
Шаг 2. Загружаем файлы zlip-sqlite-win32 - *. Zip и sqlite-dll-win32 - *.zip. -
Шаг 3 - Создаем папку C:\> sqlite и разархивируем над двумя zip-файлами в этой папке, которые предоставят sqlite3.def, sqlite3.dll и sqlite3.exe файлы. -
Шаг 4 – Добавляем C: \> sqlite в переменную среды PATH и переходим в командную строку, выполняем команду sqlite3, которая должна отобразить следующий результат, как показано в Примере 1.
Пример: 1.
Установка SQLite в Linux
-
Шаг 1 - Переходим на страницу загрузки SQLite и загружаем sqlite-autoconf - *. Tar.gz из раздела исходного кода. -
Шаг 2 - Запускаем следующую команду: (Пример: 2)
Пример: 2
Применение
База данных — это набор структурированной информации. Для ее изменения требуются системы управления — СУБД. Как и любая СУБД, SQLite позволяет записывать новую и запрашивать существующую информацию, изменять ее, настраивать доступ.
Благодаря свойствам SQLite применяется:
-
на сайтах с низким и средним трафиком; -
в локальных однопользовательских, мобильных приложениях или играх, не предназначенных для масштабирования; -
в программах, которые часто выполняют прямые операции чтения/записи на диск; -
в приложениях для тестирования бизнес-логики.
SQLite не требует администрирования и работает на мобильных устройствах, игровых приставках, телевизорах, беспилотных летательных аппаратах, камерах, автомобильных мультимедийных системах и т.д. СУБД использует множество программ: Firefox, Chrome, Safari, Skype, XnView, AIMP, Dropbox, Viber и другие
Как работает SQLite
Большинство СУБД используют клиент-серверную архитектуру: данные хранятся и обрабатываются на сервере, а запросы к нему посылает клиент. «Клиент» — это часть программы, с которой взаимодействует пользователь. «Сервером» может быть и отдельный процесс на том же компьютере (так называемый демон), и стороннее устройство, как в случае с сайтами.
SQLite устроена иначе и не имеет сервера. Это значит, что все данные программное обеспечение хранит на одном устройстве. СУБД встраивается в приложение и работает как его составная часть. Если установить на компьютер программу, использующую SQLite, то база данных тоже будет храниться на нем же. Формат базы — один текстовый файл, который можно прочитать на любой платформе. Такой подход повышает производительность и скорость работы.
Работать с SQLite можно как с библиотекой или через SQLite3.
Преимущества SQLite
Высокая скорость. Благодаря особенностям архитектуры SQLite работает быстро, особенно на чтение. Компоненты СУБД встроены в приложение и вызываются в том же процессе. Поэтому доступ к ним быстрее, чем при взаимодействии между разными процессами.
Хранение данных в одном файле. База данных состоит из табличных записей, связей между ними, индексов и других компонентов. В SQLite они хранятся в едином файле (database file), который находится на том же устройстве, что и программа. Чтобы при работе не возникало ошибок, файл блокируется для сторонних процессов перед записью. Раньше это приводило к тому, что записывать данные в базу мог только один процесс единовременно. Но в новых версиях это решается перенастройкой режима работы СУБД.
Минимализм. Создатели SQLite пользуются принципом «минимального полного набора». Из всех возможностей SQL в ней есть наиболее нужные. Поэтому SQLite отличают малый размер, простота решений и легкость администрирования. Для повышения базовой функциональности можно использовать стороннее программное обеспечение и расширения.
Надежность. Код на 100% покрыт тестами. Это означает, что протестирован каждый компонент ПО. Поэтому SQLite считается надежной СУБД с минимальным риском непредсказуемого поведения.
Нулевая конфигурация. Перед использованием СУБД не нужна сложная настройка или длительная установка. Для решения большинства задач ей можно пользоваться «из коробки», без установки дополнительных компонентов.
Малый размер. Полностью сконфигурированный SQLite со всеми настройками занимает меньше 400 Кб. Если использовать СУБД без дополнительных компонентов, размер можно уменьшить до 250 Кб. Он зависит только от количества загруженной информации. Несмотря на малый размер, SQLite поддерживает большинство функций стандарта SQL2 и имеет ряд собственных.
Доступность. SQLite находится в публичном доступе. На ее использование нет правовых ограничений, а владельцем считается общество. Можно открывать, просматривать и изменять исходный код установленного ПО.
Кроссплатформенность. СУБД подходит для UNIX-подобных систем, MacOS и Windows.
Автономность. Система независима от стороннего ПО, библиотек или фреймворков. Чтобы приложение с базой на SQLite работало, дополнительные компоненты не требуются. Также не обязателен доступ в интернет: вся база хранится на устройстве, получить данные можно локально.
Недостатки SQLite
Ограниченная поддержка типов данных. SQLite поддерживает только четыре типа данных, которые реализованы в SQL:
-
INTEGER — целое число; -
REAL — дробное число; -
TEXT — текст; -
BLOB — двоичные данные.
Также существует особое значение NULL — отсутствие данных.
Отсутствие хранимых процедур. Так называются блоки кода на SQL, которые сохраняются в базу данных. Хранимые процедуры можно вызывать как отдельные функции, и это удобно, если нужно последовательно выполнить несколько однотипных действий. Но SQLite их не поддерживает из-за особенностей архитектуры.
Ограничения в применении. Отсутствие сервера — преимущество и недостаток одновременно. Без сервера возможности СУБД меньше. Например, к одной базе не смогут обращаться несколько разных устройств.
В SQLite ограничена многопоточность — единовременное выполнение нескольких процессов. Одновременно читать из базы могут несколько процессов, а писать в нее по умолчанию — только один. В версии 3.7.0 в SQLite внедрили возможность записи разными приложениями, но даже так она уступает клиент-серверным СУБД по возможностям работы с потоками. Поэтому SQLite не подойдет для многопользовательских приложений или программ, записывающих большой объем данных.
Отсутствие бесплатной техподдержки. Стоимость профессиональной технической поддержки от разработчиков — от $1500 в год. Чтобы получить информацию бесплатно, потребуется пользоваться форумами и руководствами от пользователей, а также официальной документацией.
Отсутствие встроенной поддержки Unicode. Unicode — это популярный стандарт кодирования символов. Он включает практически все существующие знаки и буквы, поэтому считается самым распространенным в мире. Без его поддержки приложение не сможет корректно работать с кириллицей, иероглифами и многими другими символами. SQLite «из коробки» не поддерживает Unicode, его нужно настраивать отдельно. Это может вызвать сложности с локализацией.
Конфигурационные файлы
SQLite не нуждается в инсталляции перед использованием. Процедура "setup" для него отсутствует. Отсутствует серверный процесс, который нуждался бы в запуске, остановке или конфигурировании. SQLite не нуждается в администраторе для создания нового экземпляра базы данных или для присвоения пользователям прав доступа. SQLite не использует конфигурационные файлы. Ничто не обязано сообщать системе о выполнении SQLite. Не требуется никаких действий для восстановления после краха системы или некорректного завершения. Здесь ничего не конфликтует. SQLite работает просто и правильно.
Другие, более известные движки баз данных превосходно работают, когда вы запускаете их. Но начальная инсталляция и конфигурация могут быть пугающе сложными
Взаимодействие с веб-серверами и PHP
Хостинг с поддержкой mysql дороже чем хостинг только с php. Тем более количество баз данных ограниченно тарифным планом. Конечно без бд то же никак
, но отказаться от использования mysql можно. Ему на замену приходит sqlite.
В отличии от mysql, sqlite является библиотекой, а не серверной программой. Эта библиотека уже встроена в интерпритатор php и не требует каких то ухищрений с администрированием. Для работы достаточно наличия на сервере только интерпритатора php. Это значительно снижает стоимость у хостера тарифного плана. Sqlite пишет все свои данные в файл, который создаётся на сервере. Для каждой бд создаётся свой файл. Ограничением по количеству бд может являться только объём жёсткого диска под сайт. Так как все бд хранятся в файлах то для резервирования базы или переезда к другому хостеру файлы бд всего лишь нужно скопировать.
Разберём подключение sqlite и sqlite3 под windows.
Подключение sqlite
Будем считать что веб сервер apache и php у нас уже установлен. В зависимости от версии интерпритатора в папке ext корневой директории PHP должны быть файлы php_pdo.dll, php_pdo_sqlite.dll, php_sqlite.dll. Для того что бы подключить sqlite, открываем файл php.ini в любом текстовом редакторе и раскомментируем директивы подключения нужных нам модулей. Модули, закомментированные при помощи точки с запятой ;, как правило, требуют дополнительных внешних библиотек. Директивы должны выглядеть так:
-
extension = имя_модуля
Для подключения php_sqlite.dll в php.ini, нужно сначала подключить расширения php_pdo.dll и php_pdo_sqlite.dll. Только в такой последовательности:
-
extension=php_pdo.dll -
extension=php_pdo_sqlite.dll -
extension=php_sqlite.dll
Строки extension=php_pdo.dll может в ini и не быть, раскоментируем тогда только extension=php_pdo_sqlite.dll и extension=php_sqlite.dll После всего этого перезапустим апачь. Для проверки правильности установки запустим строку кода:
Должно показать версию sqlite.
Php sqlite примеры:
Создание файла БД
Пример 3.
Создание таблицы в базе данных
Пример 4.
Выполнение запроса
Пример 5.
Получение результата
Пример 6.
Получение результата в виде массива