Вступ до баз даних

Оптимізоване завантаження даних із pandas

Amany Mahfouz

Instructor

Реляційні бази даних

  • Дані про сутності організовано в таблиці
  • Кожен рядок (запис) — це екземпляр сутності
  • Кожен стовпець містить відомості про атрибут
  • Таблиці можна пов'язувати через унікальні ключі
  • Підтримують більше даних, кількох одночасних користувачів і контроль якості даних
  • Для кожного стовпця задано тип даних
  • SQL (Structured Query Language) для взаємодії з базами даних
Оптимізоване завантаження даних із pandas

Поширені реляційні бази даних

Логотип Microsoft SQL Server

Логотип Oracle

  • Бази даних SQLite — це файли на комп'ютері

Логотип PostgreSQL

Логотип SQLite

Оптимізоване завантаження даних із pandas

Підключення до баз даних

  • Два кроки:
    1. Створити спосіб підключення до бази даних
    2. Виконати запит до бази даних

Кліпарт «База даних»

Оптимізоване завантаження даних із pandas

Створення рушія бази даних

Логотип SQLAlchemy

  • sqlalchemy create_engine() створює рушій для керування підключеннями до бази даних
    • Потрібен рядок-URL бази даних для підключення
    • Формат URL для SQLite: sqlite:///filename.db
Оптимізоване завантаження даних із pandas

Виконання запитів до баз даних

  • pd.read_sql(query, engine) завантажує дані з бази даних
  • Аргументи
    • query: рядок із SQL-запитом для виконання або назва таблиці для завантаження
    • engine: об'єкт підключення/рушій бази даних
Оптимізоване завантаження даних із pandas

Повторення SQL: SELECT

  • Використовується для вибірки даних із бази
  • Базовий синтаксис:
    SELECT [column_names] FROM [table_name];
    
  • Щоб отримати всі дані таблиці:
    SELECT * FROM [table_name];
    
  • Стиль коду: ключові слова ВЕЛИКИМИ ЛІТЕРАМИ, крапка з комою (;) завершує інструкцію
Оптимізоване завантаження даних із pandas

Отримання даних із бази даних

# Імпортуйте pandas і create_engine з sqlalchemy
import pandas as pd
from sqlalchemy import create_engine

# Створіть рушій бази даних для керування підключеннями engine = create_engine("sqlite:///data.db")
# Завантажте всю таблицю weather за назвою таблиці weather = pd.read_sql("weather", engine)
Оптимізоване завантаження даних із pandas
# Створіть рушій бази даних для керування підключеннями
engine = create_engine("sqlite:///data.db")

# Завантажте всю таблицю weather за допомогою SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Оптимізоване завантаження даних із pandas

Давайте потренуємось!

Оптимізоване завантаження даних із pandas

Preparing Video For Download...