SQLite3 — одна из самых простых в использовании систем управления базами данных (СУБД). В отличие от большинства СУБД, она не требует настройки сервера или сложной установки, поскольку встроена в большинство популярных языков программирования, позволяя начать работу без дополнительных подключений. База данных хранится в отдельном файле, распространяющемся вместе с проектом, что упрощает её использование и переносимость. SQLite3 совместима с множеством языков, включая Java, C#, и Python, для которых существуют специальные классы и методы работы.
Структура базы данных
База данных состоит из таблиц, содержащих поля и записи. Например, база данных itproger может содержать информацию о пользователях и статьях сайта, организованную в две таблицы: users и articles. Таблица users может иметь поля name, login и password, а таблица articles — свои поля. Все действия с базой данных выполняются на языке SQL.
Начало работы с Python
Установите Python (скачать с официального сайта) и программу для написания кода (например, PyCharm). Импортируйте библиотеку SQLite3:
import sqlite3
Создайте базу данных:
db = sqlite3.connect('itproger.db')
db.close()
При первом запуске создаётся файл itproger.db, содержащий всю информацию базы данных. Он распространяется вместе с проектом. Важно закрывать соединение с базой данных (db.close()) во избежание утечки памяти.
Создание и использование таблиц
Создайте курсор для работы с базой данных:
c = db.cursor()
Создайте таблицу articles с полями: title (текст), text (текст), views (целое число) и author (текст):
c.execute("""
CREATE TABLE articles (
title TEXT,
text TEXT,
views INTEGER,
author TEXT
)
""")
db.commit()
Команда CREATE TABLE создаёт таблицу, а db.commit() сохраняет изменения. Названия команд SQL принято писать заглавными буквами.
Основные операции с данными
Добавление данных
Добавьте записи в таблицу articles с помощью команды INSERT INTO:
c.execute("INSERT INTO articles (title, text, views, author) VALUES ('Google is Cool', 'Google is really Cool', 100, 'admin')")
c.execute("INSERT INTO articles (title, text, views, author) VALUES ('Facebook is Cool', 'Facebook is really Cool', 40, 'modest')")
db.commit()
Выборка данных
Выберите все записи из таблицы articles с помощью команды SELECT:
c.execute("SELECT * FROM articles")
print(c.fetchall())
fetchall() возвращает список всех записей. Можно использовать fetchmany(n) для получения n записей или fetchone() для получения одной записи.
Фильтрация и сортировка данных
Для выбора данных с условиями используется оператор WHERE, а для сортировки — ORDER BY:
c.execute("SELECT * FROM articles WHERE views >= 60 ORDER BY views DESC")
print(c.fetchall())
Этот запрос выбирает статьи с количеством просмотров больше или равным 60, сортируя их по убыванию просмотров.
Удаление данных
Для удаления данных используется команда DELETE:
c.execute("DELETE FROM articles WHERE author = 'admin'")
db.commit()
Этот запрос удаляет все статьи, написанные автором ‘admin’.
Изменение данных
Для изменения данных используется команда UPDATE:
c.execute("UPDATE articles SET author = 'admin', views = 1 WHERE title = 'Amazon is Cool'")
db.commit()
Этот запрос изменяет автора статьи ‘Amazon is Cool’ на ‘admin’ и устанавливает количество просмотров равным 1.
SQLite3 — простая и удобная СУБД, легко интегрируемая с различными языками программирования. Знание SQL значительно упрощает работу с базами данных.