Привет! Я решил написать эту статью о структуре моей базы данных и коде на Python с использованием библиотеки SQLite3․ Я недавно создал базу данных, чтобы хранить информацию о себе и своих друзьях․ Для этого я использовал три таблицы⁚ ″users″, ″friends″ и ″hobbies″․
users | ||
---|---|---|
id | name | age |
1 | John | 25 |
2 | Jane | 22 |
Таблица ″users″ содержит информацию о пользователе․ У каждого пользователю есть уникальный идентификатор (id), имя (name) и возраст (age)․
friends | ||
---|---|---|
id | user_id | friend_id |
1 | 1 | 2 |
2 | 2 | 1 |
Таблица ″friends″ содержит информацию о связи между пользователями․ У каждой записи есть уникальный идентификатор (id), идентификатор пользователя (user_id) и идентификатор друга (friend_id)․ На примере таблицы можно видеть, что пользователь с id 1 и пользователь с id 2 являются друзьями․
hobbies | ||
---|---|---|
id | user_id | hobby |
1 | 1 | reading |
2 | 1 | painting |
3 | 2 | swimming |
Таблица ″hobbies″ содержит информацию о хобби каждого пользователя․ У каждой записи есть уникальный идентификатор (id), идентификатор пользователя (user_id) и название хобби (hobby)․Теперь перейдем к коду Python․ Я использовал библиотеку SQLite3 для создания и управления базой данных․ Вот как выглядит код для создания таблиц и вставки некоторых данных⁚
python
import sqlite3
# Создание базы данных и подключение к ней
conn sqlite3․connect(‘my_database․db’)
cursor conn․cursor
# Создание таблицы ″users″
cursor․execute(»’CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER)»’)
# Создание таблицы ″friends″
cursor․execute(»’CREATE TABLE IF NOT EXISTS friends
(id INTEGER PRIMARY KEY,
user_id INTEGER,
friend_id INTEGER,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (friend_id) REFERENCES users(id))»’)
# Создание таблицы ″hobbies″
cursor․execute(»’CREATE TABLE IF NOT EXISTS hobbies
(id INTEGER PRIMARY KEY,
user_id INTEGER,
hobby TEXT,
FOREIGN KEY (user_id) REFERENCES users(id))»’)
# Вставка данных в таблицу ″users″
cursor․execute(″INSERT INTO users (id, name, age) VALUES (1, ‘John’, 25)″)
cursor․execute(″INSERT INTO users (id, name, age) VALUES (2, ‘Jane’, 22)″)
# Вставка данных в таблицу ″friends″
cursor․execute(″INSERT INTO friends (id, user_id, friend_id) VALUES (1٫ 1٫ 2)″)
cursor․execute(″INSERT INTO friends (id, user_id, friend_id) VALUES (2, 2, 1)″)
# Вставка данных в таблицу ″hobbies″
cursor․execute(″INSERT INTO hobbies (id, user_id, hobby) VALUES (1, 1, ‘reading’)″)
cursor․execute(″INSERT INTO hobbies (id, user_id, hobby) VALUES (2, 1, ‘painting’)″)
cursor․execute(″INSERT INTO hobbies (id, user_id, hobby) VALUES (3, 2, ‘swimming’)″)
# Сохранение изменений и закрытие подключения
conn․commit
conn․close
Теперь, когда база данных создана и заполнена данными, давайте перейдем к выполнению SQL-запросов․ Я покажу примеры SELECT, JOIN, UPDATE и DELETE запросов⁚
python
import sqlite3
# Подключение к базе данных
conn sqlite3․connect(‘my_database․db’)
cursor conn․cursor
# Примеры SQL-запросов
cursor․execute(″SELECT * FROM users″) # SELECT для вывода всех записей из таблицы ″users″
cursor․execute(″SELECT * FROM users WHERE age > 20″) # SELECT с условием
cursor․execute(»’SELECT users․name, hobbies․hobby FROM users
JOIN hobbies ON users․id hobbies․user_id»’) # JOIN для соединения данных из таблиц ″users″ и ″hobbies″
cursor․execute(″UPDATE users SET age 26 WHERE id 1″) # UPDATE для изменения данных в таблице ″users″
cursor․execute(″DELETE FROM hobbies WHERE user_id 2″) # DELETE для удаления данных из таблицы ″hobbies″
# Получение и вывод результатов запросов
result cursor․fetchall
for row in result⁚
print(row)
# Закрытие подключения
conn․close
Наконец, давайте перейдем к выводу данных из базы данных в формате CSV․ Для этого я воспользуюсь модулем csv в Python⁚
python
import sqlite3
import csv
# Подключение к базе данных
conn sqlite3․connect(‘my_database․db’)
cursor conn․cursor
# SQL-запрос для выборки данных
cursor․execute(″SELECT * FROM users″)
# Получение результатов запроса
result cursor․fetchall
# Запись результатов в файл CSV
with open(‘output․csv’, ‘w’, newline») as file⁚
writer csv․writer(file)
writer․writerow([‘id’, ‘name’, ‘age’]) # Заголовки столбцов
writer․writerows(result) # Данные
# Закрытие подключения
conn․close
В результате выполнения кода будет создан файл output․csv, содержащий данные из таблицы ″users″ в формате CSV․ Это было достигнуто с помощью модуля csv Python․
Это была детальная статья о структуре базы данных и коде на Python для работы с ней․ Я надеюсь, что она была полезной и помогла вам понять, как использовать базы данных и Python для хранения и управления информацией․