Обновить
3.62

SQLite *

Компактная встраиваемая реляционная база данных

Сначала показывать
Порог рейтинга
Уровень сложности

SQLite — замечательная встраиваемая БД (часть 2)

Время на прочтение4 мин
Охват и читатели184K
Часть 1
Часть 3

В этой части будут затронуты непростые вопросы использования SQLite через работу с его программным интерфейсом (API).

Читать дальше →

SQLite — замечательная встраиваемая БД (часть 1)

Время на прочтение5 мин
Охват и читатели506K
Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.

Часть 2
Часть 3

Небольшая вводная.

Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).

Читать дальше →

Оптимизируем работу SQLite с NSCalendar

Время на прочтение9 мин
Охват и читатели1.5K


В предыдущей статье мы решили проблему некорректного использования SQLite week based calendar, написав свое расширение для этой СУБД.

Наш расчет сошелся, однако скорость его работы оставляла желать лучшего. Обработка таблицы, содержащей всего лишь 2500 записей занимала около 6 секунд. В то время как запросы, использующие strftime() исполнялись за десятые доли секунды.
Так чего же мы не учли?

Учим SQLite работать с локализированным календарем

Время на прочтение4 мин
Охват и читатели7.6K

Учим  SQLite работать с локализированным календарем



Часть1 — Английская версия, Часть2



Недавно мне довелось портировать (точнее, переписывать) под iOS приложение для анализа посещаемости сайта. Поскольку данные подходили под реляционную модель, мы решили использовать SQLite. Насколько я знаю, других реляционных СУБД под iOS просто нет.

Долго ли, коротко ли… Пришло время подсчитать понедельный КПД для определенного диапазона дат.
Что же произошло дальше?

Пишем простое Windows-приложение на Tcl/Tk с использованием SQLite

Время на прочтение3 мин
Охват и читатели17K
Добрый день уважаемому хабрасообществу! Немного здесь информации об очень приятном и лёгком в использовании языке программирования TCL, а особенно, полезной для тех, кто только начинает с ним знакомство. Попробую внести посильный вклад в исправление столь досадного недоразумения.
Читать дальше →

SQL.js: движок SQLite переведён на JavaScript посредством Emscripten

Время на прочтение1 мин
Охват и читатели20K
Alon Zakai (создатель Emscripten) продолжает действовать: на сей раз он выпустил скрипт SQL.js итог перевода библиотеки SQLite на JavaScript при помощи его собственного средства Emscripten. Демонстрационная страница показывает скрипт в деле, и если вы взглянете на исходники, то увидите, каким простым Закай устроил использование этого средства, им скомпилированного:

var db = SQL.open();
var data = db.exec(command);

Читать дальше →

Полноценная поддержка юникода в SQLite для iOS. Пример приложения

Время на прочтение2 мин
Охват и читатели4.5K
Здравствуйте. В этой статье я опишу процесс создания простейшего приложения для iOS и внедрение в него используемого мной метода для обеспечения корректной работы с русским (и не только) языком таких SQLite-конструкций, как UPPER/LOWER, LIKE или ORDER BY.

Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.

Ниже очень подробная инструкция с картинками.
Читать дальше →

Оптимизация работы с SQLite под iOS

Время на прочтение4 мин
Охват и читатели14K


“Think of SQLite not as a replacement for Oracle but as a replacement for fopen()”
— About SQLite


А также, скорее всего, под Android, BlackBerry и в сэнд-боксе браузеров для веб-приложений, но я не проверял.

Почему может быть нужно работать с SQLite напрямую?

Любой опытный iOS девелопер тут же упрекнёт меня за использование SQLite напрямую (вернее не напрямую, а через FmDb, но это почти всё равно что напрямую). Он скажет, что нужно использовать CoreData, т.к. оно много всяких ништяков делает автоматически, типа Undo и Redo. И в нём можно рисовать красивые схемки, которые потом приятно показывать заказчику. А в андроиде, например, есть OrmLite.

И я соглашусь – но до той поры, пока у вас база не перевалила, скажем, за 10 таблиц по 500,000 записей в каждой. А если таблиц 52, и есть особо жирные таблицы по миллиону и больше? И базу нужно синхронизировать с сервером через третий формат, к тому же заказчику критично, будет синхронизация длиться час или пять? Если вы встречали задачи такого объёма, добро пожаловать под кат! Если не встречали – то тоже, ведь никто не застрахован от проектов с большими данными, пускай даже таких мобильных и меньше.
Читать дальше →

Интеграция алгоритма стемминга русских слов в fts3 SQLite

Время на прочтение3 мин
Охват и читатели6K
В данной статье я хочу поделиться опытом интеграции расширения для стемминга в код SQLite. Все действия выполнялись в ОС Ubuntu 11.10.

Проблема


В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.

Подготовка к компиляции


Что понадобится

  • исходники sqlite3 с репозитория;
  • наш стеммер на языке C (см. далее);
  • опционально библиотека readline (libreadline), если нужна история вводимых команд для консольного клиента.

Читать дальше →

Qt и SQLite и вообще, программирование БД в Qt

Время на прочтение9 мин
Охват и читатели167K
Добрый день.

Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.

Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
Почему я рассматриваю именно SQLite?

Как подружить SQLite андроида с языком, отличным от английского

Время на прочтение4 мин
Охват и читатели17K

Здравствуй, дорогой читатель!
В этой статье я хочу затронуть проблему хранения кириллических данных в SQLite, попробовать разобраться с Android NDK, и вообще зажить прекрасной жизнью! Однако, с этого момента, считаю важными первые два пункта. О них и поговорим.

Известная проблема SQLite состоит в том, что он не любит никаких символов, кроме латинских, поэтому выполняется такое [1]:
SELECT "ы" LIKE "Ы";
0
SELECT "s" LIKE "S";
1


Такая проблема актуальна для наших широт, и может быть решена пользовательскими функциями.
Но Android не поддерживает функций, поэтому создаются костыли.

Давайте попытаемся обойти костыли и расширить наши возможности

node.js и SQLite 3 — теперь друзья

Время на прочтение1 мин
Охват и читатели15K
node.js — один из лучших каркасов для создания серверов на основе событийных машин, основанный на движке JavaScript V8, теперь получил по-настоящему асинхронную, неблокирующую привязку к базам данным SQLite 3.

Домашняя страница проекта.

Большое спасибо Orlando Vazquez и Ryan Dahl за выполненную работу.

Новая версия C#-SQLite

Время на прочтение1 мин
Охват и читатели8.6K
C#-SQLite — это независимый от SQLite.org opensource-проект, который представляет собой полный порт SQLite на управляемый код C#. В итоге, C#-SQLite работая в .NET-окружении может встраиваться в приложения Silverlight и применяться в браузерах на стороне клиента.

Новая версия C#-SQLite в очередной раз приносит улучшения производительности.

image

Для управляемого кода совсем неплохо. В одном тесте оптимизация позволила даже превзойти SQLite в производительности. На странице измерения производительности проекта можно скачать тест и ознакомиться с прогрессом в разработке проекта: прогресс достигнутый в последних сборках, по сравнению с первой версией, очень радует.

Ближайшие события

SQLite и полноценный UNICODE

Время на прочтение2 мин
Охват и читатели33K
Наверно многим известна embed база данных SQLite. SQLite полностью поддерживает кодировки UTF-8 и UTF-16. Но есть один нюанс, для строковых и текстовых полей, символы которых выходят за пределы ASCII таблицы, не работает нечувствительный к регистру LIKE и ORDER BY.
Например:
sqlite> SELECT "ы" LIKE "Ы";
0
в то время как
sqlite> SELECT "s" LIKE "S";
1
Давайте разберемся как же это исправить.
Читать дальше →

Использование SQLite в .NET приложениях

Время на прочтение7 мин
Охват и читатели166K


В некоторых проектах достаточно часто возникает необходимость в хранении данных, объем которых уже нельзя назвать маленьким, но в тоже время использовать какую-либо СУБД слишком накладно из-за сложности развертывания приложения. И тут на помощь приходит такая прекрасная вещь как SQLite – компактная встраиваемая база данных.

Для тех, кто пишет с использованием платформы .NET приятным моментом станет наличие
Читать далее...

Тормозной SQLite? Совсем нет!

Время на прочтение2 мин
Охват и читатели31K
Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код тут.
Читать дальше →
12 ...
10