SQLAlchemy Core - Thực thi Biểu thức

Trong chương trước, chúng ta đã học về Biểu thức SQL. Trong chương này, chúng ta sẽ xem xét việc thực thi các biểu thức này.

Để thực thi các biểu thức SQL kết quả, chúng ta phải obtain a connection object representing an actively checked out DBAPI connection resource và sau đó feed the expression object như được hiển thị trong mã bên dưới.

conn = engine.connect()

Đối tượng insert () sau đây có thể được sử dụng cho phương thức execute () -

ins = students.insert().values(name = 'Ravi', lastname = 'Kapoor')
result = conn.execute(ins)

Bảng điều khiển hiển thị kết quả thực thi biểu thức SQL như bên dưới:

INSERT INTO students (name, lastname) VALUES (?, ?)
('Ravi', 'Kapoor')
COMMIT

Sau đây là toàn bộ đoạn mã cho thấy việc thực thi truy vấn INSERT bằng kỹ thuật cốt lõi của SQLAlchemy:

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

ins = students.insert()
ins = students.insert().values(name = 'Ravi', lastname = 'Kapoor')
conn = engine.connect()
result = conn.execute(ins)

Kết quả có thể được xác minh bằng cách mở cơ sở dữ liệu bằng SQLite Studio như được hiển thị trong ảnh chụp màn hình bên dưới -

Biến kết quả được gọi là ResultProxy object. Nó tương tự như đối tượng con trỏ DBAPI. Chúng tôi có thể thu thập thông tin về các giá trị khóa chính được tạo từ câu lệnh của chúng tôi bằng cách sử dụngResultProxy.inserted_primary_key như hình dưới đây -

result.inserted_primary_key
[1]

Để phát hành nhiều phần chèn bằng cách sử dụng phương thức thực thi nhiều () của DBAPI, chúng ta có thể gửi vào danh sách các từ điển, mỗi từ điển chứa một bộ tham số riêng biệt sẽ được chèn vào.

conn.execute(students.insert(), [
   {'name':'Rajiv', 'lastname' : 'Khanna'},
   {'name':'Komal','lastname' : 'Bhandari'},
   {'name':'Abdul','lastname' : 'Sattar'},
   {'name':'Priya','lastname' : 'Rajhans'},
])

Điều này được phản ánh trong chế độ xem dữ liệu của bảng như trong hình sau: