Python предоставляет несколько модулей для работы с базами данных, включая sqlite3, MySQLdb и psycopg2. Эти модули позволяют легко взаимодействовать с базами данных для хранения, извлечения и эффективного манипулирования данными. Вы можете конструировать, изменять и управлять базами данных эффективно и эффективно с базовым пониманием языка Python и синтаксиса SQL.
Шаги по созданию базы данных с использованием Python
Шаг 1
Установите адаптер базы данных, который соответствует системе управления базами данных, которую вы хотите использовать. Например, если вы собираетесь использовать SQLite, вы можете установить модуль sqlite3. Для MySQL можно установить модуль MySQLdb, а для PostgreSQL – psycopg2. В этом туториале мы рассмотрим SQLite, MongoDB и MySQLdb. Чтобы использовать SQLite в вашем коде Python, импортируйте модуль sqlite3:
import sqlite3
После того, как вы установили соответствующий модуль, вам нужно создать соединение с базой данных, которое служит мостом между кодом Python и базой данных, позволяя отправлять команды и получать результаты. Например, в SQLite вы можете создать соединение с помощью следующего кода.
Для примера базы данных под названием school.db вы подключаетесь, как показано в коде ниже:
conn = sqlite3.connect('school.db')
Шаг 2
Создание таблиц в базе данных. Для создания таблиц в базе данных необходимо написать SQL-запросы с использованием объекта курсора, полученного от соединения. Например, для создания таблицы с именем “employees” с колонками “id”, “username”, “salary”, “department” и “email” используйте следующий код:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
Шаг 3
Вставка, обновление и извлечение данных из базы данных с помощью SQL-команд и объекта курсора. Для добавления данных в таблицы можно использовать SQL-команду “INSERT INTO”. Сохраните данные с помощью метода `commit()`. Например, следующий код вставляет данные в таблицу “employees”:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
Шаг 4
Извлечение данных из таблиц. Для извлечения данных из таблиц можно использовать SQL-команду “SELECT”. Например, для извлечения всех пользователей из таблицы “users” можно использовать следующий код:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
Шаг 5
Создание представлений с помощью выполнения команды CREATE VIEW и использования метода `execute()` объекта курсора для выполнения команды CREATE VIEW.
# Выполнить команду CREATE VIEW
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
Шаг 6
Закрытие соединения. После завершения работы с базой данных важно закрыть соединение для освобождения ресурсов. Соединение можно закрыть с помощью метода close() объекта соединения. Например:
conn.commit()
conn.close()
Пример для MySQLdb
Для создания базы данных в MySQLdb, импортируйте модуль MYSQLdb и подключитесь к базе данных с помощью метода `connect()`. Вы можете создать курсор и использовать его для выполнения SQL команд. Метод `execute ()` используется для создания таблицы и вставки данных в неё. После применения изменений, мы используем курсор для выбора данных из таблицы и извлечения всех данных с помощью метода `fetchall()`. И, наконец, закройте курсор и подключение к базе данных.
import MySQLdb
# Подключиться к базе данных
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# Создать курсор для выполнения SQL команд
cursor = conn.cursor()
# Создать таблицу
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# Вставить данные в таблицу
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# Применить изменения в базе данных
conn.commit()
# Выбрать данные из таблицы
cursor.execute("SELECT * FROM employees")
# Извлечь все данные
employees = cursor.fetchall()
# Вывести данные
for employee in employees:
print(employee)
# Закрыть курсор и подключение
cursor.close()
conn.close()
Пример для MongoDB
Импортируйте модуль pymongo и подключитесь к базе данных с помощью класса `MongoClient()`. Затем получите ссылку на базу данных и коллекцию, эквивалентную таблице в SQL. Метод `inser_many()` используется для вставки данных в коллекцию. Метод `find()` используется для запроса данных из коллекции, и данные извлекаются с помощью цикла for. И, наконец, закройте подключение к базе данных с помощью метода `close()`.
from pymongo import MongoClient
# Подключиться к базе данных
client = MongoClient("mongodb://localhost:27017/")
# Получить ссылку на базу данных
db = client["school.db"]
# Получить ссылку на коллекцию (эквивалент таблице в SQL)
collection = db["employees"]
# Вставить данные в коллекцию
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# Запросить данные из коллекции
employees = collection.find()
# Вывести данные
for employee in employees:
print(employee)
# Закрыть подключение
client.close()
Заключение
В заключение, Python предоставляет несколько модулей для взаимодействия с различными базами данных, такими как MySQL и MongoDB. Модуль MySQLdb используется для взаимодействия с базой данных MySQL, а модуль pymongo используется для взаимодействия с базой данных MongoDB. Оба модуля упрощают разработчикам выполнение常见的 операций с базами данных, таких как создание таблиц, вставка данных, запрос данных и многое другое. Благодаря простоте и удобству использования Python, он стал популярным выбором для разработки приложений на основе баз данных. Независимо от того, являетесь ли вы начинающим или опытным разработчиком, использование этих модулей сделает работу с базами данных в Python легким делом.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2