Veritabanları ve tablolar oluşturma

Python ile Veritabanlarına Giriş

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Veritabanı oluşturma

  • Veritabanı türüne göre değişir
  • PostgreSQL ve MySQL gibi veritabanlarında başlatmak için komut satırı araçları vardır
  • SQLite’ta, create_engine() deyimi veritabanını ve dosyayı yoksa oluşturur
Python ile Veritabanlarına Giriş

Tablo oluşturma

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 ile Veritabanlarına Giriş

Tablo oluşturma

  • Yine yansıtmada kullandığımız gibi Table nesnesini kullanır
  • autoload bağımsız değişkenleri yerine Column nesneleri kullanılır
  • MetaData örneği üzerinde create_all() ile tabloları gerçek veritabanında oluşturur
  • Alembic veya ham SQL gibi araçlarla tablo güncellemeleri yapılmalıdır
Python ile Veritabanlarına Giriş

Tablo oluşturma - ek sütun seçenekleri

  • unique, bir sütundaki tüm değerlerin benzersiz olmasını zorunlu kılar
  • nullable, bir satırda sütunun boş bırakılabilir olup olmadığını belirler
  • default, değer sağlanmazsa varsayılan bir değer atar
Python ile Veritabanlarına Giriş

Ek seçeneklerle tablo oluşturma

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 ile Veritabanlarına Giriş

Haydi pratik yapalım!

Python ile Veritabanlarına Giriş

Preparing Video For Download...