Работа с базами данных в Python: основы SQL и SQLite

Работа с базами данных в Python: основы SQL и SQLite Python

Привет, начинающий Python-разработчик! Сегодня мы погрузимся в увлекательный мир баз данных и научимся работать с ними с помощью Python. Мы рассмотрим основы SQL и познакомимся с SQLite — легковесной базой данных, которая отлично подходит для начинающих. Давайте начнем наше путешествие!

Что такое база данных и зачем она нужна?

Представьте, что у вас есть большая библиотека книг. Каждый раз, когда вы хотите найти определенную книгу, вам приходится просматривать все полки. Утомительно, правда? База данных — это как умный каталог для вашей библиотеки. Она позволяет быстро находить, добавлять и изменять информацию.

SQL: язык для общения с базами данных

SQL (Structured Query Language) — это специальный язык для работы с базами данных. Он похож на английский язык и позволяет нам «разговаривать» с базой данных. Например, мы можем попросить базу данных: «Покажи мне все книги автора Толкина» или «Добавь новую книгу в нашу коллекцию».

SQLite: ваша первая база данных

SQLite — это легкая, встраиваемая база данных. Она не требует отдельного сервера и хранит всю информацию в одном файле. Это делает SQLite идеальным выбором для начинающих и небольших проектов.

Установка и настройка

Для Windows:

  1. Python уже включает в себя модуль sqlite3, так что дополнительная установка не требуется.
  2. Откройте командную строку и введите `python`, чтобы запустить интерпретатор Python.
  3. Введите `import sqlite3` для проверки. Если нет ошибок, вы готовы к работе!

Для Mac:

  1. Откройте терминал.
  2. Введите `python3` для запуска интерпретатора Python.
  3. Введите `import sqlite3`. Если нет ошибок, SQLite уже установлен и готов к использованию!

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

Давайте создадим простую базу данных для нашей воображаемой библиотеки. Мы будем хранить информацию о книгах: название, автор и год издания.


import sqlite3

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

# Создаем объект курсора для выполнения SQL-запросов
cursor = conn.cursor()

# Создаем таблицу books
cursor.execute('''
CREATE TABLE IF NOT EXISTS books
(id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
year INTEGER)
''')

# Сохраняем изменения
conn.commit()

# Закрываем соединение
conn.close()

При запуске этого кода будет создана база данных `library.db` с таблицей `books`. Если вы запустите код повторно, новая таблица не будет создана благодаря условию `IF NOT EXISTS`.

Добавление данных в таблицу

Теперь давайте добавим несколько книг в нашу библиотеку:


import sqlite3

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

# Добавляем книги
books = [
    ('Гарри Поттер и философский камень', 'Дж. К. Роулинг', 1997),
    ('1984', 'Джордж Оруэлл', 1949),
    ('Властелин колец', 'Дж. Р. Р. Толкин', 1954)
]

cursor.executemany('INSERT INTO books (title, author, year) VALUES (?, ?, ?)', books)

conn.commit()
conn.close()

Этот код добавит три книги в нашу таблицу `books`.

Получение данных из таблицы

Теперь давайте научимся получать данные из нашей базы:


import sqlite3

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

# Получаем все книги
cursor.execute('SELECT * FROM books')
all_books = cursor.fetchall()

print("Все книги в нашей библиотеке:")
for book in all_books:
    print(f"ID: {book[0]}, Название: {book[1]}, Автор: {book[2]}, Год: {book[3]}")

# Получаем книги определенного автора
author = 'Дж. К. Роулинг'
cursor.execute('SELECT * FROM books WHERE author = ?', (author,))
author_books = cursor.fetchall()

print(f"\nКниги автора {author}:")
for book in author_books:
    print(f"Название: {book[1]}, Год: {book[3]}")

conn.close()

При запуске этого кода вы увидите список всех книг в базе данных, а затем список книг конкретного автора.

Обновление данных

Иногда нам нужно изменить информацию в базе данных. Вот как это сделать:


import sqlite3

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

# Обновляем год издания книги
cursor.execute('UPDATE books SET year = ? WHERE title = ?', (1998, 'Гарри Поттер и философский камень'))

conn.commit()

# Проверяем, что изменения сохранились
cursor.execute('SELECT * FROM books WHERE title = ?', ('Гарри Поттер и философский камень',))
updated_book = cursor.fetchone()
print(f"Обновленная информация: ID: {updated_book[0]}, Название: {updated_book[1]}, Автор: {updated_book[2]}, Год: {updated_book[3]}")

conn.close()

Этот код обновит год издания для книги «Гарри Поттер и философский камень» и выведет обновленную информацию.

Удаление данных

Наконец, давайте научимся удалять данные из базы:


import sqlite3

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

# Удаляем книгу
cursor.execute('DELETE FROM books WHERE title = ?', ('1984',))

conn.commit()

# Проверяем, что книга удалена
cursor.execute('SELECT * FROM books')
remaining_books = cursor.fetchall()

print("Оставшиеся книги в библиотеке:")
for book in remaining_books:
    print(f"ID: {book[0]}, Название: {book[1]}, Автор: {book[2]}, Год: {book[3]}")

conn.close()

Этот код удалит книгу «1984» из нашей базы данных и выведет список оставшихся книг.

Вопрос-ответ:

Что такое SQL?

SQL (Structured Query Language) — это специальный язык для работы с базами данных. Он позволяет нам «разговаривать» с базой данных, запрашивать, добавлять, изменять и удалять информацию.

Почему SQLite хорош для начинающих?

SQLite — это легкая, встраиваемая база данных, которая не требует отдельного сервера и хранит всю информацию в одном файле. Это делает её идеальным выбором для начинающих и небольших проектов, так как она проста в использовании и не требует сложной настройки.


Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x