Работа с бази данни в Python

Работа с бази данни в Python

Урок 6: Работа с бази данни в Python

В този урок ще разгледаме как да работим с бази данни в Python. Ще научим как да създаваме и манипулираме бази данни, както и как да използваме SQL за заявяване и управление на данни. Ще използваме SQLite, вградена база данни, която не изисква допълнителна инсталация и е идеална за обучение и малки проекти.

Запознаване със SQLite

SQLite е лека библиотека за релационни бази данни, която се съхранява в един файл на диска. Тя е чудесна за прототипиране, тестване и малки приложения.

Инсталиране на SQLite

SQLite е включен в стандартната библиотека на Python, така че не е необходимо допълнително инсталиране. Ще използваме модула sqlite3 за работа с базата данни.

Свързване с база данни

Първата стъпка е да се свържем с база данни. Ако базата данни не съществува, тя ще бъде създадена.

import sqlite3

# Свързване с база данни
conn = sqlite3.connect('example.db')

# Създаване на курсор
cursor = conn.cursor()

Създаване на таблица

Създаваме таблица, като изпълним SQL заявка с метода execute().

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

# Потвърждаване на промените
conn.commit()

Добавяне на записи

Можем да добавяме записи в таблицата с SQL командата INSERT.

# Добавяне на записи
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 25))

# Потвърждаване на промените
conn.commit()

Четене на записи

Можем да четем данни от таблицата с командата SELECT.

# Четене на всички записи
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()

for row in rows:
    print(row)

Актуализиране на записи

За актуализиране на данни използваме командата UPDATE.

# Актуализиране на запис
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (35, "Alice"))

# Потвърждаване на промените
conn.commit()

Изтриване на записи

За изтриване на данни използваме командата DELETE.

# Изтриване на запис
cursor.execute("DELETE FROM users WHERE name = ?", ("Bob",))

# Потвърждаване на промените
conn.commit()

Затваряне на връзката

След като приключим с работата с базата данни, трябва да затворим връзката.

# Затваряне на връзката
conn.close()

Примерна програма: Управление на потребители

Нека създадем програма за управление на потребители, която използва SQLite за съхранение на данни.

Дефиниране на функции

database.py

import sqlite3

def connect():
    return sqlite3.connect('users.db')

def create_table(conn):
    cursor = conn.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                        id INTEGER PRIMARY KEY,
                        name TEXT NOT NULL,
                        age INTEGER NOT NULL
                    )''')
    conn.commit()

def add_user(conn, name, age):
    cursor = conn.cursor()
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))
    conn.commit()

def get_users(conn):
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    return cursor.fetchall()

def update_user(conn, user_id, age):
    cursor = conn.cursor()
    cursor.execute("UPDATE users SET age = ? WHERE id = ?", (age, user_id))
    conn.commit()

def delete_user(conn, user_id):
    cursor = conn.cursor()
    cursor.execute("DELETE FROM users WHERE id = ?", (user_id,))
    conn.commit()

Основна програма

main.py

import database

# Свързване с базата данни
conn = database.connect()

# Създаване на таблица
database.create_table(conn)

# Добавяне на потребители
database.add_user(conn, "Alice", 30)
database.add_user(conn, "Bob", 25)

# Изброяване на потребителите
users = database.get_users(conn)
print("Users:")
for user in users:
    print(user)

# Актуализиране на възрастта на потребител
database.update_user(conn, 1, 35)

# Изтриване на потребител
database.delete_user(conn, 2)

# Изброяване на потребителите след промените
users = database.get_users(conn)
print("\nUsers after updates:")
for user in users:
    print(user)

# Затваряне на връзката
conn.close()

Заключение

В този урок разгледахме как да работим с бази данни в Python, използвайки SQLite. Научихме как да създаваме таблици, да добавяме, четем, актуализираме и изтриваме записи. Също така, създадохме примерна програма за управление на потребители. В следващите уроци ще разгледаме мрежово програмиране и уеб разработка с Python. Практикувайте редовно и експериментирайте с различни SQL заявки, за да затвърдите наученото.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: