Хочу приобщиться к работе с базами данных SQLite как на Ubuntu Trusty, так и по аналогии и с Rasbperry Pi 3 Model B. В основе же лежит deb ориентированность дистрибутива, а значит все будет одинаково.
Structured Query Language (т.е. SQL; переводится как «язык структурированных запросов») – это язык, используемый для взаимодействия с базами данных. Его можно использовать для создания таблиц, а также вставки, изменения, удаления и поиска данных.
На заметку: операторы языка SQL обязаны заканчиваться символом точки с запятой («;»)
SQLite — это не аналог Mssql, она файловая, а потому не особо предназначена на очень требовательных приложений. Да и к тому же накладывает на дисковую подсистему свои требования по скорости. Файловая это когда, база представляет из себя файл в котором располагаются таблицы, структура и собственно данные.
ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y
ekzorchik@srv-trusty:~$ sudo reboot
ekzorchik@srv-trusty:~$ sudo apt-get autoremove -y
ekzorchik@srv-trusty:~$ uname -a
Linux srv-trusty 4.4.0-89-generic #112~14.04.1-Ubuntu SMP Tue Aug 1
22:08:32 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ekzorchik@srv-trusty:~$ sudo apt-get install sqlite3 -y
Чтобы создать базу данных через консоль:
ekzorchik@srv-trusty:~$ sqlite3 database.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
параметры начинающиеся с символа точка «.»
в консоли sqlite>
– используются для управления оболочкой. К примеру команда справки «.help», «.quit»
для выхода из консоли управления базой данных sqlite
. Чтобы отобразить список всех баз и их месторасположение:
sqlite> .databases
seqname file
----------------------------------------------------------------------------
0 main /home/ekzorchik/database.db
Чтобы создать таблицы в базе данных:
sqlite> BEGIN;
sqlite> create table dht (id integer primary key autoincrement,temperature
numeric,humidity numeric, currentdate date, currenttime time, device
text);
sqlite> COMMIT;
sqlite> .quit
, где:
- integer — целое число
- text — значение представляет из себя обычный
текст - «temperature» – данные о температуре
- «humidity» – данные о влажности
- «currentdate» – текущая дата
- «currenttime» – текущее время
- «device» – название устройства.
Чтобы отобразить все таблицы в базе данных:
ekzorchik@srv-trusty:~$ sqlite3 database
sqlite> .tables
dht
Чтобы удалить конкретную таблицу в базе данных нужно предварительно к ней подключиться:
sqlite> drop table dht;
Чтобы выгрузить базу в sql формат:
ekzorchik@srv-trusty:~$ sqlite3 database.db .dump > database.sql
ekzorchik@srv-trusty:~$ file database.db
database.db: SQLite 3.x database
ekzorchik@srv-trusty:~$ file database.sql
database.sql: ASCII text
Чтобы восстановить из sql формата базу данных db:
ekzorchik@srv-trusty:~$ sqlite3 database.db < database.sql
Чтобы отобразить структуры таблицы в базе данных, т. е. Какие поля и какой тип
значений для них задан:
ekzorchik@srv-trusty:~$ sqlite3 database
sqlite> .schema dht
CREATE
TABLE dht (id integer primary key autoincrement,temperature
numeric,humidity numeric, currentdate date, currenttime time, device
text);
sqlite> .quit
На заметку: Многие руководства в интернете приводят команды которых уже нет в текущей версии, а потому можно посмотреть руководства в интернете, а потом сравнить со встроенным мануалом (.help)
.
Чтобы в существующую таблицу вставить значения:
ekzorchik@srv-trusty:~$ sqlite3 database
sqlite> BEGIN;
sqlite> insert into dht(temperature,humidity,currentdate,currenttime,device) values (36.6,60,DATE('now'),TIME('now'),"manual");
sqlite> COMMIT;
Чтобы отобразить содержимое таблицы в базе данных:
ekzorchik@srv-trusty:~$ sqlite3 database
sqlite> select * from dht;
1|36.6|60|2017-08-10|08:10:30|manual
Чтобы добавить новые данные в существующую таблицу:
sqlite> BEGIN;
sqlite> insert into dht(temperature,humidity,currentdate,currenttime,device) values(22.4,48.9,DATE('now'),TIME('now'),"manual");
sqlite> COMMIT;
sqlite> select * from dht;
1|36.6|60|2017-08-10|08:10:30|manual
2|22.4|48.9|2017-08-10|08:19:11|manual
Чтобы подключить/отключить другую базу данных в консоль управления SQLite:
ekzorchik@srv-trusty:~$ sqlite3
sqlite> attach database '/home/ekzorchik/database.db' as database;
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main
2 database /home/ekzorchik/database.db
sqlite> detach database 'database';
sqlite> .quit
А теперь я хочу разобрать что есть Web–сервис по взаимодействия с базами данных SQLite именуемый, как phpLiteAdmin:
ekzorchik@srv-trusty:~$ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-sqlite unzip -y
ekzorchik@srv-trusty:~$ sudo nano /var/www/html/index.php
<?php phpinfo();?>
ekzorchik@srv-trusty:~$ sudo chown www-data:www-data /var/www/html/index.php
После обращаемся к Web-странице (http://IP&DNS/index.php
) с целью увидеть отчет о работе данного скрипта, он должен быть, а не пустой белый экран.
После скрипт можно удалить, как и все дефолтное в корневом каталоге:
ekzorchik@srv-trusty:~$ sudo rm /var/www/html/*
Теперь устанавливаю phpLiteAdmin:
ekzorchik@srv-trusty:~$ sudo sqlite3 /var/www/html/lite.db
sqlite> BEGIN;
sqlite> COMMIT;
sqlite> .quit
ekzorchik@srv-trusty:~$ wget https://github.com/phpLiteAdmin/pla/archive/master.zip
ekzorchik@srv-trusty:~$ unzip master.zip
ekzorchik@srv-trusty:~$ sudo mv pla-master/* /var/www/html/
ekzorchik@srv-trusty:~$ sudo cp /var/www/html/phpliteadmin.config.sample.php /var/www/html/phpliteadmin.config.php
ekzorchik@srv-trusty:~$ sudo nano /var/www/html/phpliteadmin.config.php
$password = '712mbddr@';
$databases = array(
array(
'path'=> 'lite.db',
'name'=> 'lite'
)
)
ekzorchik@srv-trusty:~$ sudo chown -R www-data:www-data /var/www/html/
ekzorchik@srv-trusty:~$ sudo service apache2 restart
Авторизуюсь по паролем который я указал в конфигурационном файле.
- Password: 712mbddr@
- Remember me: отмечаю галочкой
и нажимаю кнопку Log In. Если все сделано правильно то в конечно итоге Вы должны увидеть тоже самое что и Я:
Ввожу название произвольной базы и нажимаю Create
- Create New Database: test
и вот передо мной визуализированное окно настройки свойств созданной базы данных:
Посредством данного Web-интерфейса удобно видеть наглядный код при создание, удалении, наполнении базы данных чтобы потом все же вернуться к консольной работе. Просто работая в консоли Вы делаете магию для других людей, пускаете пыль в глаза. Пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.