Trình tạo truy vấn cơ sở dữ liệu cung cấp giao diện thông thạo để tạo và chạy các truy vấn cơ sở dữ liệu. Nó có thể được sử dụng để thực hiện hầu hết các hoạt động cơ sở dữ liệu trong ứng dụng của bạn và hoạt động trên tất cả các hệ thống cơ sở dữ liệu được hỗ trợ
Ghi chú
Vì Nhà hùng biện sử dụng các gói DBAPI bên trong nên không cần xóa các tham số được truyền dưới dạng ràng buộc
Ghi chú
Các kết nối DBAPI cơ bản được cấu hình tự động để trả về từ điển thay vì biểu diễn bộ dữ liệu mặc định
chọn
Lấy tất cả các hàng từ một bảng
users = db.table['users'].get[] for user in users: print[user['name']]
Chunking kết quả từ một bảng
for users in db.table['users'].chunk[100]: for user in users: # ...
Truy xuất một hàng từ một bảng
user = db.table['users'].where['name', 'John'].first[] print[user['name']]
Truy xuất một cột từ một hàng
user = db.table['users'].where['name', 'John'].pluck['name']
Truy xuất danh sách các giá trị cột
roles = db.table['roles'].lists['title']
Phương thức này sẽ trả về một danh sách các chức danh vai trò. Nó có thể trả về một từ điển nếu bạn truyền một tham số khóa phụ
roles = db.table['roles'].lists['title', 'name']
Chỉ định mệnh đề select
users = db.table['users'].select['name', 'email'].get[] users = db.table['users'].distinct[].get[] users = db.table['users'].select['name as user_name'].get[]
Thêm một mệnh đề chọn vào một truy vấn hiện có
query = db.table['users'].select['name'] users = query.add_select['age'].get[]
Sử dụng toán tử where
________số 8
Hoặc tuyên bố
users = db.table['users'].where['age', '>', 25].or_where['name', 'John'].get[]
Sử dụng ở đâu giữa
for users in db.table['users'].chunk[100]: for user in users: # ...0
Sử dụng Where Not Between
for users in db.table['users'].chunk[100]: for user in users: # ...1
Sử dụng ở đâu trong
for users in db.table['users'].chunk[100]: for user in users: # ...2
Sử dụng Where Null để tìm các bản ghi có giá trị null
for users in db.table['users'].chunk[100]: for user in users: # ...3
Sắp xếp theo, nhóm theo và có
for users in db.table['users'].chunk[100]: for user in users: # ...4
Bù trừ và giới hạn
for users in db.table['users'].chunk[100]: for user in users: # ...5
tham gia
Trình tạo truy vấn cũng có thể được sử dụng để viết các câu lệnh nối
Tuyên bố tham gia cơ bản
for users in db.table['users'].chunk[100]: for user in users: # ...6
Câu lệnh nối trái
for users in db.table['users'].chunk[100]: for user in users: # ...7
Bạn cũng có thể chỉ định thêm các mệnh đề nối trước
for users in db.table['users'].chunk[100]: for user in users: # ...8
Nếu bạn muốn sử dụng mệnh đề kiểu “where” trên các phép nối của mình, bạn có thể sử dụng các phương thức where và orWhere trên một phép nối. Thay vì so sánh hai cột, các phương thức này sẽ so sánh cột với một giá trị
for users in db.table['users'].chunk[100]: for user in users: # ...9
nâng cao ở đâu
Đôi khi, bạn có thể cần tạo các mệnh đề where nâng cao hơn, chẳng hạn như “where tồn tại” hoặc các nhóm tham số lồng nhau. Nó khá dễ thực hiện với trình tạo truy vấn Orator
nhóm tham số
user = db.table['users'].where['name', 'John'].first[] print[user['name']]0
Truy vấn trên sẽ tạo ra SQL sau
user = db.table['users'].where['name', 'John'].first[] print[user['name']]1
tuyên bố tồn tại
user = db.table['users'].where['name', 'John'].first[] print[user['name']]2
Truy vấn trên sẽ tạo ra SQL sau
user = db.table['users'].where['name', 'John'].first[] print[user['name']]3
uẩn
Trình tạo truy vấn cũng cung cấp nhiều phương thức tổng hợp, ` chẳng hạn như
user = db.table['users'].where['name', 'John'].pluck['name']4,
user = db.table['users'].where['name', 'John'].pluck['name']5,
user = db.table['users'].where['name', 'John'].pluck['name']6,
user = db.table['users'].where['name', 'John'].pluck['name']7 và
user = db.table['users'].where['name', 'John'].pluck['name']8
user = db.table['users'].where['name', 'John'].first[] print[user['name']]4
biểu thức thô
Đôi khi bạn có thể cần sử dụng biểu thức thô trong truy vấn. Các biểu thức này sẽ được đưa vào truy vấn dưới dạng chuỗi, vì vậy hãy cẩn thận để không tạo bất kỳ điểm chèn SQL nào. Để tạo một biểu thức thô, bạn có thể sử dụng phương thức
user = db.table['users'].where['name', 'John'].pluck['name']9
user = db.table['users'].where['name', 'John'].first[] print[user['name']]5
phụ trang
Chèn các bản ghi vào một bảng
user = db.table['users'].where['name', 'John'].first[] print[user['name']]6
Ghi chú
Điều quan trọng cần lưu ý là có hai ký hiệu có sẵn. Lý do khá đơn giản. ký hiệu từ điển, mặc dù ít thực tế hơn một chút, ở đây để xử lý các tên cột không thể chuyển thành đối số từ khóa
Chèn bản ghi vào bảng có ID tăng tự động
Nếu bảng có id tăng tự động, hãy sử dụng
roles = db.table['roles'].lists['title']0 để chèn bản ghi và truy xuất id
user = db.table['users'].where['name', 'John'].first[] print[user['name']]7
Chèn nhiều bản ghi vào một bảng
user = db.table['users'].where['name', 'John'].first[] print[user['name']]8
xóa
Xóa bản ghi
user = db.table['users'].where['name', 'John'].first[] print[user['name']]9
Xóa tất cả bản ghi
user = db.table['users'].where['name', 'John'].pluck['name']0
đoàn thể
Trình tạo truy vấn cung cấp một cách nhanh chóng và dễ dàng để "kết hợp" hai truy vấn
user = db.table['users'].where['name', 'John'].pluck['name']1
Phương pháp
roles = db.table['roles'].lists['title']1 cũng có sẵn
khóa bi quan
Trình tạo truy vấn bao gồm một vài hàm để giúp bạn thực hiện "khóa bi quan" trên các câu lệnh CHỌN của mình