Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Владимир Парфиненко
SQLite / история
Эскадренный
миноносец с
управляемым
ракетным
оружием
SQLite / история
● D. Richard Hipp
● база данных изначально
спроектирована для эсминцев флота
США в 1980 г.
● была необходима простая база
данных, не требующая установки и
администрирования
SQLite / версии
● v1.0 – 2000
● первая публичная версия
● использовал gdbm
● v2.0 – 2001
● реализация B-деревьев
● v3.0 – 2004
● поддержка UTF и другие важные
изменения
● v3.6.23.1 – 30.03.2010
SQLite / пользователи
● Adobe ● Google
● AIR ● Android OS
● Acrobat Reader ● Chrome
● Apple ● Skype
● Safari ● Sun
● iTunes ● Solaris 10
● iPhone OS ● Symbian
● Firefox
SQLite / описание
● работает с обычными файлами на
диске
● распространяется в виде отдельной
кроссплатформенной библиотеки
● не использует парадигму
клиент‑сервер
● имеет крошечный размер
● является public domain
SQLite / установка
● http://www.sqlite.org/download.html
● исходные коды для сборки
● бинарные сборки для
● Linux
● Mac OS
● Windows
SQLite / интерактив
SQLite / особенности SQL
● один файл = одна база данных
● динамическая типизация столбцов
● поддержка транзакций
● неполная поддержка SQL92
● ALTER TABLE только ADD и RENAME
● нет RIGHT и FULL OUTER JOIN
● …
SQLite / C интерфейс
#include <sqlite3.h>
void main()
{
sqlite3 *db;
char error_msg[256];
sqlite3_open("/path/to/some.db", &db);
...
sqlite3_close(db);
}
SQLite / C интерфейс
sqlite3_exec(db,
"CREATE TABLE test (id integer);",
NULL, 0, &error_msg);
SQLite / C интерфейс
sqlite3_exec(db,
"SELECT * FROM test;",
callback, 0, &error_msg);
SQLite / C интерфейс
int callback(void *,
int argc, char **argv, char **col_names)
{
/*
* argc – количество столбцов в строке
* argv – значения столбцов
* col_names – названия столбцов
*/
}
SQLite / Ruby обертка
require 'sqlite3'
db = SQLite3::Database.new "/path/to/some.db"
SQLite / другие обертки
Спасибо за внимание
Ваши вопросы?