Введение
SQLite — это легкая внутрипроцессная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL с нулевой конфигурацией. Код для SQLite доступен в открытом доступе, поэтому его можно использовать бесплатно для любых целей, коммерческих или частных.
Дизайн
- SQLite — это встроенный механизм базы данных SQL.
- SQLite не имеет отдельного серверного процесса, как большинство других баз данных SQL.
- SQLite читает и записывает непосредственно в обычные файлы на диске.
- В одном файле на диске хранится вся база данных SQL (несколько таблиц, индексов, триггеров и представлений) как один кроссплатформенный файл на хост-компьютере.
История
- D. Ричард Хипп разработал SQLite весной 2000 года.
- В августе 2000 года была выпущена версия 1.0 SQLite, основанная на gdbm (GNU Database Manager).
- SQLite 2.0 заменил gdbm на собственную реализацию B-дерева, добавив поддержку транзакций.
- Бета-версия SQLite 3.0.2 была выпущена 30 июня 2004 г.
- В 2011 г. Hipp объявил о своих планах добавить интерфейс UnQL к базам данных SQLite и разработать UnQLite, встраиваемую документно-ориентированную базу данных.
- Ховард Чу портировал SQLite 3.7.7.1 для использования Openldap MDB вместо исходного кода Btree и вызвал это sqlightning.
- Чтобы проверить последний стабильный выпуск и подробную историю выпусков, щелкните здесь.
- Автономный: без внешних зависимостей.
- Написано на ANSI-C.
- Нулевой конфигурации — не требуется настройка или администрирование.
- Полная база данных хранится на одном кроссплатформенном диске файл.
- Формат файла базы данных является кроссплатформенным (Linux, Mac OS-X, Android, iOS и Windows) — вы можете свободно копировать базу данных между 32-битной и 64-битной системами или между архитектурами с прямым порядком байтов и обратным порядком байтов.
- Отлично подходит для использования в качестве формата файла приложения.
- Доступен как один файл исходного кода ANSI-C, который может легко попасть в другой проект.
- Простой, легкий в использовании API.
- Реализует большую часть SQL92, за исключением некоторых функций.
- Транзакции являются ACID (атомарными, согласованными , изолированные и надежные) совместимы даже после сбоев системы и сбоев питания.
- Поставляется с автономным клиентом интерфейса командной строки (CLI), который можно использовать для администрирования баз данных SQLite.
Где хорошо работает SQLite
- База данных веб-сайтов. Поскольку SQLite не требует настройки и хранит информацию в обычных дисковых файлах, он является популярным выбором в качестве базы данных для поддержки веб-сайтов малого и среднего размера.
- Формат файла приложения. Вместо использования fopen () для записи XML, JSON, CSV или какого-либо проприетарного формата в файлы на диске, используемые вашим приложением, используйте базу данных SQLite.. Вам не придется писать и устранять неполадки парсера, ваши данные станут более доступными и кроссплатформенными, а обновления будут транзакционными.
- База данных для гаджетов. SQLite — популярный выбор в качестве ядра базы данных в сотовых телефонах, КПК, MP3-плеерах, телевизионных приставках и других электронных устройствах. SQLite имеет небольшой объем кода, эффективно использует память, дисковое пространство и полосу пропускания диска, отличается высокой надежностью и не требует обслуживания со стороны администратора базы данных.
- Подставка для корпоративной СУБД. SQLite часто используется в качестве заменителя корпоративной СУБД в демонстрационных целях или для тестирования. SQLite работает быстро и не требует настройки, что упрощает тестирование и упрощает запуск демонстраций.
Языки программирования
SQLite имеет привязки для большого количества языков программирования, вот список:
БАЗОВЫЙ | Delphi | C | C # | C ++ | Clipper//Harbor | Common Lisp | Curl |
D | Free Pascal | Go | Haskell | Java (на JVM и DVM) | JavaScript | Julia | Livecode |
Lua | newLisp | Objective-C (в OS X и iOS) | OCaml | Perl | PHP | Pike | PureBasic |
Pytdon | R | REALbasic | REBOL | Ruby | Схема | Smalltalk | Tcl |
Visual Basic | Xojo |
Фреймворки веб-приложений
- Bugzilla, база данных ошибок Mozilla.
- Django, веб-фреймворк Python.
- Начиная с версии 7, Drupal, система управления контентом на основе PHP для создания веб-сайтов и блогов, имеет возможность установки с использованием SQLite.
- Ruby on Rails.
- web2py, a Веб-фреймворк Python.
Кто использует SQLite
- Google: Google использует SQLite в своих Desktop для Mac, в Google Gears, в операционной системе мобильного телефона Android и в веб-браузере Chrome.
- Dropbox: Dropbox использует SQLite в качестве основного хранилища данных на стороне клиента для архивирования и служба синхронизации.
- Mozilla: Mozilla использует SQLite в качестве основного формата хранения метаданных для Firefox, веб-браузера и программы чтения электронной почты Thunderbird.
- McAfee: McAfee использует SQLite в своих антивирусных программах.
- Flame: Flame — это вредоносная шпионская программа us es SQLite.
- Microsoft: Из трафика в списке рассылки SQLite можно сделать вывод, что по крайней мере одна группа внутри Microsoft использует SQLite при разработке игровой программы.
- Skype: Skype использует SQLite в клиенте Skype для Mac OS X и Windows.
- Adobe: Adobe использует SQLite в качестве формата файла приложения для своего продукта Photoshop Lightroom.
- Airbus: Airbus использует SQLite в своем программном обеспечении для полетов.
- Apple: Apple использует SQLite для многих функций в Mac OS X, включая Apple Mail, Safari и Aperture. Apple использует SQLite в iPhone, iPod touch и в программном обеспечении iTunes.
- Intuit: Intuit явно использует SQLite в QuickBooks и TurboTax.
- PHP: язык программирования PHP поставляется со встроенными SQLite2 и SQLite3.
- Python: SQLite поставляется в комплекте с языком программирования Python, начиная с Python 2.5.
- REALbasic: среда программирования REALbasic поставляется в комплекте с улучшенная версия SQLite, которая поддерживает шифрование AES.
- Tcl/Tk: язык программирования Tcl/Tk теперь поставляется со встроенным SQLite.
Ограничения в SQLite
- Максимальный размер базы данных: каждая база данных состоит из одной или нескольких «страниц» с разными размерами от 512 до 65536. Максимальный размер файла базы данных составляет 2147483646 страниц.
- Максимальное количество таблиц в схеме: для каждой таблицы и индекса требуется как минимум одна страница в файле базы данных. Максимальное количество страниц в файле базы данных — 2147483646, поэтому это верхняя граница количества таблиц и индексов в схеме.
- Максимальное количество строк в таблице: теоретическое максимальное количество строк в таблице — 264 (18446744073709551616 или около 1,8e + 19). Этот предел недостижим, поскольку сначала будет достигнут максимальный размер базы данных в 140 терабайт.
- Максимальное количество подключенных баз данных: количество одновременных подключений баз данных ограничено значением SQLITE_MAX_ATTACHED, которое по умолчанию установлено на 10. Генератор кода в SQLite использует растровые изображения для отслеживания подключенных баз данных. Это означает, что количество подключенных баз данных не может быть увеличено выше 62.
- Максимальная длина строки или BLOB: максимальное количество байтов в строке или BLOB в SQLite определяется макросом препроцессора SQLITE_MAX_LENGTH . Значение этого макроса по умолчанию — 1 миллиард (1 тысяча миллионов или 1 000 000 000).
- Максимальное количество столбцов: параметр времени компиляции SQLITE_MAX_COLUMN используется для установки верхней границы количества столбцов в стол. Значение по умолчанию для SQLITE_MAX_COLUMN — 2000. Вы можете изменить его во время компиляции на значения размером до 32767.
- Максимальная длина оператора SQL: максимальное количество байтов в тексте оператора SQL. ограничен SQLITE_MAX_SQL_LENGTH, который по умолчанию равен 1000000. Вы можете переопределить этот предел, чтобы он был равным меньшему из SQLITE_MAX_LENGTH и 1073741824.
- Максимальное количество таблиц в объединении: SQLite не поддерживает объединения, содержащие больше чем 64 стола.
- Максимальное количество аргументов функции: параметр SQLITE_MAX_FUNCTION_ARG определяет максимальное количество параметров, которые могут быть переданы в функцию SQL, и верхнюю границу для SQLITE_MAX_FUNCTION_ARG, равную 127.
- Максимальное количество терминов в составном операторе SELECT: Составной оператор SELECT — это два или более операторов SELECT, соединенных операторами UNION, UNION ALL, EXCEPT или INTERSECT. Максимальное количество терминов — SQLITE_MAX_COMPOUND_SELECT, значение по умолчанию — 500.
Инструменты, связанные с SQLite
- Браузер базы данных SQLite (мультиплатформенный)
- Диспетчер SQLite
- SQLiteMan (мультиплатформенный)
- SpatiaLite
Функции SQL, не реализованные в SQLite
- ПРАВОЕ и ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
- Полная поддержка ALTER TABLE.
- Полная поддержка триггеров
- Запись в представления
- GRANT и REVOKE
Учебник по SQLite3 от w3resource
Перед тем, как начать это руководство, вы должны иметь некоторые знания по SQL, например, как данные хранятся в таблице, как обновляется, как удаляется, как выполняется поиск и т. д.
Задачи руководства:
- Краткое и краткое описание поможет вам разобраться в теме/команде SQLite.
- Синтаксис команды SQLite с описанием всех используемых параметров.
- Вывод команды SQLite при выполнении из командной строки.
Объяснение кода.
Упражнения SQLite, практика , Решение: Отсюда вы можете практиковать сотни упражнений по SQLite. Эти упражнения помогут вам улучшить свои навыки работы с SQLite.