SQLAlchemy Core - Tablo Oluşturma
Şimdi tablo oluşturma işlevinin nasıl kullanılacağını tartışalım.
SQL İfade Dili, ifadelerini tablo sütunlarına göre oluşturur. SQLAlchemy Column nesnesi bircolumn sırayla bir ile temsil edilen bir veritabanı tablosunda Tableobject. Meta veriler, tabloların tanımlarını ve dizin, görünüm, tetikleyiciler gibi ilişkili nesneler içerir.
Dolayısıyla, SQLAlchemy Metadata'dan bir MetaData sınıfı nesnesi, Tablo nesnelerinin ve bunlarla ilişkili şema yapılarının bir koleksiyonudur. Bir Motor veya Bağlantı için isteğe bağlı bir bağlamanın yanı sıra Tablo nesnelerinin bir koleksiyonunu tutar.
from sqlalchemy import MetaData
meta = MetaData()
MetaData sınıfının oluşturucusu, varsayılan olarak olan bağlama ve şema parametrelerine sahip olabilir None.
Ardından, tablolarımızı yukarıdaki meta veri kataloğunda kullanarak tanımlarız. the Table construct, normal SQL CREATE TABLE deyimine benzeyen.
Table sınıfının bir nesnesi, bir veritabanındaki karşılık gelen tabloyu temsil eder. Yapıcı aşağıdaki parametreleri alır -
İsim | Tablonun adı |
---|---|
Meta veriler | Bu tabloyu tutacak MetaData nesnesi |
Sütun (lar) | Bir veya daha fazla sütun sınıfı nesnesi |
Sütun nesnesi bir column içinde database table. Oluşturucu, adı, türü ve birincil_anahtar, otomatik artırma ve diğer kısıtlamalar gibi diğer parametreleri alır.
SQLAlchemy, Python verilerini içinde tanımlanan olası en iyi genel sütun veri türleriyle eşleştirir. Genel veri türlerinden bazıları -
- BigInteger
- Boolean
- Date
- DateTime
- Float
- Integer
- Numeric
- SmallInteger
- String
- Text
- Time
Oluşturmak için students table üniversite veritabanında aşağıdaki parçacığı kullanın -
from sqlalchemy import Table, Column, Integer, String, MetaData
meta = MetaData()
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
Create_all () işlevi, tanımlanmış tüm tablo nesnelerini oluşturmak için motor nesnesini kullanır ve bilgileri meta verilerde depolar.
meta.create_all(engine)
İçinde bir öğrenci tablosu olan bir SQLite veritabanı college.db oluşturacak tam kod aşağıda verilmiştir.
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
meta.create_all(engine)
Create_engine () işlevinin echo özniteliği şu şekilde ayarlanmıştır: Truekonsol, tablo oluşturma için gerçek SQL sorgusunu aşağıdaki gibi gösterecektir -
CREATE TABLE students (
id INTEGER NOT NULL,
name VARCHAR,
lastname VARCHAR,
PRIMARY KEY (id)
)
College.db, mevcut çalışma dizininde oluşturulacaktır. Öğrenci tablosunun oluşturulup oluşturulmadığını kontrol etmek için, veritabanını herhangi bir SQLite GUI aracını kullanarak açabilirsiniz.SQLiteStudio.
Aşağıdaki resim, veritabanında oluşturulan öğrenci tablosunu göstermektedir -