SQLAlchemy Core - Membuat Tabel
Sekarang mari kita bahas cara menggunakan fungsi buat tabel.
Bahasa Ekspresi SQL menyusun ekspresinya terhadap kolom tabel. Objek Kolom SQLAlchemy mewakili acolumn dalam tabel database yang pada gilirannya diwakili oleh a Tableobject. Metadata berisi definisi tabel dan objek terkait seperti indeks, tampilan, pemicu, dll.
Oleh karena itu, objek kelas MetaData dari SQLAlchemy Metadata adalah kumpulan objek Tabel dan konstruksi skema yang terkait. Ini menyimpan koleksi objek Tabel serta pengikatan opsional ke Mesin atau Koneksi.
from sqlalchemy import MetaData
meta = MetaData()
Pembuat kelas MetaData dapat memiliki parameter bind dan skema yang secara default None.
Selanjutnya, kami mendefinisikan tabel kami semua dalam katalog metadata di atas, menggunakan the Table construct, yang menyerupai pernyataan SQL CREATE TABLE biasa.
Objek kelas Tabel mewakili tabel terkait dalam database. Konstruktor mengambil parameter berikut -
Nama | Nama tabel |
---|---|
Metadata | Objek MetaData yang akan menampung tabel ini |
Kolom | Satu atau lebih objek dari kelas kolom |
Objek kolom mewakili a column di sebuah database table. Pembuat mengambil nama, jenis dan parameter lain seperti primary_key, autoincrement dan kendala lainnya.
SQLAlchemy mencocokkan data Python dengan tipe data kolom generik terbaik yang ditentukan di dalamnya. Beberapa tipe data generik adalah -
- BigInteger
- Boolean
- Date
- DateTime
- Float
- Integer
- Numeric
- SmallInteger
- String
- Text
- Time
Untuk membuat file students table dalam database perguruan tinggi, gunakan cuplikan berikut -
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),
)
Fungsi create_all () menggunakan objek mesin untuk membuat semua objek tabel yang ditentukan dan menyimpan informasi dalam metadata.
meta.create_all(engine)
Kode lengkap diberikan di bawah ini yang akan membuat database SQLite college.db dengan tabel siswa di dalamnya.
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)
Karena atribut echo dari fungsi create_engine () diatur ke True, konsol akan menampilkan kueri SQL sebenarnya untuk pembuatan tabel sebagai berikut -
CREATE TABLE students (
id INTEGER NOT NULL,
name VARCHAR,
lastname VARCHAR,
PRIMARY KEY (id)
)
College.db akan dibuat di direktori kerja saat ini. Untuk memeriksa apakah tabel siswa dibuat, Anda dapat membuka database menggunakan alat GUI SQLite sepertiSQLiteStudio.
Gambar di bawah ini menunjukkan tabel siswa yang dibuat di database -