Что есть SQLite и как им пользоваться

Posted by

Хочу приобщиться к работе с базами данных как на 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 именуемый, как :

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

Окно авторизации в Web: phpLiteAdmin

Авторизуюсь по паролем который я указал в конфигурационном файле.

  • Password: 712mbddr@
  • Remember me: отмечаю галочкой

и нажимаю кнопку Log In. Если все сделано правильно то в конечно итоге Вы должны увидеть тоже самое что и Я:

Первым делом в phpLiteAdmin нужно создать базу данных

Ввожу название произвольной базы и нажимаю Create

  • Create New Database: test

и вот передо мной визуализированное окно настройки свойств созданной базы данных:

Web-интерфейс управления файловой базой, а также создание новой базыПосредством данного Web-интерфейса удобно видеть наглядный код при создание, удалении, наполнении базы данных чтобы потом все же вернуться к консольной работе. Просто работая в консоли Вы делаете магию для других людей, пускаете пыль в глаза. Пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.