Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.
Небольшая вводная.
Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).
Исходные коды SQLite находятся в public domain, то есть вообще никаких ограничений на использование.
Сайт (с прекрасной документацией на английском): http://sqlite.org
Текущая версия: 3.7.13
SQLite можно скомпилировать самому, но я скачиваю ее уже скомпилированную в виде Windows DLL.
Для собственной сборки обычно скачивают т.н. «amalgamation» ,
т.е. исходники SQLite в виде единого файла на языке C + sqlite3.h.
Чтобы уменьшить размер кода SQlite, выкинув ненужные ништяки, используются всякие DEFINE.
Допустим, мы объявили столбец как «A INTEGER».
SQlite позволяет занести в этот столбец значения любого типа (999, «abc», «123», 678.525).
Если вставляемое значение - не целое, то SQlite пытается привести его к целому.
Т.е. строка «123» превратится в целое 123, а остальные значения запишутся «как есть».
Дело в том, что популярность SQLite страшна - она везде. Это не шутка.
И разработчики столкнулись с валом сообщений об ошибках, которые либо были вызваны непониманием, либо являлись скрытым feature request. Они, фактически, закрыли прямой прием репортов с ошибками.
Так что следует подписаться на список рассылки и описать там проблему и надеятся на лучшее.
Лично у меня возникла ситуация, которую я трактовал как дефект SQLIte. Я описал это в рассылке. В следующей версии поведение SQLite было исправлено.
Удобная утилита , чтобы поиграться с SQLite.
Продолжение следует.
Теги: Добавить метки
SQLite Editor предназначен для корректировки баз данных в различных приложениях. Программа может быть интегрирована прямо в RooTExplorer для большего удобства.
Разработчики, которые работают с SQL, смогут просматривать и редактировать данные в базах прямо на мобильных платформах. Доступно мгновенное сохранение результата без сбоев в последующей работе стороннего приложения.
Приложение SQLite Editor отлично сочетается с RootExplorer. Файловый менеджер открывает новые возможности использования приложения, позволяя открывать базы данных прямо из файлового менеджера. Кроме того, в менеджере можно добавлять базы в избранное, сортировать их, удобно хранить. Также присутствует вкладка с историей недавно открытых программ. Благодаря этим возможностям существенно упрощается навигация и поиск отредактированных баз данных для последующего внесения изменений.
Приложение может работать с рут-правами и без них. В последнем случае открывается доступ только к базам тех приложений, которые установлены на SD-карту. Кроме того, как уже было отмечено выше, приложение тесно сочетается с RootExplorer, а для работы данного файлового менеджера нужны права супер-пользователя. Единственное, что может осложнить использование приложения, так это отсутствие русской локализации. Но это неудобство вполне компенсируется стабильностью и скорость работы, понятной навигацией и знакомыми функциями для разработчиков, работающих с SQL.
SQLite - компактная встраиваемая реляционная база данных. Исходный код библиотеки передан в общественное достояние. В 2005 году проект получил награду Google-O’Reilly Open Source Awards.
Слово «встраиваемый» (embedded) означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала.
Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.
В комплекте поставки идёт также функциональная клиентская часть в виде исполняемого файла sqlite3, с помощью которого демонстрируется реализация функций основной библиотеки. Клиентская часть работает из командной строки, позволяет обращаться к файлу базы данных на основе типовых функций операционной системы.
Благодаря архитектуре движка возможно использовать SQLite как на встраиваемых системах, так и на выделенных машинах с гигабайтными массивами данных.
SQLite поддерживает динамическое типизирование данных. Возможные типы полей: INTEGER, REAL, TEXT, BLOB.
Использование SQLite
Сама библиотека SQLite написана на C; существует большое количество привязок к другим языкам программирования, в том числе Delphi, C++, Java, C#, Visual Basic .NET, Perl, PureBasic, Tcl (средства для работы с Tcl включены в комплект поставки SQLite), Haskell, Scheme, Smalltalk, и Parser, а также ко многим другим. Полный список существующих средств размещён на странице проекта.
Простота и удобство встраивания SQLite привели к тому, что библиотека используется в браузерах, музыкальных плеерах и многих других программах.
В частности, SQLite используют:
Многие программы поддерживают SQLite в качестве формата хранения данных (особенно в Mac OS и iOS, Android), в том числе:
SQLite – это библиотека, которая включает в себя полностью самодостаточный, транзакционный, движок баз данных SQL. Не нуждается в инсталлировании или конфигурации системы. Также не нужно настраивать сервер, не нужно его запускать или останавливать и не нужно создавать новую базу данных. Ещё плюс в том что она работает по очереди, начиная и заканчивая каждую часть по отдельности, что полезно если вдруг будет ошибка или система откажет. Благодаря этому данные не будут утеряны, а сохраняться и продолжат свою работоспособность. SQL это база данных которая наиболее распространена в мире и встречается очень часто. Имеет полностью открытый исходный код, который доступен каждому пользователю.
- SQLite это инструмент который предназначен для работы с базами данных, любых типов.
- Она полностью самодостаточна, это значит что не нуждается в дополнительных инструментах или библиотеках для корректной работы.
- Транзакционная, что позволяет максимально избежать потерю данных при отказе системы, программы или сбоя электричества выключении компьютера.
- Работает без нужды в создание и настройке сервера, поэтому не нужно ничего запускать.
- Не нуждается в предварительной установке, без какого либо инсталлятора.
- Администраторам не придётся создавать новую базу данных.
- SQL является очень распространённым и одним из самих гибких инструментов для работы с базами данных.
- Инструмент имеет полностью открытый исходный код, который доступен каждому.
Название программы | На русском | Дистрибутивы | Инсталлятор | Популярность | Размер | Индекс |
★ ★ ★ ★ ★ | 286.7 Мб | 100 | ||||
★ ★ ★ ★ ★ | 0.5 Мб | 97 | ||||