Как установить и настроить SQLite
Ubuntu | Комментировать запись
SQLite – это бесплатная кроссплатформенная система управления базами данных. Она стала популярна благодаря своей эффективности и совместимости со множеством различных языков программирования.
В этом руководстве вы узнаете, как установить SQLite. После установки программы мы создадим базу данных, извлечем из нее данные, вставим и удалим элементы, а также объединим элементы из отдельных таблиц.
Примечание: Это руководство содержит практические инструкции по установке и использованию SQLite. В нем не рассматриваются более сложные понятия и проблемы (например, когда следует или не следует использовать SQLite). Эти вопросы мы затронули в руководстве Краткий обзор реляционных систем управления базами данных.
Кроме того, SQLite поддерживают многие языки программирования. Ознакомьтесь с нашим руководством Как работает модуль sqlite3 в Python 3.
Требования
Для выполнения этого урока вам понадобится локальный компьютер или удаленный сервер Ubuntu 20.04. Чтобы настроить сервер, включая пользователя sudo и брандмауэр, вы можете следовать руководству Начальная настройка сервера Ubuntu 20.04.
1: Установка SQLite
Чтобы установить интерфейс командной строки SQLite в Ubuntu, сначала обновите список локальных пакетов:
sudo apt update
Теперь установите SQLite:
sudo apt install sqlite3
Чтобы проверить установку, запросите версию установленного программного обеспечения:
sqlite3 --version
Вы получите такой вывод:
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Установив SQLite, вы можете попробовать создать новую базу данных.
2: Создание базы данных SQLite
На этом этапе мы создадим базу данных, содержащую фиктивные данные (в нашем случае это будет список различных видов акул и их свойств). Чтобы создать базу данных, откройте свой терминал и выполните эту команду sqlite3:
sqlite3 sharks.db
Это создаст новую базу данных по имени sharks. Если файл sharks.db уже существует, SQLite откроет его; если его не существует, SQLite создаст его.
Вы получите такой вывод:
SQLite version 3.31.1 2020-01-27 19:55:54 Enter ".help" for usage hints.
После этого ваша командная строка изменится. Появится новый префикс sqlite>.
Если файл sharks.db еще не существует и вы выйдете из строки sqlite без выполнения каких-либо запросов, файл sharks.db не будет создан. Чтобы убедиться, что файл создан, вы можете запустить пустой запрос, введя точку с запятой, а затем Enter. Таким образом вы убедитесь, что файл базы данных действительно был создан.
Подготовив базу данных Shark, вы можете создать новую таблицу и заполнить ее данными.
3: Создание таблицы SQLite
Базы данных SQLite состоят из таблиц. Таблицы хранят информацию. Чтобы лучше визуализировать таблицу, можно представить строки и столбцы.
Остальная часть этого руководства будет следовать общепринятому соглашению о вводе команд SQLite. Команды SQLite вводятся в верхнем регистре, а пользовательская информация – в нижнем. Строки должны заканчиваться точкой с запятой.
Теперь давайте создадим таблицу и несколько столбцов для хранения различных данных:
- ID
- Имя
- Тип акулы
- Средняя длина акулы (в сантиметрах).
Используйте следующую команду для создания такой таблицы:
CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
Значение NOT NULL делает это поле обязательным к заполнению. Мы обсудим NOT NULL более подробно в следующем разделе.
После создания таблицы вернется пустая командная строка. Теперь давайте вставим в таблицу несколько значений.
Вставка значений в таблицы
В SQLite команда для вставки значений в таблицу имеет следующую форму:
INSERT INTO tablename VALUES(values go here);
Здесь tablename – это имя таблицы, а значения заключены в круглые скобки.
Теперь вставим в таблицу три строки:
INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Поскольку ранее мы указали NOT NULL для каждой из переменных в таблице, теперь мы должны ввести значение для каждой из них.
Для примера попробуйте добавить еще одну строку, не задавая значение длины:
INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Вы получите ошибку:
Error: table sharks has 4 columns but 3 values were supplied
Итак, вы создали таблицу и вставили в нее значения. На следующем этапе мы попробуем прочитать данные, которые хранятся в таблице БД.
4: Чтение таблиц в SQLite
Сейчас давайте сосредоточимся на самых основных методах чтения данных из таблицы. Помните, что SQLite предоставляет более конкретные методы для просмотра данных в таблицах.
Чтобы просмотреть таблицу со всеми вставленными значениями, используйте SELECT:
SELECT * FROM sharks;
Вы увидите ранее вставленные записи:
1|Sammy|Greenland Shark|427 2|Alyoshka|Great White Shark|600 3|Himari|Megaladon|1800
Чтобы просмотреть запись на основе ее идентификатора (id – это значение, которое мы установили вручную), добавьте в свой запрос команду WHERE:
SELECT * FROM sharks WHERE id IS 1;
Это вернет запись, идентификатор которой равен 1:
1|Sammy|Greenland Shark|427
Давайте рассмотрим эту команду подробнее.
- Сначала команда выбирает (SELECT) все (*) значения из базы данных (sharks).
- Затем она оценивает все значения id.
- И возвращает все записи таблицы, id которых равен 1.
Итак, вы создали таблицу, вставили в нее данные и запросили сохраненные данные. Давайте теперь обновим существующую таблицу.
5: Обновление таблиц в SQLite
В следующих двух разделах мы сначала добавим новый столбец в существующую таблицу, а затем обновим существующие значения.
Добавление столбцов в таблицы SQLite
SQLite позволяет изменять таблицы с помощью команды ALTER TABLE. Это означает, что вы можете создавать новые или изменять существующие строки и столбцы.
Используйте ALTER TABLE, чтобы создать новый столбец. В этом столбце будет отслеживаться возраст каждой акулы:
ALTER TABLE sharks ADD COLUMN age integer;
Теперь в таблице есть пятый столбец – age.
Обновление значений в таблицах SQLite
Используя команду UPDATE, вы можете добавить новые значения в столбец age:
UPDATE sharks SET age = 272 WHERE id=1;
UPDATE sharks SET age = 70 WHERE id=2;
UPDATE sharks SET age = 40 WHERE id=3;
Вы увидите такой вывод:
1|Sammy|Greenland Shark|427|272 2|Alyoshka|Great White Shark|600|70 3|Himari|Megaladon|1800|40
Вы изменили данные, которые хранятся в вашей таблице, а затем обновили значения внутри таблицы. На следующем шаге мы удалим информацию из таблицы.
6: Удаление данных из таблицы SQLite
На этом этапе мы удалим записи из таблицы на основе оценки аргумента.
В следующей команде мы запрашиваем свою базу данных и говорим, чтобы она удалила все записи в таблице, значение age которых меньше 200:
DELETE FROM sharks WHERE age <= 200;
Команда SELECT * FROM sharks; подтвердит, что команда выполнила условие и удалила две строки из нашей таблицы. Теперь в ней осталась одна строка.
1|Sammy|Greenland Shark|427|272
7: Объединение данных в SQLite
Предположим, у нас есть две таблицы: текущая таблица sharks и таблица исчезающих видов, endangered. А что, если бы значение id в таблице endangered было связано с идентификаторами в таблице sharks и отображало бы значение status, указывающее на охранный статус?
Если вы хотите запросить данные из обеих таблиц, вы можете использовать одну из четырех команд SQLite:
- INNER JOIN
- OUTER JOIN
- LEFT JOIN
- CROSS JOIN
Давайте создадим вторую таблицу, а затем воспользуемся командой INNER JOIN для объединения данных.
Итак, создайте таблицу endangered:
CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
INSERT INTO endangered VALUES (1, "near threatened");
Теперь объедините таблицы:
SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
Ваш результат будет выглядеть так:
1|Sammy|Greenland Shark|427|272|1|near threatened
Обратите внимание, что выходные данные также включают значение id из таблицы endangered. Вы можете указать желаемый результат с помощью расширенной команды:
SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
На этот раз вывод исключает второе вхождение значения id:
1|Sammy|Greenland Shark|427|272|near threatened
Вы успешно объединили данные из нескольких таблиц.
Заключение
SQLite – полезный инструмент для управления базами данных. Он позволяет быстро создать БД и управлять ею с помощью различных команд. Выполнив это руководство, вы получили базовое представление о SQLite и теперь готовы глубже погрузиться в изучение этой системы управления базами данных.
Чтобы узнать больше о синтаксисе SQLite, обратитесь к официальной документации.
Tags: SQLite, Ubuntu 20.04