Raspberry Pi:Настройка/База данных SQLite на Raspberry Pi: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 43: | Строка 43: | ||
Установить [[SQLite]] на [[Raspberry Pi]] можно при помощи следующей команды: | Установить [[SQLite]] на [[Raspberry Pi]] можно при помощи следующей команды: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pi@raspberry:~ $ sudo apt-get install sqlite3 | pi@raspberry:~ $ sudo apt-get install sqlite3 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 53: | Строка 53: | ||
В комплекте с библиотекой [[SQLite]] идет оболочка [[SQLite]]. Воспользуйтесь командой ниже, чтобы вызвать эту оболочку и создать базу данных: | В комплекте с библиотекой [[SQLite]] идет оболочка [[SQLite]]. Воспользуйтесь командой ниже, чтобы вызвать эту оболочку и создать базу данных: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pi@raspberry:~ $ sqlite3 sensordata.db | pi@raspberry:~ $ sqlite3 sensordata.db | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 59: | Строка 59: | ||
Это создаст файл '''«sensordata.db»'''. Кроме того, появится командная оболочка, где вы сможете вводить свои команды. Оболочка поддерживает два вида команд. Первый – это те, что начинаются с точки ('''«.»'''), и они используются для управления оболочкой. Попробуйте вписать следующую команду: | Это создаст файл '''«sensordata.db»'''. Кроме того, появится командная оболочка, где вы сможете вводить свои команды. Оболочка поддерживает два вида команд. Первый – это те, что начинаются с точки ('''«.»'''), и они используются для управления оболочкой. Попробуйте вписать следующую команду: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> .help | sqlite> .help | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 71: | Строка 71: | ||
[[File:sensordata.db-file_5.png|center]] | [[File:sensordata.db-file_5.png|center]] | ||
{{Примечание1|Теперь вы можете воспользоваться клавишей со стрелочкой вверх, чтобы переключаться между использованными командами.Эта оболочка также поддерживает команды [[SQL]], речь о которых пойдет в следующем разделе.}} | |||
Эта оболочка также поддерживает команды [[SQL]], речь о которых пойдет в следующем разделе. | |||
== Использование SQL для доступа к базам данных == | == Использование SQL для доступа к базам данных == | ||
Строка 86: | Строка 85: | ||
Давайте создадим простую таблицу с 6 столбцами, которая будет использоваться для хранения данных о температуре и влажности в разных частях дома. Для этого понадобится такой код: | Давайте создадим простую таблицу с 6 столбцами, которая будет использоваться для хранения данных о температуре и влажности в разных частях дома. Для этого понадобится такой код: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> BEGIN; | sqlite> BEGIN; | ||
sqlite> CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT); | sqlite> CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT); | ||
Строка 94: | Строка 93: | ||
Чтобы увидеть эту таблицу, впишите: | Чтобы увидеть эту таблицу, впишите: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> .tables | sqlite> .tables | ||
dhtreadings | dhtreadings | ||
Строка 103: | Строка 102: | ||
Чтобы увидеть полную схему этих таблиц, впишите следующее: | Чтобы увидеть полную схему этих таблиц, впишите следующее: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> .fullschema | sqlite> .fullschema | ||
CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT); | CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currentime TIME, device TEXT); | ||
Строка 112: | Строка 111: | ||
Чтобы добавить в базу данных новые данные о температуре и влажности, нужно сделать примерно следующее: | Чтобы добавить в базу данных новые данные о температуре и влажности, нужно сделать примерно следующее: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> BEGIN; | sqlite> BEGIN; | ||
sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.4, 48, date('now'), time('now'), "manual"); | sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.4, 48, date('now'), time('now'), "manual"); | ||
Строка 122: | Строка 121: | ||
Чтобы получить доступ к данным, хранящимся в базе данных, понадобится команда '''SELECT'''. | Чтобы получить доступ к данным, хранящимся в базе данных, понадобится команда '''SELECT'''. | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> SELECT * FROM dhtreadings; | sqlite> SELECT * FROM dhtreadings; | ||
1|22.4|48|2017-01-26|23:43:13|manual | 1|22.4|48|2017-01-26|23:43:13|manual | ||
Строка 129: | Строка 128: | ||
На данный момент в базе данных есть лишь одна порция данных. Вы можете добавить в нее новые данные при помощи следующего кода: | На данный момент в базе данных есть лишь одна порция данных. Вы можете добавить в нее новые данные при помощи следующего кода: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> BEGIN; | sqlite> BEGIN; | ||
sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.5, 48.7, date('now'), time('now'), "manual"); | sqlite> INSERT INTO dhtreadings(temperature, humidity, currentdate, currentime, device) values(22.5, 48.7, date('now'), time('now'), "manual"); | ||
Строка 137: | Строка 136: | ||
Таким образом, когда мы воспользуемся командой '''SELECT''' во второй раз, она вернет уже две порции данных: | Таким образом, когда мы воспользуемся командой '''SELECT''' во второй раз, она вернет уже две порции данных: | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> SELECT * FROM dhtreadings; | sqlite> SELECT * FROM dhtreadings; | ||
1|22.4|48|2017-01-26|23:43:13|manual | 1|22.4|48|2017-01-26|23:43:13|manual | ||
Строка 153: | Строка 152: | ||
Если вы хотите полностью удалить таблицу из базы данных, нужно воспользоваться командой '''DROP TABLE'''. | Если вы хотите полностью удалить таблицу из базы данных, нужно воспользоваться командой '''DROP TABLE'''. | ||
{{Внимание1|Команда ниже полностью удалит таблицу '''«dhtreadings»'''.}} | |||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> DROP TABLE dhtreadings; | sqlite> DROP TABLE dhtreadings; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 161: | Строка 160: | ||
Теперь, если вписать команду '''.tables'''... | Теперь, если вписать команду '''.tables'''... | ||
<syntaxhighlight lang="sql | <syntaxhighlight lang="sql"> | ||
sqlite> .tables | sqlite> .tables | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 168: | Строка 167: | ||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> |
Текущая версия от 18:17, 14 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы 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.
sqlite> DROP TABLE dhtreadings;
Теперь, если вписать команду .tables...
sqlite> .tables
...она не вернет никаких данных, потому что этой таблицы больше нет.