Створення баз даних і таблиць

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

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

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

  • Залежить від типу бази даних
  • У PostgreSQL і MySQL є консольні інструменти для ініціалізації бази
  • У SQLite оператор create_engine() створить базу й файл, якщо їх ще немає
Вступ до баз даних у Python

Побудова таблиці

from sqlalchemy import (Table, Column, String, 
       Integer, Decimal, Boolean)

employees = Table('employees', metadata, Column('id', Integer()), Column('name', String(255)), Column('salary', Decimal()), Column('active', Boolean()))
metadata.create_all(engine)
engine.table_names()
[u'employees']
Вступ до баз даних у Python

Створення таблиць

  • Далі використовує об'єкт Table, як і для рефлексії
  • Замість аргументів autoload використовує об'єкти Column
  • Створює таблиці в реальній базі даних методом create_all() на екземплярі MetaData
  • Для змін у схемі таблиць скористайтеся іншими інструментами, наприклад Alembic або сирим SQL
Вступ до баз даних у Python

Створення таблиць — додаткові параметри стовпців

  • unique змушує всі значення в стовпці бути унікальними
  • nullable визначає, чи може стовпець бути порожнім у рядку
  • default задає значення за замовчуванням, якщо його не подано
Вступ до баз даних у Python

Побудова таблиці з додатковими параметрами

employees = Table('employees', metadata,
       Column('id', Integer()), 
       Column('name', String(255), unique=True, nullable=False), 
       Column('salary', Float(), default=100.00),          
       Column('active', Boolean(), default=True))

employees.constraints
{CheckConstraint(... 
Column('name', String(length=255), table=<employees>, nullable=False), 
Column('salary', Float(), table=<employees>, 
       default=ColumnDefault(100.0)), 
Column('active', Boolean(), table=<employees>, 
       default=ColumnDefault(True)), ...
UniqueConstraint(Column('name', String(length=255), 
                 table=<employees>, nullable=False))}
Вступ до баз даних у Python

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

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

Preparing Video For Download...