
Когда дело доходит до работы с базами данных, Python предоставляет множество инструментов для подключения и взаимодействия с различными СУБД (системами управления базами данных). В этой статье мы разберем, как подключиться к трем популярным базам данных: SQLite, MySQL и PostgreSQL, а также как выполнять базовые операции с использованием Python.
Подключение к SQLite
Что такое SQLite?
SQLite — это серверная база данных, которая не требует отдельного процесса сервера. Она хранит всю информацию в одном файле, что делает её отличным выбором для небольших проектов и локальных приложений.
Как подключиться к SQLite в Python?
Python поставляется с встроенной поддержкой SQLite через библиотеку sqlite3, которая позволяет вам легко подключаться и работать с базой данных.
Пример подключения к SQLite
import sqlite3
# Подключение к базе данных (если базы нет, она будет создана)
conn = sqlite3.connect('example.db')
# Создание курсора для выполнения SQL-запросов
cursor = conn.cursor()
# Создание таблицы
cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                    id INTEGER PRIMARY KEY,
                    name TEXT,
                    age INTEGER)''')
# Вставка данных
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))
# Сохранение изменений
conn.commit()
# Получение данных
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)
# Закрытие соединения
conn.close()
Объяснение:
- В 
sqlite3.connect()мы указываем путь к базе данных. Если базы данных нет, она будет автоматически создана. - Мы используем метод 
cursor.execute()для выполнения SQL-запросов. - Метод 
conn.commit()сохраняет изменения в базе данных. - Для получения данных мы используем 
cursor.fetchall(). 
Подключение к MySQL
Что такое MySQL?
MySQL — это одна из самых популярных реляционных баз данных, которая используется для более крупных и масштабируемых приложений. Для подключения к MySQL в Python используется библиотека mysql-connector-python.
Установка библиотеки
Для начала вам нужно установить библиотеку mysql-connector-python, если она ещё не установлена. Сделать это можно с помощью pip:
pip install mysql-connector-python
Как подключиться к MySQL в Python?
Пример подключения к MySQL
import mysql.connector
# Подключение к базе данных
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="yourpassword",
    database="testdb"
)
# Создание курсора
cursor = conn.cursor()
# Создание таблицы
cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                    id INT AUTO_INCREMENT PRIMARY KEY,
                    name VARCHAR(255),
                    age INT)''')
# Вставка данных
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Bob", 25))
# Сохранение изменений
conn.commit()
# Получение данных
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)
# Закрытие соединения
cursor.close()
conn.close()
Объяснение:
- В методе 
mysql.connector.connect()указываются параметры подключения: хост, имя пользователя, пароль и имя базы данных. - После выполнения запросов необходимо выполнить 
conn.commit()для сохранения изменений. - Мы используем параметризованные запросы, чтобы избежать SQL-инъекций, передавая данные через 
%s. 
Подключение к PostgreSQL
Что такое PostgreSQL?
PostgreSQL — это мощная, объектно-реляционная СУБД с открытым исходным кодом, известная своей расширяемостью и поддержкой сложных типов данных. Для работы с PostgreSQL в Python используется библиотека psycopg2.
Установка библиотеки
Для подключения к PostgreSQL вам нужно установить библиотеку psycopg2. Установить её можно с помощью pip:
pip install psycopg2
Если вы используете PostgreSQL в Windows, возможно, вам будет проще установить psycopg2-binary:
pip install psycopg2-binary
Как подключиться к PostgreSQL в Python?
Пример подключения к PostgreSQL
import psycopg2
# Подключение к базе данных
conn = psycopg2.connect(
    host="localhost",
    database="testdb",
    user="postgres",
    password="yourpassword"
)
# Создание курсора
cursor = conn.cursor()
# Создание таблицы
cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                    id SERIAL PRIMARY KEY,
                    name VARCHAR(255),
                    age INT)''')
# Вставка данных
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Charlie", 35))
# Сохранение изменений
conn.commit()
# Получение данных
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)
# Закрытие соединения
cursor.close()
conn.close()
Объяснение:
- В методе 
psycopg2.connect()указываются параметры подключения: хост, база данных, имя пользователя и пароль. - Используется параметризованный запрос, аналогично MySQL, чтобы избежать уязвимостей, связанных с SQL-инъекциями.
 - В PostgreSQL мы используем тип 
SERIALдля автоинкрементируемых полей, что аналогично типуAUTO_INCREMENTв MySQL. 
Сравнение SQLite, MySQL и PostgreSQL
- SQLite: Легковесная, встроенная СУБД, идеально подходит для небольших приложений или ситуаций, когда нет необходимости в сервере баз данных. Подключение происходит через файл.
 - MySQL: Одна из самых популярных СУБД, подходит для более крупных проектов, где необходимо масштабирование и высокая производительность.
 - PostgreSQL: Отличается мощной поддержкой расширений, сложных типов данных и высокой производительностью в многозадачных средах.
 
Заключение
Теперь вы знаете, как подключаться и работать с тремя самыми популярными СУБД в Python: SQLite, MySQL и PostgreSQL. В зависимости от ваших потребностей, вы можете выбрать подходящий инструмент для хранения данных и интеграции с вашим проектом.
Каждая из этих СУБД имеет свои особенности и преимущества, и выбор между ними зависит от масштабов вашего проекта. Не забывайте о параметризированных запросах, чтобы обезопасить вашу программу от SQL-инъекций, а также правильно обрабатывать ошибки при работе с базой данных.