Какие знаешь способы загрузки данных в SQL

Python Middle Без компании
Какие знаешь способы загрузки данных в SQL
Ответы
В Python есть несколько способов загрузки данных в SQL-базы: - **SQLAlchemy ORM** (рекомендуется для сложных проектов): ``` from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData engine = create_engine('sqlite:///example.db') metadata = MetaData() users = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String), Column('age', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(users.insert(), [ {'name': 'John', 'age': 30}, {'name': 'Jane', 'age': 25} ]) ``` - **SQLite3 (встроенная библиотека)**: ``` import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() c.execute("INSERT INTO users VALUES (1, 'John', 30)") conn.commit() conn.close() ``` - **Pandas + SQLAlchemy** (для больших датасетов): ``` import pandas as pd from sqlalchemy import create_engine df = pd.DataFrame({'name': ['John', 'Jane'], 'age': [30, 25]}) engine = create_engine('sqlite:///example.db') df.to_sql('users', engine, if_exists='append', index=False) ``` - **Psycopg2 (для PostgreSQL)**: ``` import psycopg2 conn = psycopg2.connect("dbname=test user=postgres") cur = conn.cursor() cur.execute("INSERT INTO users VALUES (%s, %s)", ("John", 30)) conn.commit() ``` Для оптимизации больших вставок используйте: - Пакетную вставку (executemany) - Транзакции (BEGIN/COMMIT) - Временное отключение индексов