Membuat database dan tabel

Pengantar Basis Data di Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Membuat database

  • Bergantung pada jenis database
  • Database seperti PostgreSQL dan MySQL punya alat baris perintah untuk inisialisasi
  • Dengan SQLite, pernyataan create_engine() akan membuat database dan file jika belum ada
Pengantar Basis Data di Python

Membangun 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']
Pengantar Basis Data di Python

Membuat tabel

  • Tetap menggunakan objek Table seperti saat refleksi
  • Ganti argumen kata kunci autoload dengan objek Column
  • Buat tabel di database nyata dengan metode create_all() pada instance MetaData
  • Gunakan alat lain untuk pembaruan tabel, seperti Alembic atau SQL mentah
Pengantar Basis Data di Python

Membuat tabel - opsi kolom tambahan

  • unique mewajibkan semua nilai dalam kolom unik
  • nullable menentukan apakah kolom boleh kosong pada sebuah baris
  • default menetapkan nilai bawaan jika tidak diberikan
Pengantar Basis Data di Python

Membangun tabel dengan opsi tambahan

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))}
Pengantar Basis Data di Python

Ayo berlatih!

Pengantar Basis Data di Python

Preparing Video For Download...