Руководство по SQLite для пользователей Windows
Текст документа является не совсем полным переводом четвертой и пятой глав монографии Grant Allen и Mike Owens ’The Definitive Guide to SQLite’. В частности, пропущены общие рассуждения во введениях к разделам и исторические ссылки, тонкости использования базы данных для пользователей Линукса.
SQLite — это встраиваемая реляционная база данных, поставляемая с исходными кодами. Впервые выпущена в 2000 году, предназначена для предоставления привычных возможностей реляционных баз данных без присущих им накладных расходов. За время эксплуатации успела заслужить репутацию как переносимая, легкая в использовании, компактная, производительная и надежная база данных.
Оглавление
2 ВВЕДЕНИЕ В SQLite
2.1 Встраиваемая база данных . . . . . . . . . . . . . . . . . . . . 3
2.2 Архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 Интерфейс . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Особенности и философия . . . . . . . . . . . . . . . . . . . . 4
2.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 НАЧИНАЕМ
3.1 Где брать SQLite ? . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 SQLite под Windows . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.1 Загрузка CLP . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.2 Загрузка DLL . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Утилита CLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.1 Интерактивное использование CLP . . . . . . . . . . . 8
3.3.2 CLP в пакетном режиме . . . . . . . . . . . . . . . . . . 8
3.4 Администрирование . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4.1 Создаем файл базы данных . . . . . . . . . . . . . . . . 9
3.4.2 Получение информации о внутренней схеме базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.3 Экспортирование данных . . . . . . . . . . . . . . . . . 12
3.4.4 Импортирование данных . . . . . . . . . . . . . . . . . 12
3.4.5 Форматирование . . . . . . . . . . . . . . . . . . . . . . 13
3.4.6 Экспортирование таблицы (Exporting Delimited Data) . 14
3.4.7 Автоматизация обслуживания БД . . . . . . . . . . . . 14
3.4.8 Бекап базы данных . . . . . . . . . . . . . . . . . . . . . 15
3.4.9 Получение информации о файле базы данных . . . . . 16
3.5 Дополнительные утилиты . . . . . . . . . . . . . . . . . . . . . 17
3.6 Ado.Net провайдер . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6.1 Построение консольного приложения на С-Sharp . . . 18
4 ЯЗЫК SQL В SQLite
4.1 Пример базы данных . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Подготовка БД . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.2 Выполнение примеров . . . . . . . . . . . . . . . . . . . 24
4.2 Синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 Операторы . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Константы . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.3 Ключевые слова и идентификаторы . . . . . . . . . . . 28
4.2.4 Комментарии . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Создание базы данных . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 Создание таблиц . . . . . . . . . . . . . . . . . . . . . . 29
4.3.2 Обновление таблиц . . . . . . . . . . . . . . . . . . . . . 30
4.4 Запросы к базе данных . . . . . . . . . . . . . . . . . . . . . . 31
4.4.1 Операции реляционной алгебры . . . . . . . . . . . . . 31
4.4.2 select и конвейер операций . . . . . . . . . . . . . . . . 33
4.4.3 Выборка . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.3.1 Значения . . . . . . . . . . . . . . . . . . . . . 36
4.4.3.2 Операции . . . . . . . . . . . . . . . . . . . . . 36
4.4.3.3 Бинарные операции . . . . . . . . . . . . . . . 37
4.4.3.4 Логические операции . . . . . . . . . . . . . . 39
4.4.3.5 Операция LIKE и GLOB . . . . . . . . . . . 39
4.4.4 Ограничение и упорядочение . . . . . . . . . . . . . . . 40
4.4.5 Функции и операции агрегирования . . . . . . . . . . . 42
4.4.6 Группировки . . . . . . . . . . . . . . . . . . . . . . . . 43
4.4.7 Удаление повторяющихся записей . . . . . . . . . . . . 47
4.4.8 Соединение таблиц . . . . . . . . . . . . . . . . . . . . . 48
4.4.8.1 Внутреннее соединение . . . . . . . . . . . . . 49
4.4.8.2 Прямое произведение . . . . . . . . . . . . . . 50
4.4.8.3 Внешнее соединение . . . . . . . . . . . . . . . 51
4.4.8.4 Естественное соединение . . . . . . . . . . . . 52
4.4.8.5 Предпочтительный синтаксис . . . . . . . . . 52
4.4.9 Имена и алиасы . . . . . . . . . . . . . . . . . . . . . . 52
4.4.10 Подзапросы . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.11 Составные запросы . . . . . . . . . . . . . . . . . . . . . 56
4.4.12 Условные выражения . . . . . . . . . . . . . . . . . . . 58
4.4.13 Обработка значений NULL в SQLite . . . . . . . . . 59
4.5 Итого . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5 ПРОДОЛЖАЕМ ИЗУЧАТЬ SQL В SQLite
5.1 Изменение данных . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.1 Вставка записей . . . . . . . . . . . . . . . . . . . . . . 62
5.1.1.1 Вставка одной записи . . . . . . . . . . . . . . 63
5.1.1.2 Вставка множества записей . . . . . . . . . . 64
5.1.1.3 Опять о вставке множества записей . . . . . . 65
5.1.2 Обновление записей . . . . . . . . . . . . . . . . . . . . 66
5.1.3 Удаление записей . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Целостность данных . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2.1 Целостность сущности . . . . . . . . . . . . . . . . . . . 67
5.2.1.1 Ограничение уникальности (unique) . . . . . 68
5.2.1.2 Ограничение первичного ключа . . . . . . . . 69
5.2.2 Доменная целостность . . . . . . . . . . . . . . . . . . 71
5.2.2.1 Значения по умолчанию . . . . . . . . . . . . 72
5.2.2.2 Ограничение not NULL . . . . . . . . . . . . . 73
5.2.2.3 Ограничение check . . . . . . . . . . . . . . . . 74
5.2.2.4 Внешние ключи . . . . . . . . . . . . . . . . . 75
5.2.2.5 Сортирующие последовательности (collation) 76
5.2.3 Классы памяти . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.4 Обзоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.5 Индексы . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.5.1 Сортирующие последовательности . . . . . . 82
5.2.5.2 Применение индексов . . . . . . . . . . . . . . 83
5.2.6 Триггеры . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.6.1 Триггер при обновлении . . . . . . . . . . . . 84
5.2.6.2 Обработка ошибок . . . . . . . . . . . . . . . . 85
5.2.6.3 Обновляемые обзоры . . . . . . . . . . . . . . 86
5.3 Транзакции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.1 Область видимости транзакций . . . . . . . . . . . . . 87
5.3.2 Политики разрешения конфликтов . . . . . . . . . . . 88
5.3.3 Блокировки в базе данных . . . . . . . . . . . . . . . . 91
5.3.4 Мертвые блокировки . . . . . . . . . . . . . . . . . . . . 92
5.3.5 Типы транзакций . . . . . . . . . . . . . . . . . . . . . . 93
5.4 Администрирование БД . . . . . . . . . . . . . . . . . . . . . . 94
5.4.1 Присоединение БД . . . . . . . . . . . . . . . . . . . . . 95
5.4.2 Уплотнение БД . . . . . . . . . . . . . . . . . . . . . . . 96
5.4.3 Конфигурирование БД . . . . . . . . . . . . . . . . . . 96
5.4.3.1 Размер кеша для соединения . . . . . . . . . . 96
5.4.3.2 Получение информации о базе данных . . . . 97
5.4.3.3 Перенос изменений в файл БД . . . . . . . . . 98
5.4.3.4 Хранилище временных объектов . . . . . . . 98
5.4.3.5 Размер страницы БД, кодировка и уплотнение 99
5.4.3.6 Отладка . . . . . . . . . . . . . . . . . . . . . . 99
5.4.4 Системный каталог . . . . . . . . . . . . . . . . . . . . . 99
5.4.5 План запроса . . . . . . . . . . . . . . . . . . . . . . . . 100
5.5 Итак . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6 SQLite Design and Conceptions
7 The Core C API
8 The Extension C API
9 SQLite Internals and New Features
SQLite Учебное пособие
SQLite это программная библиотека, которая реализует автономный, бессерверную, нулевой конфигурации, транзакционной SQL движок базы данных. SQLite является в мире наиболее широко используется ядро базы данных SQL. SQLite исходный код не является предметом ограничений авторского права.
Этот учебник покажет вам, как использовать программу SQLite, и позволяет быстро приступить к работе.
Кто должен взять этот учебник?
Этот учебник поможет новичкам понять SQLite движок базы данных через основы и передовых концепций.
Перед тем как читать этот учебник, вы должны знать:
Перед тем, как начать использовать все виды примеров этого руководства на практике, вы должны понимать, что представляет собой базу данных, в частности, СУБД, и что это язык программирования.
Компиляция / выполнение программы SQLite
Если вы хотите передать SQLite СУБД компиляция / выполнение программы SQL, но у вас нет соответствующих настроек, вы можете получить доступ к compileonline.com . Вам нужно всего лишь простые клики, вы можете испытать реальный опыт программирования на высокопроизводительных серверах. Этот онлайновый инструмент является полностью бесплатным.
SQLite Функции Справочное руководство
Это руководство содержит все важные функции встроенной справочной SQLite руководстве.
SQLite полезные ресурсы
В этом руководстве перечислены SQLite базы данных веб-сайтов и книг.
SQLite полезные сайты
Главная страница SQLite — SQLite Официальный сайт предоставляет последние SQLite установленная версия, последняя информация и полный учебник SQLite SQLite.
SQLite3 PHP — веб — сайт предоставляет полную информацию SQLite PHP поддержку 3 базы данных.
Драйвер JDBC SQLite: — SQLite JDBC, с помощью Taro Л. Сайто разработал Java для доступа и создания библиотеки SQLite файла базы данных.
-0,31 SQLite-DBD — SQLite драйвер Драйвер использует Perl с модулем Perl DBI.
1,625-The DBI — Perl — модуль DBI включает в себя SQLite, включая любую базу данных обеспечивает общий интерфейс.
Python SQLite — модуль sqlite3 Python состоит Герхард Haring подготовлен. Это обеспечивает совместимость с 2.0 спецификации интерфейса DB-API SQL.
Учебник по SQLite
Вступление
SQLite — это легкая внутрипроцессная библиотека, в которой реализован автономный серверный транзакционный механизм базы данных SQL с нулевой конфигурацией. Код для SQLite доступен в открытом доступе и, следовательно, он бесплатен для использования в любых целях, коммерческих или частных.
дизайн
- SQLite — это встроенный движок базы данных SQL
- SQLite не имеет отдельного серверного процесса, как большинство других баз данных SQL.
- SQLite читает и пишет напрямую в обычные файлы на диске.
- В одном файле на диске вся база данных SQL (несколько таблиц, индексов, триггеров и представлений) хранится в виде одного кроссплатформенного файла на хост-компьютере.
история
- Д. Ричард Хипп разработал SQLite весной 2000 года.
- В августе 2000 года была выпущена версия 1.0 SQLite, основанная на gdbm (GNU Database Manager).
- SQLite 2.0 заменил gdbm собственной реализацией B-дерева, добавив поддержку транзакций.
- Бета-версия SQLite 3.0.2 была выпущена 2004-06-30.
- В 2011 году Хипп объявил о своих планах добавить интерфейс 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 имеет небольшой объем кода, эффективно использует память, дисковое пространство и пропускную способность диска, отличается высокой надежностью и не требует обслуживания со стороны администратора базы данных.
- Stand-In для предприятия RDBMS. SQLite часто используется в качестве суррогата СУРБД предприятия для демонстрационных целей или для тестирования. SQLite работает быстро и не требует настройки, что значительно облегчает тестирование и делает демонстрации веселыми и удобными для запуска.
Языки программирования
SQLite имеет привязки для большого количества языков программирования, вот список:
Бейсик | Delphi | С | C # | C ++ | Машинка для стрижки // гавань | Обыкновенный Лисп | Curl |
D | Свободный Паскаль | Идти | Haskell | Java (на JVM и DVM) | JavaScript | Юля | LiveCode |
Lua | newLisp | Objective-C (на OS X и iOS) | OCaml | Perl | PHP | щука | PureBasic |
Pytdon | р | REALbasic | REBOL | Рубин | Схема | Болтовня | Tcl |
Visual Basic | Xojo |
Фреймворки веб-приложений
- Bugzilla, база данных ошибок Mozilla.
- Django, веб-фреймворк Python.
- Начиная с версии 7, Drupal, основанная на PHP система управления контентом для создания веб-сайтов и блогов, имеет возможность установки с использованием SQLite.
- Рубин на рельсах.
- web2py, веб-фреймворк Python.
Кто использует SQLite
- Google: Google использует SQLite на своем рабочем столе для Mac, в Google Gears, в операционной системе мобильного телефона Android и в браузере Chrome.
- Dropbox: Dropbox использует SQLite в качестве основного хранилища данных на стороне клиента для службы архивирования и синхронизации.
- Mozilla: Mozilla использует SQLite в качестве основного формата хранения метаданных для Firefox, веб-браузера и Thunderbird Email Reader.
- McAfee: McAfee использует SQLite в своих антивирусных программах.
- Flame: Flame — это вредоносная шпионская программа, использующая 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
Функции SQL, не реализованные в SQLite
- ПРАВИЛЬНОЕ И ПОЛНОЕ НАРУШЕНИЕ
- Полная поддержка ALTER TABLE
- Полная поддержка триггеров
- Запись в VIEWs
- Грант и отозвать
Учебник по SQLite3 от w3resource
Перед началом этого урока вы должны иметь некоторые знания о SQL, например, как данные хранятся в таблице, как обновляются, как удаляются, как ищутся и т. Д.
Цели обучения:
- Краткое и краткое описание, которое поможет вам понять команду topic / SQLite.
- Синтаксис команды SQLite с описанием всех используемых параметров.
- Объяснение кода.
- Вывод команды SQLite при выполнении командной строки формы.
Упражнения по SQLite, практика, решение: отсюда вы можете попрактиковаться в сотнях упражнений по SQLite, которые помогут вам улучшить свои навыки работы с SQLite.