Làm thế nào để bạn sử dụng các biến trong truy vấn python?

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng các biến liên kết để truyền dữ liệu đến và từ Cơ sở dữ liệu Oracle

Giới thiệu về các biến liên kết

Nếu bạn muốn truyền dữ liệu đến và từ cơ sở dữ liệu Oracle, bạn sử dụng các trình giữ chỗ trong câu lệnh SQL như sau

sql = ['select name ' 'from customers ' 'where customer_id = :customer_id']

Code language: Python [python]

Trong truy vấn này,

cursor.execute[sql,[100]]

Code language: Python [python]
7 là một trình giữ chỗ. Nó còn được gọi là biến liên kết hoặc tham số liên kết

Khi bạn thực hiện truy vấn bằng đối tượng

cursor.execute[sql,[100]]

Code language: Python [python]
8, bạn cần chuyển giá trị của biến liên kết

cursor.execute[sql,[100]]

Code language: Python [python]

Trong trường hợp này, số

cursor.execute[sql,[100]]

Code language: Python [python]
9 sẽ được sử dụng cho biến liên kết

cursor.execute[sql,[100]]

Code language: Python [python]
7 trong câu lệnh SQL khi truy vấn được thực thi

Các biến liên kết làm cho mã an toàn hơn và giúp tránh các sự cố bảo mật SQL injection vì dữ liệu người dùng không bao giờ được coi là một phần của câu lệnh SQL thực thi

Nếu dữ liệu người dùng được nối với một câu lệnh SQL, nó sẽ dễ bị tấn công SQL injection

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]

Vì lý do này, cách tốt nhất là luôn sử dụng các biến liên kết trong truy vấn của bạn và không bao giờ nối hoặc nội suy dữ liệu người dùng vào một câu lệnh SQL như sau

sql = f"""select name from customers where customer_id = {id}"""

Code language: Python [python]

Bên cạnh lợi ích bảo mật, các biến liên kết có thể cải thiện hiệu suất của truy vấn nếu một câu lệnh SQL được thực thi nhiều lần với các giá trị khác nhau vì Oracle chỉ cần phân tích cú pháp và lưu trữ câu lệnh SQL một lần

Ví dụ sau minh họa cách tìm tên khách hàng theo id sử dụng biến liên kết

________số 8

Lưu ý rằng đây là mô-đun

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
1 nếu bạn chưa làm theo hướng dẫn trước đó

cursor.execute[sql,[100]]

Code language: Python [python]
0

Ràng buộc bởi tên

Nếu các biến liên kết được liên kết với tên, bạn đã đặt tên cho các liên kết. Các liên kết được đặt tên yêu cầu tên tham số từ khóa hoặc khóa của từ điển khớp với tên biến liên kết. Ví dụ

cursor.execute[sql,[100]]

Code language: Python [python]
1

Biến liên kết

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
2 và

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
3 được đặt tên là liên kết

cursor.execute[sql,[100]]

Code language: Python [python]
4

Khi thực thi câu lệnh SQL với các liên kết được đặt tên, bạn cần truyền các tên tham số từ khóa khớp với các liên kết được đặt tên

cursor.execute[sql,[100]]

Code language: Python [python]
5

Ngoài ra, bạn có thể chuyển tham số dưới dạng từ điển thay vì tham số từ khóa

cursor.execute[sql,[100]]

Code language: Python [python]
6

Ràng buộc theo tên cho phép bạn chỉ định tên có ý nghĩa và sử dụng chúng tự do ở bất kỳ vị trí nào

Ngoài ra, bạn chỉ cần xác định các tham số tên một lần nếu một biến được lặp lại nhiều lần trong một truy vấn

Ràng buộc bởi các vị trí

Một liên kết vị trí được thực hiện khi một danh sách các giá trị liên kết được chuyển đến lệnh gọi

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
4. Ví dụ

cursor.execute[sql,[100]]

Code language: Python [python]
0

Thứ tự của các giá trị liên kết phải khớp chính xác với thứ tự của từng biến liên kết. Nếu bạn sử dụng một biến liên kết nhiều lần trong truy vấn, bạn phải lặp lại các giá trị liên kết

hướng ràng buộc

Các biến liên kết có thể là

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
5 hoặc

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
6

Biến liên kết

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
5 cho phép bạn chuyển dữ liệu từ Python sang Cơ sở dữ liệu Oracle trong khi biến liên kết

sql = ['select name ' 'from customers ' 'where customer_id = ' + customer_id]

Code language: Python [python]
6 cho phép bạn lấy lại dữ liệu từ Cơ sở dữ liệu Oracle sang Python

Trong các ví dụ trước, bạn đã chuyển các biến liên kết vào Cơ sở dữ liệu Oracle để truy vấn dữ liệu và sử dụng

cursor.execute[sql,[100]]

Code language: Python [python]
8 để tìm nạp kết quả

Để Cơ sở dữ liệu Oracle trả dữ liệu về Python, bạn cần tạo một biến bằng cách sử dụng phương thức

sql = f"""select name from customers where customer_id = {id}"""

Code language: Python [python]
0. Xem ví dụ sau

cursor.execute[sql,[100]]

Code language: Python [python]
1

trong ví dụ này

Đầu tiên, khai báo một biến chứa khối PL/SQL ẩn danh

cursor.execute[sql,[100]]

Code language: Python [python]
2

Thứ hai, kết nối với Cơ sở dữ liệu Oracle và tạo một đối tượng Con trỏ mới từ đối tượng Kết nối

Thứ ba, tạo một biến để giữ dữ liệu được trả về từ việc thực thi khối PL/SQL ẩn danh

cursor.execute[sql,[100]]

Code language: Python [python]
3

Thứ tư, thực thi khối PL/SQL và nhận dữ liệu trả về

cursor.execute[sql,[100]]

Code language: Python [python]
4

Cuối cùng, hiển thị giá trị của biến bằng cách gọi phương thức

sql = f"""select name from customers where customer_id = {id}"""

Code language: Python [python]
1

cursor.execute[sql,[100]]

Code language: Python [python]
5

đầu ra là

cursor.execute[sql,[100]]

Code language: Python [python]
6

Trong hướng dẫn này, bạn đã học cách sử dụng các biến liên kết để truyền dữ liệu đến và từ Cơ sở dữ liệu Oracle

Làm thế nào để sử dụng các biến trong gấu trúc truy vấn?

Để tham chiếu một biến trong truy vấn, bạn cần sử dụng @ . Thay vì giá trị bộ lọc, chúng tôi đang đề cập đến cột mà chúng tôi muốn sử dụng để đặt phụ hoặc lọc. {0} nhận một giá trị của biến myvar1. Trong trường hợp bạn muốn chuyển nhiều cột dưới dạng biến trong truy vấn.

Python sử dụng biến như thế nào?

Biến Python là tên tượng trưng là tham chiếu hoặc con trỏ tới đối tượng . Khi một đối tượng được gán cho một biến, bạn có thể gọi đối tượng bằng tên đó. Nhưng bản thân dữ liệu vẫn được chứa trong đối tượng.

Làm cách nào để sử dụng biến Python trong truy vấn MySQL?

Python Chọn từ Bảng MySQL .
Thực thi truy vấn CHỌN và xử lý tập kết quả được truy vấn trả về trong Python
Sử dụng các biến Python trong mệnh đề where của truy vấn CHỌN để chuyển các giá trị động
Sử dụng các phương thức fetchall[] , fetchmany[] và fetchone[] của lớp con trỏ để tìm nạp tất cả hoặc các hàng giới hạn từ một bảng

Làm cách nào để lưu trữ kết quả truy vấn trong biến trong Python?

fetchall[] truy xuất TẤT CẢ kết quả từ truy vấn của bạn, chúng tôi sẽ đặt chúng vào một biến có tên là rows. Sau đó, chúng tôi tạo một trình vòng lặp [điều bạn đã cố gắng thực hiện với vòng lặp while] bằng cách thực hiện cho hàng trong hàng. Sau đó, chúng tôi chỉ cần in từng hàng

Chủ Đề