Raspberry Pi:Настройка/База данных SQLite на Raspberry Pi
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
База данных SQLite на Raspberry Pi[1]
В этой статье мы расскажем о SQLite – это маленькая, встраиваемая библиотека, с помощью которой вашу программу можно оснастить автономной, транзакционной, бессерверной базой данных SQL, которой не нужна никакая настройка. SQLite – это самый распространенный движок баз данных в мире, и его исходный код есть в публичном доступе.
Что такое SQLite?
SQLite – это встраиваемая база данных. В отличие от других баз данных SQL, SQLite не имеет отдельного серверного процесса. В SQLite считывание и запись данных выполняются прямо в обычные дисковые файлы. То есть вся база данных SQL – со всеми таблицами, индексами, триггерами и представлениями – содержится в одном дисковом файле.
Это руководство объясняет, как установить SQLite на Raspberry Pi, а также показывает основные команды, позволяющие использовать SQLite в проектах RPi.
Более подробно о 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 для доступа к базам данных
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
...она не вернет никаких данных, потому что этой таблицы больше нет.