Как использовать SQLite с Python

База данных является решающим компонентом разработки программного обеспечения. Наконец, нам нужно собирать данные в месте, где мы можем получить к ним цифровой доступ для чтения, записи, обновления и удаления.

В этом руководстве вы узнаете, как использовать SQLite из Python. Исследование SQLite – это отличный способ узнать, как работают базы данных и как выполнять основные операции CRUD (создание, чтение, обновление, удаление).

Многие должности разработчиков программного обеспечения предусматривают работу с базами данных, и если вы когда-нибудь задумаетесь о создании полномасштабной программы (например, программы для социальных сетей или онлайн игры), вам обязательно также понадобится база данных.

Этот учебник объясняет многие основные понятия и простые операции, чтобы вы могли лучше понять, как работать с базами данных.

Что такое SQLite?

SQLite — это встроенная библиотека механизма базы данных SQL (Structured Query Language), работающая на многих языках.

Согласно официальному веб-сайту, текст SQL компилируется в байт-код, который затем выполняется виртуальной машиной. Поэтому он очень быстр и может эффективно обрабатывать сложные запросы.

База данных SQLite хранится как файл на диске, похожий на файл CSV (значения, разделенные запятыми). Но SQLite имеет много преимуществ перед использованием CSV файла:

  • Он написан с помощью C. C — это статически типизированный скомпилированный язык, который намного быстрее, чем большинство языков, включая Python.
  • Он легок, поэтому работает лучше и быстрее, чем чтение из файла CSV.
  • Его легко настроить
  • Он может обрабатывать более сложные запросы.
  • Полезнее научиться, если вам когда-нибудь придется использовать SQL или MySQL в будущем.

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

Вот пример использования SQLite из Python. Я использую онлайн-IDE Replit, но вы можете следить за любой IDE, которая вам нравится.

Сначала я создаю проект Python с помощью a main.py файл. Я буду использовать библиотеку SQL CS50, которую вы можете установить, запустив pip3 install cs50.

Первым шагом является создание файла database.db в корневом каталоге, что можно сделать, введя такую ​​команду в терминале:

touch database.db

На этом этапе следует добавить следующий код в main.py:

from cs50 import SQL

db = SQL("sqlite:///database.db")

Как создать таблицу базы данных

Следующим шагом является создание таблицы в базе данных. SQL хранит данные в таблицах, похожих на таблицы в Excel или Google Sheets. Код для этого:

db.execute("CREATE TABLE IF NOT EXISTS users (name TEXT, age NUMBER, fav_food STRING)")

Чтобы разбить это, db – это база данных, в которую записываются данные. Далее выполняется команда. Если табл users не существует, создайте таблицу с именем users с именами столбцов name, ageи fav_foodс указанными типами данных для каждого значения.

Как записать в базу данных

Для добавления пользователя можно использовать операцию INSERT.

db.execute("INSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)", "eesa", 14, "pizza")

Значение «eesa» вставляется в столбец имени, значение 14 вставляется в столбец возраста, а значение «пицца» вставляется в столбец fav_food.

Код для добавления другого пользователя (в этом случае Боба) будет следующим:

db.execute("INSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)", "bob", 20, "burgers")

Как читать из базы данных

После этого мы можем попытаться прочесть всех пользователей из базы данных. Вы можете сделать это, запустив следующий код.

people = db.execute("SELECT * FROM users")
print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'pizza'}]

Приведенный выше код достаточно прост. * в операторе SELECT выбирает все, что есть в базе данных.

Чтобы выбрать только определенные значения, можно использовать оператор DISTINCT. Например, вам нужна только любимая еда каждого пользователя. Вы можете сделать это, запустив следующий код:

people = db.execute("SELECT DISTINCT fav_food FROM users")
print(people)

Вы также можете разделять значения запятыми в запросе SELECT DISTINCT:

people = db.execute("SELECT DISTINCT age, fav_food FROM users")
print(people)

Что, если бы мы хотели просто прочесть данные для Боба и проигнорировать всех остальных? Вы можете сделать это с помощью предложения SQL WHERE:

people = db.execute("SELECT * FROM users WHERE name="bob"")
print(people)

Как насчет более сложных запросов? Вы можете сделать это посредством синтаксиса AND, OR и NOT. Вы можете разделить предложение WHERE с помощью этих ключевых слов для более сложных запросов.

people = db.execute("SELECT * FROM users WHERE name="bob" AND age=20")
print(people)

Это распечатает данные для Боба, потому что Бобу 20 лет.

Как обновить строку в базе данных

Чтобы обновить строку, можно использовать оператор UPDATE таким образом:

db.execute("UPDATE users SET fav_food='shawarma' WHERE name="eesa"")

Как удалить строку в базе данных

Для удаления строки используйте синтаксис DELETE (как вы могли догадаться). Это выглядит так:

db.execute("DELETE FROM users WHERE name="bob"") # goodbye bob

people = db.execute("SELECT * FROM users")
print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'shawarma'}]

Чтобы удалить все строки в таблице, просто удалите предложение WHERE:

db.execute("DELETE FROM users") # :(

people = db.execute("SELECT * FROM users")
print(people) # []

Вывод

И это пока. Для получения дополнительной информации о SQLite я рекомендую просмотреть официальную документацию. Желаю вам удачи в создании удивительных вещей!

Вы можете проверить мой GitHub и Replit для просмотра моих проектов.

Если вы хотите связаться, мой адрес электронной почты eszhd1 (at) gmail.com

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *