SQLite — это внутрипроцессная библиотека, которая реализует автономный, бессерверный, не требующий настройки транзакционный механизм базы данных SQL. Исходный код для SQLite имеется в открытом доступе, позволяет модифицирование и является бесплатным. SQLite выбирают за скорость, минимализм, надёжность. В сервисах timeweb.cloud вы можете установить её на VDS-сервер.
cloud
Библиотека SQLite уже скомпилирована и доступна к скачиванию и установке с официального сайта. Желающие могут компилировать исходники и самостоятельно.
Для написания и исполнения запросов к базам SQLite можно использовать простую программу-оболочку командной строки — sqlite3
. Но также существуют множество бесплатных (например, SQLiteStudio) и коммерческих инструментов с графическим интерфейсом для управления базами SQLite.
1. Переходим на страницу загрузки SQLite и загружаем файлы, обеспечивающие работу SQLite в Windows, в том числе sqlite3
:
2. На своем компьютере создаём новую папку, например, C:\sqlite
.
3. Извлекаем содержимое скачанного файла в папку C:\sqlite
. Там должны появиться три программы:
Sqlite3.exe
Sqlite3_analizer.exe
sqldiff.exe
4. В командной строке переходим в папку с sqlite3.exe
и запускаем этот файл. При этом можно указать имя базы данных:
C:\>cd C:\sqlite
sqlite3 <имя базы данных SQLite>
Если файл с таким именем не существует, то он будет создан автоматически. Если в командной строке не указано имя файла с базой данных, создается временная база данных, которая автоматически удаляется при выходе из sqlite3
.
5. Пользователи Windows могут дважды кликнуть значок sqlite3.exe
, чтобы открылось всплывающее окно терминала с запущенным sqlite
. Однако, так как двойной клик запускает sqlite3
без аргументов, файл базы данных не будет указан, а будет использоваться временная база данных, которая удалится при завершении сеанса.
Посмотрим как установить на Linux SQLite на примере Ubuntu.
1. Чтобы установить sqlite3
в Ubuntu, сначала обновите список пакетов:
sudo apt update
2. Затем установите sqlite3
:
sudo apt install sqlite3
3. Понять, прошла ли установка, можно, проверив версию:
sqlite3 --version
В случае успеха вы получите нечто подобное:
3.38.3 2022-04-27 12:03:15 3bfa9cc97da10589251b342961df8f5f68c7399fa117345eeb516bee837balt1
Существует несколько способов, чтобы сделать создать базу в SQLite:
1. Как отмечалось выше, при запуске sqlite3
можно указать имя базы данных:
sqlite3 my_first_db.db
Если база my_first_db.db
существует, то она откроется, если нет — она будет создана и автоматически удалится при выходе из sqlite3
, если к базе не было совершено ни одного запроса. Поэтому, чтобы убедиться, что база записана на диск, можно запустить пустой запрос, введя ;
и нажав Enter:
sqlite> ;
После работы изменения в базе можно сохранить с помощью специальной команды SQLite .save
с указанием имени базы:
sqlite> .save my_first_db.db
Или полного пути до базы:
sqlite> .save C:/sqlite/my_first_db.db
При использовании команды .save
стоит проявлять осторожность, так как эта команда перезапишет все ранее существовавшие файлы с таким же именем не запрашивая подтверждения.
2. В SQLite создать базу данных можно с помощью команды .open
:
sqlite> .open my_first_db.db
Как и в первом случае, если база с указанным именем существует, то она откроется, если же не существует — то будет создана. При таком способе создания новая база данных SQLite не исчезнет при закрытии sqlite3
, но все изменения перед выходом из программы нужно сохранить с помощью команды .save
, как показано выше.
3. Как уже упоминалось, при запуске sqlite3
без аргументов, будет использоваться временная база данных, которая будет удалена при завершении сеанса. Однако эту базу можно сохранить на диск с помощью команды .save
.
sqlite3
SQLite version 3.38.3 2022-04-27 12:03:15
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> ... many SQL commands omitted ...
sqlite> .save db1.db
sqlite>
Информация в базах SQLite хранится в виде таблиц. Для создания таблиц в SQLite используется запрос CREATE TABLE
. Этот запрос должен содержать имя таблицы и имена полей (столбцов), а также может содержать типы данных, описания полей (ключевое поле) и значения по умолчанию. Например, создадим таблицу с описаниями параметров разных пород собак, применяя CREATE TABLE
в SQLite:
sqlite> CREATE TABLE dog_params (id integer PRIMARY KEY,
dog_breed text,
speed_km_per_h integer,
weight_kg integer);
В нашей таблице колонка id
помечена как PRIMARY KEY. Это значит, что id
будет ключевым столбцом (индексом) и целое число для него будет генерироваться автоматически.
Для внесения новой записи в таблицу используется SQL-запрос INSERT INTO, в котором указывается в какую таблицу и в какие поля заносить новые значения. Структура запроса:
sqlite> INSERT INTO таблица (столбец1, столбец2)
VALUES (значение1, значение2);
Если количество значений соответствует количеству колонок в таблице, то названия полей можно исключить из запроса. Столбцы таблицы, которые не отображаются в списке столбцов, заполняются значением столбца по умолчанию (указывается как часть инструкции CREATE TABLE
) или значением NULL, если значение по умолчанию не было указано.
Например:
sqlite> INSERT INTO dog_params (dog_breed, speed_km_per_h, weight_kg)
VALUES ("Greyhound", 72, 29);
sqlite> INSERT INTO dog_params VALUES (2, "Jack Russell Terrier", 61, 5);
sqlite> INSERT INTO dog_params VALUES (3, "Dalmation", 59, 24);
В первом случае id
сгенерировался сам, так как это поле назначено индексом, а для внесения строчек без указания названий колонок нужно прописывать номера id
вручную.
С помощью следующего SQL-запроса можно вставить несколько записей одновременно, id опять сгенерируются автоматически:
sqlite> INSERT INTO dog_params (dog_breed, speed_km_per_h, weight_kg)
VALUES ("Borzoi", 58, 39), ("Standard Poodle", 48, 27);
Чтобы просмотреть всё содержимое таблицы, используется запрос SELECT:
sqlite> SELECT * FROM dog_params;
Результат будет выглядеть таким образом:
1|Greyhound|72|29
2|Jack Russell Terrier|61|5
3|Dalmation|59|24
4|Borzoi|58|39
5|Standard Poodle|48|27
С помощью команды WHERE
можно просмотреть только те строки, которые удовлетворяют некоторому условию. Например, выведем породы, у которых скорость меньше 60 км/ч:
sqlite> SELECT * FROM dog_params WHERE speed_km_per_h < 60;
3|Dalmation|59|24
4|Borzoi|58|39
5|Standard Poodle|48|27
С помощью запроса ALTER TABLE и дополнительных команд можно изменять таблицу следующим образом:
К примеру, добавим в нашу таблицу колонку с высотой собаки в холке:
sqlite> ALTER TABLE dog_params ADD COLUMN height_cm integer;
Чтобы изменить значения в существующих записях таблицы понадобится запрос в SQLite – Update. В этом случае возможно как изменение значений ячейки в группе строк, так и изменение значения ячейки отдельной строки.
В качестве примера, внесем значения высоты собак в холке в нашу таблицу:
sqlite> UPDATE dog_params SET height_cm=71 WHERE id=1;
sqlite> UPDATE dog_params SET height_cm=28 WHERE id=2;
sqlite> UPDATE dog_params SET height_cm=53 WHERE id=3;
sqlite> UPDATE dog_params SET height_cm=69 WHERE id=4;
sqlite> UPDATE dog_params SET height_cm=61 WHERE id=5;
Наша итоговая таблица будет выглядеть так:
sqlite> SELECT * FROM dog_params:
1|Greyhound|72|29|71
2|Jack Russell Terrier|61|5|28
3|Dalmation|59|24|53
4|Borzoi|58|39|69
5|Standard Poodle|48|27|61
Разверните базу данных в облаке за минуту
Работать с базами данных SQLite можно не только из командной строки, но и с помощью инструментов с графическим интерфейсом, одним из которых является SQLiteStudio.
Инструмент SQLiteStudio бесплатный, портативный, интуитивно понятный и кроссплатформенный. Он предоставляет много наиболее важных функций для работы с базами данных SQLite, такие как импорт и экспорт данных в различных форматах, включая CSV, XML и JSON.
Вы можете скачать установщик SQLiteStudio или его портативную версию с официального сайта https://sqlitestudio.pl. Затем необходимо извлечь (или установить) загруженный файл в папку, например, C:\sqlite\gui\ и запустить его. Подробные инструкции по установке и работе с SQLiteStudio можно найти на сайте.
Кстати, в официальном канале Timeweb Cloud мы собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.