Raspberry Pi:Настройка/База данных SQLite на Raspberry Pi

Материал из Онлайн справочника
Версия от 19:20, 31 марта 2017; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


База данных SQLite на Raspberry Pi[1]

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

Что такое SQLite?

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

Это руководство объясняет, как установить SQLite на Raspberry Pi, а также показывает основные команды, позволяющие использовать SQLite в проектах RPi.

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

Более подробно о SQLite можно почитать в официальной документации.

Настройка Raspberry Pi

О том, как начать работать с Raspberry Pi, читайте тут. О дополнительных настройках Raspberry Pi читайте тут.

Почему SQLite?

Ниже – список функций, делающих SQLite первоклассной базой данных:

  • Целиком хранится в одном кроссплатформенном дисковом файле
  • Очень невелика и занимает мало места на диске
  • Автономна (не требует внешних зависимостей)
  • Не требует отдельного серверного процесса
  • Не требует настройки
  • Кроссплатформенна: доступна на UNIX (Linux, Mac OS-X, Android, iOS) и Windows (Win32, WinCE, WinRT)

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

Установка SQLite на Raspberry Pi

Установить SQLite на Raspberry Pi можно при помощи следующей команды:

pi@raspberry:~ $ sudo apt-get install sqlite3

Чтобы подтвердить установку, вам нужно будет также вписать  Y  и нажать  ↵ Enter .

В комплекте с библиотекой SQLite идет оболочка SQLite. Воспользуйтесь командой ниже, чтобы вызвать эту оболочку и создать базу данных:

pi@raspberry:~ $ sqlite3 sensordata.db

Это создаст файл «sensordata.db». Кроме того, появится командная оболочка, где вы сможете вводить свои команды. Оболочка поддерживает два вида команд. Первый – это те, что начинаются с точки («.»), и они используются для управления оболочкой. Попробуйте вписать следующую команду:

sqlite> .help

При помощи команды .help вы можете вызвать список всех поддерживаемых команд с описанием того, за что они отвечают.

Чтобы выйти из оболочки SQLite, впишите команду .quit.

Примечание: Теперь вы можете воспользоваться клавишей со стрелочкой вверх, чтобы переключаться между использованными командами. Эта оболочка также поддерживает команды SQL, речь о которых пойдет в следующем разделе.

Использование SQL для доступа к базам данных

Structured Query Language (т.е. SQL; переводится как «язык структурированных запросов») – это язык, используемый для взаимодействия с базами данных. Его можно использовать для создания таблиц, а также вставки, изменения, удаления и поиска данных.

SQL совместим с различными базами данных, в число которых входят SQLite, MySQL и т.д. Операторы языка SQL должны заканчиваться точкой с запятой (т.е. символом «;»).

Команды SQL, как правило, пишутся заглавными буквами, но это необязательно. Многие предпочитают использовать заглавные буквы, потому что это делает код более читаемым.

Команда CREATE TABLE в SQL (создание таблицы)

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

sqlite> BEGIN;
sqlite> CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT);
sqlite> COMMIT;

Чтобы увидеть эту таблицу, впишите:

sqlite> .tables
dhtreadings

Это откроет только что созданную нами таблицу под названием «dhtreadings».

Чтобы увидеть полную схему этих таблиц, впишите следующее:

sqlite> .fullschema
CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT);

Команда INSERT в SQL (вставка данных)

Чтобы добавить в базу данных новые данные о температуре и влажности, нужно сделать примерно следующее:

sqlite> BEGIN;
sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.4, 48, date('now'), time('now'), "manual");
sqlite> COMMIT;

Команда SELECT в SQL (просмотр данных)

Чтобы получить доступ к данным, хранящимся в базе данных, понадобится команда SELECT.

sqlite> SELECT * FROM dhtreadings;
1|22.4|48|2017-01-26|23:43:13|manual

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

sqlite> BEGIN;
sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.5, 48.7, date('now'), time('now'), "manual");
sqlite> COMMIT;

Таким образом, когда мы воспользуемся командой SELECT во второй раз, она вернет уже две порции данных:

sqlite> SELECT * FROM dhtreadings;
1|22.4|48|2017-01-26|23:43:13|manual
2|22.5|48.7|2017-01-26|23:43:54|manual

Чтобы было понятней, представьте это как таблицу в Excel:

Здесь «id» – это номер порции данных, «temperature» – данные о температуре, «humidity» – данные о влажности, «currentdate» – текущая дата, «currenttime» – текущее время, «device» – название устройства.

Команда DROP TABLE в SQL (удаление таблицы)

Если вы хотите полностью удалить таблицу из базы данных, нужно воспользоваться командой DROP TABLE.

Внимание! Команда ниже полностью удалит таблицу «dhtreadings».

sqlite> DROP TABLE dhtreadings;

Теперь, если вписать команду .tables...

sqlite> .tables

...она не вернет никаких данных, потому что этой таблицы больше нет.

См.также

Внешние ссылки