SQLAlchemy Core - Tạo bảng
Bây giờ chúng ta hãy thảo luận về cách sử dụng hàm tạo bảng.
Ngôn ngữ biểu thức SQL xây dựng các biểu thức của nó dựa trên các cột của bảng. Đối tượng SQLAlchemy Column đại diện cho mộtcolumn trong một bảng cơ sở dữ liệu mà lần lượt được đại diện bởi một Tableobject. Siêu dữ liệu chứa các định nghĩa của bảng và các đối tượng liên quan như chỉ mục, chế độ xem, trình kích hoạt, v.v.
Do đó, một đối tượng của lớp MetaData từ Siêu dữ liệu SQLAlchemy là một tập hợp các đối tượng Bảng và các cấu trúc lược đồ liên quan của chúng. Nó chứa một bộ sưu tập các đối tượng Bảng cũng như một ràng buộc tùy chọn đối với Động cơ hoặc Kết nối.
from sqlalchemy import MetaData
meta = MetaData()
Khối tạo của lớp MetaData có thể có các tham số liên kết và lược đồ theo mặc định None.
Tiếp theo, chúng tôi xác định tất cả các bảng của mình trong danh mục siêu dữ liệu ở trên, sử dụng the Table construct, giống như câu lệnh SQL CREATE TABLE thông thường.
Một đối tượng của lớp Table đại diện cho bảng tương ứng trong cơ sở dữ liệu. Hàm tạo nhận các tham số sau:
Tên | Tên của bảng |
---|---|
metadata | Đối tượng MetaData sẽ giữ bảng này |
Cột) | Một hoặc nhiều đối tượng của lớp cột |
Đối tượng cột đại diện cho một column trong một database table. Constructor lấy tên, kiểu và các tham số khác như khóa_chính_chính, autoincrement và các ràng buộc khác.
SQLAlchemy đối sánh dữ liệu Python với các kiểu dữ liệu cột chung chung tốt nhất có thể được xác định trong đó. Một số kiểu dữ liệu chung là -
- BigInteger
- Boolean
- Date
- DateTime
- Float
- Integer
- Numeric
- SmallInteger
- String
- Text
- Time
Để tạo ra một students table trong cơ sở dữ liệu trường đại học, hãy sử dụng đoạn mã sau:
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),
)
Hàm create_all () sử dụng đối tượng engine để tạo tất cả các đối tượng bảng đã xác định và lưu trữ thông tin trong siêu dữ liệu.
meta.create_all(engine)
Mã hoàn chỉnh được cung cấp bên dưới sẽ tạo cơ sở dữ liệu SQLite college.db với bảng sinh viên trong đó.
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)
Vì thuộc tính echo của hàm create_engine () được đặt thành True, bảng điều khiển sẽ hiển thị truy vấn SQL thực tế để tạo bảng như sau:
CREATE TABLE students (
id INTEGER NOT NULL,
name VARCHAR,
lastname VARCHAR,
PRIMARY KEY (id)
)
Cao đẳng.db sẽ được tạo trong thư mục làm việc hiện tại. Để kiểm tra xem bảng sinh viên đã được tạo chưa, bạn có thể mở cơ sở dữ liệu bằng bất kỳ công cụ GUI nào của SQLite chẳng hạn nhưSQLiteStudio.
Hình ảnh dưới đây cho thấy bảng sinh viên được tạo trong cơ sở dữ liệu -