В течение последних нескольких месяцев я учился включать файловые базы данных SQLite в программное обеспечение. SQLite стал жизнеспособным кандидатом на замену Microsoft Access в качестве серверных баз данных в большей части программного обеспечения, которое я пишу по своей профессии. У него нет этого глупого ограничения размера в 2 ГБ, которое было проклятием моей карьеры программиста. Я сталкиваюсь с приложениями, обрабатывающими данные, которым потребуется гораздо больше данных, чем может содержаться в базе данных Access.

Я переключился на SQLite, потому что другое программное обеспечение, которое я либо кормлю, либо потребляю, будет переходить на SQLite (я знаю, поздно, но это работа правительства). Это привело к тому, что мне пришлось исследовать, как использовать SQLite, и выяснить, как делать все то, что я делаю с файлами Access с базой данных SQLite. Например, у меня был код, который запрашивает базы данных Oracle и помещает результаты в базы данных Access для обработки данных. Мне пришлось выяснить, как поместить эти данные в базу данных SQLite. Кроме того, поскольку базы данных в конечном итоге становятся огромными, мне пришлось разделить их на более мелкие базы данных, обработать данные и объединить результаты в новую базу данных. Я должен был бы делать то же самое с SQLite. Также приложение, которое я тратил последние несколько месяцев (если не лет) на отправку, извлечение и манипулирование данными с использованием различных языков программирования: VB.NET, VBA, SQL и Python. Я использую различные технологии вместе: ADO.Net, Task Parallel Library (TPL), .Net Framework, DAO и все, что с ними связано. Я также звоню и получаю результаты из Microsoft Access (2013 или 2016), Microsoft Excel (2013 или 2016) и ArcGIS 10.5, работающих либо в Windows 10, либо в Windows 2012 R2. функции, предоставляемые Access и Excel, и заменить их на SQLite. Поэтому я написал небольшую программу в качестве практики. Эта программа предназначена для практики использования SQLite с момента ее установки, поэтому я могу использовать ее для развертывания программы на сервере, который ее использует.

В этой статье будет рассказано о том, что такое SQLite, и объяснено, что я узнал о том, как его использовать. Моя цель состояла бы в том, чтобы задокументировать все, что я знаю сейчас из того, что хотел бы знать месяц назад. Я предполагаю, что читатель знаком со всем, о чем я здесь пишу, кроме того, что касается SQLite. Я хочу рассказать об установке SQLite; и создание баз данных, таблиц, представлений.

Во-первых, SQLite — это бесплатная платформа файловой базы данных с открытым исходным кодом, которую можно использовать для хранения данных на диске и которая имеет достаточно наворотов, чтобы вы могли использовать ее в качестве реляционной базы данных. База данных SQLite занимает мало места в вашей системе, даже если в ней очень много записей. Он переносим на разные компьютеры и операционные системы и не требует для работы какого-либо серверного программного обеспечения. Вот почему SQLite отлично подходит, когда вам не нужно поддерживать множество одновременных пользователей и когда вам не нужно корпоративное решение. Используйте Oracle или Microsoft SQL Server или другой вариант для такой ситуации. SQL, который вы пишете для управления SQLite, очень близок к SQL, который вы используете для Access, Excel, Oracle или любой другой платформы. Различия есть, но они относительно незначительны. Я расскажу о некоторых из этих «подводных камней» позже. В моей текущей ситуации SQLite было бы достаточно, но с чего начать?

Установка SQLite

Большая часть кода будет написана с использованием Visual Studio 2017, поэтому возникает вопрос: существуют ли драйверы ODBC, которые я могу использовать, чтобы мой код мог взаимодействовать с базами данных SQLite? да. Да, я думал, что проще всего использовать Управление пакетами Nuget для установки необходимых частей в Visual Studio. Если вы собираетесь использовать .Net Framework, я предлагаю установить System.Data.SQLite и System.Data.SQLite.Core. Если вы хотите запустить SQLite из командной строки или вне Visual Studio, перейдите на https ://www.sqlite.org/download.html и выбери свой яд. Для Windows сделайте то же, что и я: загрузите и установите sqlite_dll_win64-x64–3290000.zip. Его легко установить. Вам не нужно делать ничего особенного для Python, потому что SQLite предустановлен. Выполнение этих установок означает, что вы можете просматривать свои базы данных и выполнять множество задач либо из Python, Visual Studio, либо из командной строки. Однако, если вам нужен графический интерфейс, такой как Microsoft Access или PL/SQL Developer, вам нужно будет установить что-то дополнительное. К счастью, вариантов много, и некоторые из них даже бесплатны. Я использую программное обеспечение, которое кто-то мне подсказал, SQLite Expert Personal 5–64bit.exe. Есть и 32-битная версия. Вы можете либо заплатить, чтобы получить полную версию, либо получить бесплатную. Мне не нужна полная версия, потому что я использую ее для просмотра структуры данной базы данных SQLite, чтобы увидеть, работает ли она так, как я ожидаю. Я даже могу протестировать операторы SQL, чтобы увидеть, имеют ли они смысл. Загрузите его с http://www.sqliteexpert.com/download.html.

Общие сведения, о которых следует помнить

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

Хорошо использовать транзакции в SQLite, потому что, как и в других базах данных, это позволяет действительно легко выполнять множество действий и иметь возможность фиксировать эти изменения или откатывать их в одной строке кода! Также полезно помнить о некоторых различиях в SQLite SQL. Например, SQLite задыхается, если вы пытаетесь вставить текст с апострофом (‘). Также у него нет отдельного типа данных для даты/времени. Если вы переносите свои данные в SQLite, чтобы использовать их из другой базы данных, такой как MS Access, вам необходимо обязательно массировать любой текст, содержащий кавычки или даты в данных, прежде чем он будет вставлен.

Вывод

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

Справочные ссылки

https://www.sqlitetutorial.net/sqlite-python/creating-database/

https://www.sqlitetutorial.net/sqlite-python/create-tables/

https://www.sqlitetutorial.net/sqlite-python/creating-database/

https://dataset.readthedocs.io/en/latest/