Crearea bazelor de date și a tabelelor

Introducere în baze de date în Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Crearea bazelor de date

  • Variază în funcție de tipul bazei de date
  • Bazele de date precum PostgreSQL și MySQL dispun de instrumente în linie de comandă pentru inițializare
  • Cu SQLite, instrucțiunea create_engine() va crea baza de date și fișierul, dacă acestea nu există deja
Introducere în baze de date în Python

Construirea unui tabel

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']
Introducere în baze de date în Python

Crearea tabelelor

  • Utilizează în continuare obiectul Table, ca la reflecție
  • Înlocuiește argumentele autoload cu obiecte Column
  • Creează tabelele în baza de date folosind metoda create_all() pe instanța MetaData
  • Pentru actualizări ale tabelelor, folosiți instrumente dedicate, precum Alembic sau SQL direct
Introducere în baze de date în Python

Crearea tabelelor - opțiuni suplimentare pentru coloane

  • unique impune ca toate valorile dintr-o coloană să fie unice
  • nullable determină dacă o coloană poate fi goală într-un rând
  • default setează o valoare implicită dacă nu este furnizată niciuna
Introducere în baze de date în Python

Construirea unui tabel cu opțiuni suplimentare

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))}
Introducere în baze de date în Python

Să exersăm!

Introducere în baze de date în Python

Preparing Video For Download...