Робота з базами даних в Python: SQL та NoSQL рішення

Бази даних є невід’ємною частиною будь-якої веб-додатку, оскільки вони забезпечують зберігання та доступ до даних. Важливо знати, як працювати з базами даних, використовуючи мову програмування Python. У цій статті ми розглянемо різні варіанти роботи з базами даних, зокрема SQL та NoSQL рішення, та покажемо практичні приклади їх використання.

SQL бази даних

SQL бази даних — це реляційні бази даних, які використовують мову структурованих запитів (Structured Query Language, SQL) для створення, керування та обробки даних. Вони складаються з таблиць, де дані представлені у вигляді рядків (записів) та стовпців (атрибутів). SQL дозволяє виконувати різноманітні операції з даними, такі як вибірка, вставка, оновлення, видалення, а також більш складні операції, такі як злиття таблиць, групування даних, фільтрація та сортування. Деякі з найпопулярніших SQL баз даних включають MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database та SQLite.

Підключення до SQL бази даних

Python має бібліотеку SQLite, яка дозволяє працювати з локальними SQL-базами даних без зовнішніх залежностей. Для підключення до віддалених SQL баз даних, таких як MySQL або PostgreSQL, можна використовувати сторонні бібліотеки, такі як mysql-connector-python та psycopg2. Ось приклад підключення до SQLite:


import sqlite3

connection = sqlite3.connect("my_database.db")
cursor = connection.cursor()

# Виконання SQL запиту
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")

connection.commit()
connection.close()

Виконання операцій CRUD

Основні операції з базою даних – Create, Read, Update та Delete (CRUD) можна виконувати за допомогою SQL запитів. Для вставки даних використовується команда INSERT INTO, для вибірки – SELECT, для оновлення – UPDATE, а для видалення – DELETE.


# Вставка даних
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("John", 25))

# Вибірка даних
cursor.execute("SELECT * FROM users")
users = cursor.fetchall()

# Оновлення даних
cursor.execute("UPDATE users SET age=? WHERE id=?", (26, 1))

# Видалення даних
cursor.execute("DELETE FROM users WHERE id=?", (1,))

NoSQL бази даних

NoSQL бази даних — це нереляційні системи зберігання даних, які не використовують стандартний SQL для обробки даних. Вони більш гнучкі, швидкі, масштабовані і здатні працювати з великими наборами даних та неструктурованими даними. Це робить їх популярним вибором для використання з мовами програмування, такими як Python.

Робота з MongoDB

MongoDB – популярна NoSQL база даних, яка використовує документо-орієнтований підхід. Для роботи з MongoDB в Python можна використовувати бібліотеку pymongo. Для початку роботи необхідно встановити pymongo та підключитися до сервера MongoDB:


pip install pymongo

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
collection = db["users"]

Виконання операцій CRUD з MongoDB

Аналогічно SQL-базам даних, в MongoDB можна виконувати операції CRUD. Замість SQL запитів використовуються методи об’єкту collection.


# Вставка даних
user = {"name": "John", "age": 25}
result = collection.insert_one(user)
# Вибірка даних
users = collection.find()
# Оновлення даних
collection.update_one({"_id": result.inserted_id}, {"$set": {"age": 26}})
# Видалення даних
collection.delete_one({"_id": result.inserted_id})

Вибір між SQL та NoSQL базами даних

При виборі бази даних слід враховувати потреби вашого проекту. SQL бази даних підходять для структурованих даних та сильної консистентності, в той час як NoSQL бази даних часто використовуються для невідсортованих або напівструктурованих даних та забезпечують горизонтальне масштабування.

Висновок

В даній статті ми розглянули основні аспекти роботи з базами даних в Python, включаючи SQL та NoSQL рішення. Ми дізналися, як підключатися до баз даних, виконувати операції CRUD та обирати між різними типами баз даних. Використання баз даних є ключовим елементом розробки сучасних веб-додатків, тому знання цих аспектів допоможе вам стати ефективнішим розробником.

Site Footer