
3.62
Общий рейтинг
SQLite *
Компактная встраиваемая реляционная база данных
Сначала показывать
Порог рейтинга
Уровень сложности
SQLite — замечательная встраиваемая БД (часть 1)
5 мин
506KРешил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.
Часть 2
Часть 3
Небольшая вводная.
Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).
Часть 2
Часть 3
Небольшая вводная.
Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).
+98
Оптимизируем работу SQLite с NSCalendar
9 мин
1.5K

В предыдущей статье мы решили проблему некорректного использования SQLite week based calendar, написав свое расширение для этой СУБД.
Наш расчет сошелся, однако скорость его работы оставляла желать лучшего. Обработка таблицы, содержащей всего лишь 2500 записей занимала около 6 секунд. В то время как запросы, использующие strftime() исполнялись за десятые доли секунды.
+7
Учим SQLite работать с локализированным календарем
4 мин
7.6KУчим SQLite работать с локализированным календарем
Часть1 — Английская версия, Часть2

Недавно мне довелось портировать (точнее, переписывать) под iOS приложение для анализа посещаемости сайта. Поскольку данные подходили под реляционную модель, мы решили использовать SQLite. Насколько я знаю, других реляционных СУБД под iOS просто нет.
Долго ли, коротко ли… Пришло время подсчитать понедельный КПД для определенного диапазона дат.
+13
Пишем простое Windows-приложение на Tcl/Tk с использованием SQLite
3 мин
17KДобрый день уважаемому хабрасообществу! Немного здесь информации об очень приятном и лёгком в использовании языке программирования TCL, а особенно, полезной для тех, кто только начинает с ним знакомство. Попробую внести посильный вклад в исправление столь досадного недоразумения.
+4
SQL.js: движок SQLite переведён на JavaScript посредством Emscripten
1 мин
20KПеревод
Alon Zakai (создатель Emscripten) продолжает действовать: на сей раз он выпустил скрипт SQL.js — итог перевода библиотеки SQLite на JavaScript при помощи его собственного средства Emscripten. Демонстрационная страница показывает скрипт в деле, и если вы взглянете на исходники, то увидите, каким простым Закай устроил использование этого средства, им скомпилированного:
var db = SQL.open();
var data = db.exec(command);
+51
Полноценная поддержка юникода в SQLite для iOS. Пример приложения
2 мин
4.5KТуториал
Здравствуйте. В этой статье я опишу процесс создания простейшего приложения для iOS и внедрение в него используемого мной метода для обеспечения корректной работы с русским (и не только) языком таких SQLite-конструкций, как UPPER/LOWER, LIKE или ORDER BY.
Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.
Ниже очень подробная инструкция с картинками.
Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.
Ниже очень подробная инструкция с картинками.
+11
Оптимизация работы с 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, и есть особо жирные таблицы по миллиону и больше? И базу нужно синхронизировать с сервером через третий формат, к тому же заказчику критично, будет синхронизация длиться час или пять? Если вы встречали задачи такого объёма, добро пожаловать под кат! Если не встречали – то тоже, ведь никто не застрахован от проектов с большими данными, пускай даже таких мобильных и меньше.
+31
Интеграция алгоритма стемминга русских слов в fts3 SQLite
3 мин
6KВ данной статье я хочу поделиться опытом интеграции расширения для стемминга в код SQLite. Все действия выполнялись в ОС Ubuntu 11.10.
В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.
Проблема
В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.
Подготовка к компиляции
Что понадобится
- исходники sqlite3 с репозитория;
- наш стеммер на языке C (см. далее);
- опционально библиотека readline (libreadline), если нужна история вводимых команд для консольного клиента.
+19
Qt и SQLite и вообще, программирование БД в Qt
9 мин
167KТуториал
Добрый день.
Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.
Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.
Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
+38
Как подружить SQLite андроида с языком, отличным от английского
4 мин
17K
Здравствуй, дорогой читатель!
В этой статье я хочу затронуть проблему хранения кириллических данных в SQLite, попробовать разобраться с Android NDK, и вообще зажить прекрасной жизнью! Однако, с этого момента, считаю важными первые два пункта. О них и поговорим.
Известная проблема SQLite состоит в том, что он не любит никаких символов, кроме латинских, поэтому выполняется такое [1]:
SELECT "ы" LIKE "Ы";
0
SELECT "s" LIKE "S";
1Такая проблема актуальна для наших широт, и может быть решена пользовательскими функциями.
Но Android не поддерживает функций, поэтому создаются костыли.
+28
node.js и SQLite 3 — теперь друзья
1 мин
15Knode.js — один из лучших каркасов для создания серверов на основе событийных машин, основанный на движке JavaScript V8, теперь получил по-настоящему асинхронную, неблокирующую привязку к базам данным SQLite 3.
Домашняя страница проекта.
Большое спасибо Orlando Vazquez и Ryan Dahl за выполненную работу.
Домашняя страница проекта.
Большое спасибо Orlando Vazquez и Ryan Dahl за выполненную работу.
+26
Новая версия C#-SQLite
1 мин
8.6KC#-SQLite — это независимый от SQLite.org opensource-проект, который представляет собой полный порт SQLite на управляемый код C#. В итоге, C#-SQLite работая в .NET-окружении может встраиваться в приложения Silverlight и применяться в браузерах на стороне клиента.
Новая версия C#-SQLite в очередной раз приносит улучшения производительности.

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

Для управляемого кода совсем неплохо. В одном тесте оптимизация позволила даже превзойти SQLite в производительности. На странице измерения производительности проекта можно скачать тест и ознакомиться с прогрессом в разработке проекта: прогресс достигнутый в последних сборках, по сравнению с первой версией, очень радует.
+5
Ближайшие события
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Давайте разберемся как же это исправить.
+23
Использование SQLite в .NET приложениях
7 мин
166K
В некоторых проектах достаточно часто возникает необходимость в хранении данных, объем которых уже нельзя назвать маленьким, но в тоже время использовать какую-либо СУБД слишком накладно из-за сложности развертывания приложения. И тут на помощь приходит такая прекрасная вещь как SQLite – компактная встраиваемая база данных.
Для тех, кто пишет с использованием платформы .NET приятным моментом станет наличие
+43
Тормозной SQLite? Совсем нет!
2 мин
31KКак-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код
тут.+39
Вклад авторов
nalgeon 328.1Krovosos 237.0pallada92 167.0SqliteDog 137.0little-brother 129.0ru_vds 109.2yakvenalex 84.0Bright_Translate 73.2iqu 67.0ozlik 61.0