Пролог
Как все начиналось и до чего я докатился :
Поводом задуматься послужила ветка
http://www.1cpp.ru/forum/YaBB.pl?num=1183433748 И всплыло задание по передаче прайса на сайт.
Первой мыслью был XML но призадумался и оказалось
что создать бд в формате sqliti ничем не хуже XML особенно
если сайт написан на php.
Итак Что такое sqlite ?
SQLite отличается от других SQL движков баз данных тем, что его основная цель - быть простым:
* простым в администрировании
* простым в применении
* простым для встраивания в большие программы
* простым для поддержки и модификации
официальный сайт
http://www.sqlite.org/Далее везде речь идет о sqlite версии 3.
Очень кратко о sqlite
- sqlite Особая sql субд встраиваемая в приложение. Нулевая дистанция между приложением и субд.
- соответствует большинству стандартов sql92 и
одновременно имеет изящные расширения например
CREATE TABLE IF NOT EXISTS region .... - создать таблицу region если она не существует ( если таблица уже есть ничего не делаем )
- в sqlite есть индексы, view, тригерры.
- БД может одновременно использоваться разными компьютерами ( с разным порядком байтов )
- в sqlite есть blob поля
- есть блокировки - три вида блокировок и
транзакции ( нельзя использовать вложенные транзакции совсем как в 1с).
- огромные размеры БД : поддерживаюся базы до 2 терабайт,
колво строк в таблице до 2**64,
строка и blob могут быть размером до 2 гигибайт
точные ограничения см
http://www.sqlite.org/limits.html- малый размер управляющего кода менее 250 кб
- можно скомпилировать сборку под себя изменив опции компиляции и/или сам исходный код.
- простое API хорошо документированное
- есть исходный код
- sql операторы хорошо документированы, есть документация что не поддерживается в sqlite,
особенности NULL
- есть очень много интерфейсов со многими языкама и средами программирования
на многих платформах( наверное на всех, включая кпк,смартфоны ...)
- нуль администрирование - это нулевая установка и нуль сопровождение базы данных
- бесплатность как самой бд так и исходников
- В sqlite можно определить СВОи функции и потом использовать их в любых sql операторах
- В sqlite есть параметризированные запросы и компиляция запросов
- Сразу после выполнения запроса SELECT извесно сколько есть строк в выполненом запросе.
- большая динамика развития sqlite очередная версия появляется примерно раз в месяц, а так как
этой бд пользуется очень много людей то и надежность и тестирование должно быть на уровне.
- в sqlite есть виртуальные таблицы, а также бд можно полностью создать в памяти.
- не обошли эту бд и такие монстры как Google присвоило sqlite лучший продукт
open source 2005 года (
http://osdir.com/Article6677.phtml)
В третьей версии Firefox sqlite будет встроена внутри браузера.
Замечания по использованию sqlite :
Далее в своих примерах я использую только utf-8.
Чтобы как можно меньше зависить от кодировок и/или их различий на разных платформах
рекомендую предерживаться ограничений :
1. Полный путь файла к бд sqltite не содержал русских букв только латинские.
2. Операторы sqlite (SELECT, FROM и.т.д. ) писать только заглавными латинскими буквами
3. Для имен таблиц, полей таблиц, индексов и.т.д использовать только маленькие
латинские буквы и цифры.
sqlite
На форуме слишком маленький размер присоед файла поэтому даю прямые ссылки на продукты
скачать sqlite можно здесь
http://www.sqlite.org/download.htmlPrecompiled Binaries For Windows
sqlite-3_4_2.zip (179.14 KiB) сейчас версия 3.4.2.
скачиваем архив распоковываем. Запускаем
Все у Вас есть sqlite. Это примитивная консольная оболочка но в ней тоже можно работать.
Запускается так sqlite.exe <Полный путь к бд>. Если такого файла нет то создается бд sqlite.
Самая интересная команда в этой оболочке .pragma позволяет задать системные характеристики БД.
Также в интернете есть очень много визуальный оболочек наподобие EntepraseManager -
но все они путаются с кодировками ( и есть оболочки для sqlite 2) и лучше их не использовать.
Наиболее функциональная из них SQLite Expert version ( но платная )
в этой оболочке я проверял что BLOB правильно были внесены в БД sqlite.