Встречается на собеседованиях • сегодня

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

В Python есть несколько способов загрузки данных в SQL-базы:

  1. SQLAlchemy ORM (рекомендуется для сложных проектов):
python
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}
])

text

2. **SQLite3 (встроенная библиотека)**:
```python
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute("INSERT INTO users VALUES (1, 'John', 30)")
conn.commit()
conn.close()
  1. Pandas + SQLAlchemy (для больших датасетов):
python
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)
  1. Psycopg2 (для PostgreSQL):
python
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)
  • Временное отключение индексов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы