Как установить и настроить SQLite

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: ,

Добавить комментарий