Db browser for sqlite как пользоваться
Перейти к содержимому

Db browser for sqlite как пользоваться

  • автор:

Создание SQLite базы данных в DB Browser for SQLite

Базы данных SQLite очень удобны для работы с небольшими объемами данных как в Windows приложениях, так и в Android приложениях. В статье говорится, как создавать и подготавливать базы данных заранее.

Особенно SQLite удобен тем, что не нужно поднимать сервер СУБД перед использованием в приложениях.

Установка DB Browser for SQLite

Итак, скачиваем версию без установщика DB Browser for SQLite ( SQLiteBrowser ): http://sqlitebrowser.org:

Скачивание установщика

Просто распаковываем архив. В нем будет два EXE файла:

Файлы в распакованной папке

Файл DB Browser for SQLite.exe представляет обычную версию программы, а файл DB Browser for SQLCipher.exe позволяет работать с зашифрованными базами данных. И во второй программе есть вот такой пункт:

Возможность шифрования базы данных

Окно программы

Создание базы данных

Создадим простую базу данных database с одной таблицей и тремя столбцами:

Создание новой базы данных

Выбор имени файла новой базы данных

Появится окно создания таблицы в программе:

Открытая база данных

Создадим таблицу People :

Создание таблицы People

Ввиду того, что вдруг база данных будет использоваться в Android, то первым полем задавайте идентификатор по имени _id :

Создание поля _id

Добавим, например, поля Name и Age :

Создание полей базы данных

Структура базы данных

Во вкладке Данные можем вносить данные:

Вкладка Данные

Ввод первой строчки данных

Сохранение базы данных

У вас есть готовая база данных SQLite, которую можете использовать, где вам нужно:

Сохраненный файл базы данных

Статья обновлена 2019-08-05

Базы данных SQLite очень удобны для работы с небольшими объемами данных как в Windows приложениях, так и в Android приложениях. В статье говорится, как создавать и подготавливать базы данных заранее.

Базы данных SQLite очень удобны для работы с небольшими объемами данных как в Windows приложениях, так и в Android приложениях. В статье говорится, как создавать и подготавливать базы данных заранее.

Harrix

  • GitHub User
  • TODO@mail.ru

Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.

Как пользоваться SQLite

SQLite — это C- библиотека, реализующая движок базы данных SQL. Все данные хранятся в одном файле. Программы, использующие библиотеку SQLite, могут обращаться к базе данных с помощью языка SQL без работающего выделенного процесса СУБД. Это означает, что одновременные запросы (или параллельные пользователи) должны блокировать файл для безопасного изменения БД. Данный пункт очень важен, поскольку непосредственно затрагивает сферу применения SQLite — если в основном используется чтение данных, тогда никаких проблем нет, но если необходимо делать большое количество одновременных обновлений, то приложение будет тратить больше времени на синхронизацию блокировки файлов, чем делать настоящую работу.

Возможности SQLite:

Поддерживает большую часть SQL92, включая триггеры и транзанкции.
Существует система отката, защищающая целостность данных
Файлы БД могут совместно использоваться между машинами с различными запросами
Поддерживаются БД до 2 терабайт, занимая при этом небольшую часть памяти
Открытые исходные коды

Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.

Zero-configuration — no setup or administration needed.
Implements most of SQL92. (Features not supported)
A complete database is stored in a single cross-platform disk file.
Supports terabyte-sized databases and gigabyte-sized strings and blobs. (See limits.html.)

Small code footprint: less than 300KiB fully configured or less than 180KiB with optional features omitted.

Faster than popular client/server database engines for most common operations.
Simple, easy to use API .

Written in ANSI-C. TCL bindings included. Bindings for dozens of other languages available separately.

Well-commented source code with over 99% statement test coverage.
Available as a single ANSI-C source-code file that you can easily drop into another project.
Self-contained: no external dependencies.

Cross-platform: Unix (Linux and Mac OS X), OS /2, and Windows (Win32 and WinCE) are supported out of the box. Easy to port to other systems.

Sources are in the public domain. Use for any purpose.

Comes with a standalone command-line interface (CLI) client that can be used to administer SQLite databases.

Способ подключения к базе данных SQLite во всех языках практически одинаков. Все они требуют для этого выполнить два шага: во-первых, включить в код библиотеку SQLite (предоставляющую универсальные функции подключения), и во-вторых, подключиться к базе данных и запомнить это подключение для дальнейшего использования. В PHP для этого служит библиотека php-sqlite.

Установка

apt install sqlite3

Типы данных SQLite

Типы данных SQLite: INTEGER, REAL, TEXT, BLOB, NULL.

SQLite не имеют классов, предназначенных для хранения дат и/или времени. Вместо этого, встроенные функции даты и времени в SQLite способны работать с датами и временем, сохраненными в виде значений TEXT, REAL и INTEGER в следующих форматах:

TEXT как строка формата ISO8601 («YYYY-MM-DD HH:MM:SS.SSS»).

REAL как числа юлианского календаря. То есть число дней с полудня 24 ноября 4714 г. до н.э. по Гринвичу в соответствии с ранним григорианским календарём.

INTEGER как время Unix, — количество секунд с 1970-01-01 00:00:00 UTC.

В приложениях следует выбирать, в каком из этих форматов хранить даты и время, а затем можно свободно конвертировать из одного формата в другой с помощью встроенных функций даты и времени.

Пример. Вставить текущую дату используя встроенную функцию datetime()

INSERT INTO stat VALUES(NULL, datetime('now'));

Консоль для SQLite

Утилита sqlite3 — консоль управления базой SQLite. Запуск.

$ sqlite3 db.sqlite SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>

Вывести известные команды наберите .help

Установка SQLite на Windows 10 и Запуск SQLite3 на Windows

SQLite-песочница в браузере

Чего мне всегда не хватало, так это аналога JSFiddle для SQLite. Онлайн-песочницы, в которой можно быстро проверить SQL-запрос и поделиться с другими.

Вот чего хотелось:

  • Возможность загрузить готовую базу, а не писать SQL для создания таблиц.
  • Подключать как локальные базы, так и удаленные (по url).
  • Сохранять базу и запросы в облаке.
  • Бесплатно и без регистрации.
  • Свежайшая версия SQLite.
  • Минимализм.

В итоге сделал такую песочницу сам.

Реляционная база данных в браузере

Сначала покажу результат, потом расскажу, как все устроено:

  • демка с пустой базой;
  • пример заполненной базы;
  • исходники.

SQLite в браузере

Абсолютно во всех браузерах — что мобильных, что десктопных — уже встроена отличная СУБД, которая реализует стандарт SQL-92 (и большой кусок более поздних стандартов) — SQLite. Логично было бы дать к ней доступ через API браузера.

В конце нулевых многие браузерные вендоры так думали. Тогда появился стандарт Web SQL, который поддержали Apple (Safari), Google (Chrome) и Opera (еще популярная тогда). А Mozilla (Firefox) — нет. В результате в 2010 Web SQL убили, и дальше хранение данных в браузере пошло по NoSQL-пути (Indexed Database, Cache API).

В 2019 году в проекте sql.js Офир Ложкин скомпилировал исходники SQLite в WebAssembly («родной» бинарный формат для браузера). Это полноценная СУБД SQLite, которая работает в браузере (благо, она небольшая — бинарник занимает 300+ Кб).

sql.js — идеальный движок для онлайн-песочницы. Его я и взял.

Загрузка базы из файла

Получаем файл от пользователя через input[type=file] , считываем через FileReader , преобразуем в 8-битный массив и загружаем в SQLite:

const file = event.target.files[0]; const reader = new FileReader(); reader.onload = function () < const arr = new Uint8Array(reader.result); return new SQL.Database(arr); >; reader.readAsArrayBuffer(file);

Загрузка базы по URL

Загружаем файл с помощью fetch() , начитываем ответ в ArrayBuffer , а дальше как с обычным файлом:

const resp = await fetch(url); const buffer = await response.arrayBuffer(); const arr = new Uint8Array(buffer); return new SQL.Database(arr);

Одинаково хорошо работает с локальными и удаленными URL. Удобно загружать базы, которые хостятся на гитхабе — достаточно использовать домен raw.githubusercontent.com вместо github.com . Например:

https://github.com/nalgeon/sqliter/blob/main/employees.db → https://raw.githubusercontent.com/nalgeon/sqliter/main/employees.db

Запросы к базе

Пожалуй, самая простая часть — sql.js предоставляет удобное API для запросов:

// выполнить один или несколько запросов // и вернуть результат последнего из них const result = db.exec(sql); if (!result.length) < return null; >return result[result.length - 1];

Экспорт базы в SQL-скрипт

Бинарный контент базы получить несложно — sql.js предоставляет отдельный метод:

const buffer = db.export(); const blob = new Blob([buffer]); const link = document.createElement("a"); link.href = window.URL.createObjectURL(blob); // . link.click();

Но мне хотелось сохранять не бинарник, а полный SQL, который создает схему и заполняет таблицы данными. Так результат можно посмотреть глазами и загрузить в PostgreSQL или другую СУБД.

Для экспорта базы в SQL я воспользовался алгоритмом питонячей утилиты sqlite-dump. Код довольно объемный, поэтому не буду приводить здесь (если интересно, подробности в dumper.js). Вкратце:

  1. Получаем список таблиц из системной таблицы sqlite_schema , формируем запросы create table.
  2. Для каждой таблицы получаем список столбцов из виртуальной таблицы table_info(name) .
  3. Выбираем данные из каждой таблицы и формируем запросы insert into.

Получается вполне читаемый скрипт:

CREATE TABLE IF NOT EXISTS employees ( id integer primary key, name text, city text, department text, salary integer ); INSERT INTO "employees" VALUES(11,'Дарья','Самара','hr',70); INSERT INTO "employees" VALUES(12,'Борис','Самара','hr',78); INSERT INTO "employees" VALUES(21,'Елена','Самара','it',84); . 

Сохранение в облаке

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

К счастью, есть GitHub Gist API, который идеально подходит по всем критериям:

  • многие разработчики уже зарегистрированы на гитхабе;
  • разрешен CORS (можно делать запросы с других доменов);
  • приятный интерфейс пользователя;
  • бесплатный и надежный.

Интеграция через обычный fetch() : GET на выборку гиста, POST на сохранение.

// формируем SQL-скрипт из базы const data = export(db); // сохраняем в виде гиста fetch("https://api.github.com/gists", < method: "post", headers: < Accept: "application/json", "Content-Type": "application/json", Authorization: `Token $` >, body: JSON.stringify(data), >);

От пользователя требуется только указать гитхабовский API-токен. Удобно, что токену можно дать разрешение исключительно на работу с гистами — сделать что-то плохое в репозиториях по такому токену заведомо не получится.

Пользовательский интерфейс

Современные фронтенд-проекты переполнены тулингом и инфраструктурными штуками, а мне это совсем не интересно (я не js-разработчик). Поэтому сознательно не стал использовать UI-фреймворки и сделал все на ванильном html + css + js. Кажется, для небольшого проекта это вполне допустимо.

Позаботился о верстке под мобильные — хотелось, чтобы песочницей можно было пользоваться с телефона. А на десктопе работают шорткаты для основных операций.

Код при этом получился достаточно модульным, благодаря нативным js-модулям и веб-компонентам — их поддерживают все современные браузеры. Наверно, настоящий фронтендер поморщится, но мне норм.

Хостится песочница на GitHub Pages, а деплой сводится к обычному git push . Поскольку этапа сборки нет, не пришлось даже настраивать GitHub Actions.

Резюме

Буду рад, если SQLite-песочница вам пригодится. Или, возможно, кому-то окажется полезен сам подход к созданию бессерверных проектов на JS + GitHub API. За конструктивную критику тоже буду благодарен, конечно ツ

Если интересно, как использовать SQLite на полную — подписывайтесь на канал @sqliter

Db browser for sqlite как пользоваться

Одним из популярных графических клиентов для SQLite является программа DB Browser for SQLite , которая доступна по адресу https://sqlitebrowser.org/.

Для установки графического клиента перейдем на страницу загрузок https://sqlitebrowser.org/dl/, где мы можем найти различые варианты пакетов для разных операционных систем и архитектур:

Графический клиент DB Browser for SQLite

Например, в моем случае ОС — Windows 64x, поэтому я выбираю пакет DB Browser for SQLite — Standard installer for 64-bit Windows , который представляет установщик программы для 64-битной Windows.

После установки запустим программу:

Программа установки DB Browser for SQLite

Нам откроется следующее окно

DB Browser for SQLite

В рамках данной программы для управления базой данных мы можем использовать как графические возможности, так и запросы SQL. Так, создадим базу данных. Для этого нажмем на кнопку New Database (или через меню File -> New Database ). Далее нам будет предложено указать место и имя новой бд. Например, в моем случае файл базы данных будет называться people.db

создание базы данных в DB Browser for SQLite

Впоследствии созданную базу данных можно будеть открыть с помощью кнопки Open Database или через меню File -> Open Database .

После этого нам будет предложено создать первую таблицу

создание таблицы в DB Browser for SQLite

На этом окне в поле Table введем в качестве названия таблицы Users .

На вкладке Fields , которая содержит определения столбцов, нажмем на кнопку Add . И после нажатия в таблицу чуть ниже кнопки будут добавлять определения столбцов таблицы. Для первого столбца укажем в качестве имени Name , а в качестве типа — TEXT . Для второго столбца укажем в качестве имени Age , а в качестве типа — INTEGER .

То есть у нас будет таблица User со столбцами Name и Age.

После определения столбцов нажмем на кнопку OK, и программа сгенерирует новую таблицу:

управления таблицей в DB Browser for SQLite

Для управления данными перейдем на вкладку Browse Data . По умолчанию у нас нет никаких данных

данные таблицы в DB Browser for SQLite

Добавим в таблицу одну строку. Для этого на панели инструментов нажмем на кнопку и в добаленную строку введем какие-нибудь данные:

добавление данных в таблицу в DB Browser for SQLite

После добавления данных (впрочем как и после их изменения и удаления) для подтверждения изменений нажмем на панели инструментов на кнопку Write Changes (или на пункт меню File -> Write Changes ). И данные будут записаны в базу данных.

Выполнение запросов SQL

Также для упавления таблицами и данными можно использовать запросы SQL. Для написания и выполнения запроса SQL перейдем на вкладку Execute SQL

Execute SQL в DB Browser for SQLite

После этого в центральной части программы откроется окно для ввода скрипта SQL. Введем в него следующую команду:

CREATE TABLE users2 ( name TEXT, age INTEGER ); INSERT INTO users2 (name, age) VALUES ('Tom', 37); INSERT INTO users2 (name, age) VALUES ('Alice', 29);

Здесь создается таблица users2, которая фактически аналогична ранее созданной таблице users. Она также имеет два столбца name и age. И в нее добавляюся две строки.

Для выполнения этого кода нажмем на синюю стрелку на панели инструментов. И после запуска кода SQL мы сможем увидеть отчет о его выполнения

Выполнение скрипта SQL в DB Browser for SQLite

После добавления мы можем получить данные. Для этого введем следующий код:

SELECT * FROM users2;

И также нажмем на кнопку выполнения кода SQL:

скрипт SQL в DB Browser for SQLite

Либо можем те же данные увидеть в графическом дизайнере:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *