SQLAlchemy Core - tworzenie tabeli

Omówmy teraz, jak używać funkcji tworzenia tabeli.

Język wyrażeń SQL konstruuje swoje wyrażenia na podstawie kolumn tabeli. Obiekt SQLAlchemy Column reprezentuje plikcolumn w tabeli bazy danych, która z kolei jest reprezentowana przez Tableobject. Metadane zawierają definicje tabel i powiązanych obiektów, takich jak indeks, widok, wyzwalacze itp.

Stąd obiekt klasy MetaData z SQLAlchemy Metadata jest zbiorem obiektów Table i skojarzonych z nimi konstrukcji schematu. Zawiera kolekcję obiektów Table, a także opcjonalne powiązanie z aparatem lub połączeniem.

from sqlalchemy import MetaData
meta = MetaData()

Konstruktor klasy MetaData może mieć domyślne parametry bind i schema None.

Następnie definiujemy wszystkie nasze tabele w powyższym katalogu metadanych, używając the Table construct, która przypomina zwykłą instrukcję SQL CREATE TABLE.

Obiekt klasy Table reprezentuje odpowiednią tabelę w bazie danych. Konstruktor przyjmuje następujące parametry -

Nazwa Nazwa tabeli
Metadane Obiekt MetaData, który będzie zawierał tę tabelę
Kolumna (y) Co najmniej jeden obiekt klasy kolumnowej

Obiekt kolumny reprezentuje plik column w database table. Konstruktor przyjmuje nazwę, typ i inne parametry, takie jak primary_key, autoincrement i inne ograniczenia.

SQLAlchemy dopasowuje dane Pythona do najlepszych możliwych generycznych typów danych kolumn w nim zdefiniowanych. Niektóre z ogólnych typów danych to -

  • BigInteger
  • Boolean
  • Date
  • DateTime
  • Float
  • Integer
  • Numeric
  • SmallInteger
  • String
  • Text
  • Time

Stworzyć students table w bazie danych uczelni użyj następującego fragmentu -

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), 
)

Funkcja create_all () używa obiektu silnika do tworzenia wszystkich zdefiniowanych obiektów tabeli i przechowuje informacje w metadanych.

meta.create_all(engine)

Poniżej podano pełny kod, który utworzy bazę danych SQLite college.db z tabelą studentów.

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)

Ponieważ atrybut echo funkcji create_engine () jest ustawiony na True, konsola wyświetli rzeczywiste zapytanie SQL do tworzenia tabeli w następujący sposób -

CREATE TABLE students (
   id INTEGER NOT NULL,
   name VARCHAR,
   lastname VARCHAR,
   PRIMARY KEY (id)
)

Plik college.db zostanie utworzony w bieżącym katalogu roboczym. Aby sprawdzić, czy tabela uczniów została utworzona, możesz otworzyć bazę danych za pomocą dowolnego narzędzia SQLite GUI, takiego jakSQLiteStudio.

Poniższy obraz przedstawia tabelę uczniów utworzoną w bazie danych -