SQLite - Python: руковод BEGINNERS

Привет, будущие маги баз данных! Я рад стать вашим проводником в увлекательное путешествие в мир SQLite и Python. Кто-то, кто уже много лет teaches компьютерные науки, могу заверить вас, что к концу этого руководства вы будете манипулировать базами данных, как профессион.

SQLite - Python

Установка

Before мы начнем наше приключение, мы должны убедиться, что у нас есть правильные инструменты. Хорошая новость в том, что если у вас установлен Python (и я так предполагаю), у вас уже есть SQLite! Он идет в комплекте с Python, так что не нужно дополнительных установок. Неудобно ли это?

Python sqlite3 модуль API

Теперь давайте поговорим о звезде нашего шоу: модуль sqlite3. Этот модуль ваш билет к работе с базами данных SQLite в Python. Он предоставляет набор функций и методов, которые мы будем использовать на протяжении всего этого руководства.

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

Method Описание
connect() Создает подключение к базе данных
cursor() Создает объект курсора для выполнения SQL-команд
execute() Выполняет одну SQL-команду
executemany() Выполняет SQL-команду против всех sequences параметров
commit() Фиксирует текущую транзакцию
rollback() Откатывает любые изменения в базе данных с последнего обращения к commit()
close() Закрывает подключение к базе данных

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

Подключение к базе данных

Давайте начнем с подключения к базе данных. Это как стучать в дверь дома ваших данных!

import sqlite3

# Подключение к базе данных (или создание ее, если она не существует)
conn = sqlite3.connect('my_first_db.db')

print("Успешное подключение к базе данных!")

# Не забудьте закрыть подключение, когда закончите
conn.close()

В этом примере мы импортируем модуль sqlite3 и используем его функцию connect() для создания подключения к базе данных с именем 'my_first_db.db'. Если этой базы данных не существует, SQLite создаст ее для нас. Как заботливо!

Создание таблицы

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

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Создание таблицы
cursor.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER)''')

print("Таблица успешно создана!")

conn.commit()
conn.close()

Здесь мы создаем таблицу с именем 'students' и тремя столбцами: id, name и age. Кלузия IF NOT EXISTS - это нашinsurance - net, который предотвращает ошибки, если мы случайно пытаемся создать одну и ту же таблицу дважды.

Операция INSERT

Пора добавить данные в нашу таблицу. Это как заполнение нашей электронной таблицы!

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Вставка одной строки данных
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ("Alice", 22))

# Вставка множества строк данных
students_data = [("Bob", 19), ("Charlie", 21), ("David", 20)]
cursor.executemany("INSERT INTO students (name, age) VALUES (?, ?)", students_data)

print("Данные успешно вставлены!")

conn.commit()
conn.close()

В этом примере мы вставляем данные в нашу таблицу 'students'. Мы используем execute() для одной вставки и executemany() для множества вставок. Знаки ? являются призраками для наших данных, что помогает предотвратить атаки SQL-инъекции. Безопасность прежде всего!

Операция SELECT

Теперь давайте получим наши данные. Это как просить нашу базу данных показать, что она remembers!

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Выбор всех строк из таблицы students
cursor.execute("SELECT * FROM students")

# Получение всех строк
rows = cursor.fetchall()

for row in rows:
print(f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}")

conn.close()

Здесь мы выбираем все строки из нашей таблицы 'students' и выводим их. Знак * в нашем SQL-запросе означает "дай мне все". Это как decir "Открой芝麻!" вашей базе данных.

Операция UPDATE

Иногда нам нужно изменить наши данные. Давайте обновим возраст студента:

import sqlite3

conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()

# Обновление возраста студента
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (23, "Alice"))

print("Данные успешно обновлены!")

conn.commit()
conn.close()

В этом примере мы обновляем возраст студента по имени Alice.

Credits: Image by storyset