Python có thể đọc tệp SQL không?

Python là một ngôn ngữ mạnh mẽ cho phép bạn thậm chí kết nối với cơ sở dữ liệu và chạy các truy vấn SQL. Thông thường, bạn có thể cần tìm nạp dữ liệu từ cơ sở dữ liệu từ bên trong ứng dụng hoặc trang web python của mình. Python cung cấp nhiều thư viện hữu ích cho mục đích này. Trong bài viết này, chúng ta sẽ xem xét cách kết nối với cơ sở dữ liệu bằng python và cũng tạo tập lệnh python để chạy truy vấn SQL đối với cơ sở dữ liệu của bạn


Tập lệnh Python để chạy truy vấn SQL

Dưới đây là các bước để chạy truy vấn SQL trong python


1. Cài đặt thư viện cơ sở dữ liệu Python

Trước tiên, bạn cần cài đặt đúng thư viện python, tùy thuộc vào loại cơ sở dữ liệu của bạn, để truy vấn cơ sở dữ liệu của bạn. Nếu bạn sử dụng cơ sở dữ liệu MySQL, hãy cài đặt gói MySQLdb. Nếu bạn sử dụng PostgreSQL, hãy cài đặt psycopg2 hoặc pygresql

Mở terminal và chạy các lệnh sau, tùy thuộc vào loại cơ sở dữ liệu của bạn

mysql

pip install MySQL-python
pip install MySQL-python-connector

PostgreSQL

pip install psycopg2
pip install pygresql


2. Tạo tập lệnh Python

Mở terminal và chạy lệnh sau để tạo tập lệnh python trống

$ sudo vi db_query.py

Thêm dòng sau vào nó để đặt môi trường thực thi

#!/usr/bin/env python


3. Nhập thư viện

Tùy thuộc vào Cơ sở dữ liệu của bạn, hãy thêm dòng sau để nhập thư viện thích hợp vào tập lệnh python của bạn

mysql

import MySQLdb as db_connect

PostgreSQL

import psycopg2 as db_connect


4. Kết nối với cơ sở dữ liệu của bạn

Tiếp theo, thêm các dòng sau để kết nối với cơ sở dữ liệu của bạn. Thay thế các giá trị của host_name, db_user, db_password và db_name bằng địa chỉ máy chủ, tên người dùng, mật khẩu và tên cơ sở dữ liệu của cơ sở dữ liệu của bạn tương ứng. Chúng tôi sử dụng phương thức connect() để thiết lập kết nối cơ sở dữ liệu và chuyển thông tin đăng nhập của người dùng cơ sở dữ liệu làm đối số

host_name="localhost"
db_user="test_user"
db_password="123"
db_name="project

connection = db_connect.connect(host=host_name,user=db_user,password=db_password,database=db_name)
 
cursor = connection.cursor()

Các dòng trên sẽ kết nối với cơ sở dữ liệu của bạn và trả về một đối tượng kết nối có thể được sử dụng để kết nối với cơ sở dữ liệu. Nó cũng cung cấp một đối tượng con trỏ được sử dụng để gửi truy vấn, tìm nạp kết quả và duyệt qua nó


5. Cơ sở dữ liệu truy vấn

Tiếp theo, viết truy vấn SQL của bạn

query = "select * from data limit 5"

Tiếp theo, chúng ta sử dụng đối tượng con trỏ để thực hiện truy vấn, sử dụng lệnh exec

________số 8

Lệnh trên sẽ chạy truy vấn SQL của bạn và lấy kết quả của nó. Chúng tôi sử dụng chức năng tìm nạp () để lấy tất cả các hàng dữ liệu. Bạn thậm chí có thể sử dụng tìm nạp () để nhận một hàng tại một thời điểm. Bạn có thể in kết quả bằng lệnh in hoặc lặp qua nó và thực hiện thêm thao tác dữ liệu


6. Đóng kết nối

Cuối cùng, khi bạn đã hoàn tất, điều quan trọng là phải đóng kết nối để nó không khiến máy chủ cơ sở dữ liệu cơ sở dữ liệu của bạn bận rộn

connection.close()

lưu và đóng tập tin. Đây là toàn bộ mã để bạn tham khảo

pip install psycopg2
pip install pygresql
0

Làm cho tệp có thể thực thi được bằng lệnh sau

pip install psycopg2
pip install pygresql
1

Bạn có thể chạy tập lệnh bằng lệnh sau

pip install psycopg2
pip install pygresql
2

Đó là nó. Trong bài viết này, chúng ta đã học cách kết nối với cơ sở dữ liệu và chạy các truy vấn SQL đối với chúng. Bạn có thể sửa đổi nó theo yêu cầu của bạn. Điều quan trọng là tạo một đối tượng kết nối bằng hàm connect(), sử dụng con trỏ được tạo bằng hàm cursor() để chạy truy vấn và tìm nạp kết quả. Và cuối cùng đóng kết nối cơ sở dữ liệu

Điều quan trọng cần lưu ý là hầu hết tất cả các thư viện cơ sở dữ liệu đều sử dụng cùng chức năng connect(), cursor(), exec(), fetchall() để làm việc với cơ sở dữ liệu. Vì vậy, bạn có thể sử dụng đoạn mã trên để truy vấn hầu hết mọi cơ sở dữ liệu quan hệ, chỉ bằng cách thay đổi câu lệnh nhập ở đầu. tập tin py

Trong hướng dẫn này, chúng tôi sẽ sử dụng gói trình kết nối MySQL chính thức của python để tạo kết nối và thực hiện các truy vấn của chúng tôi

pip install psycopg2
pip install pygresql
3

Gói này cũng có sẵn trực tiếp từ trang tài liệu MySQL. Để được giải thích chi tiết hơn và tổng quan nhanh về gói trình kết nối mysql


Tạo kết nối


Tất nhiên, điều đầu tiên chúng ta cần làm là tạo kết nối đến cơ sở dữ liệu của mình, chúng ta sẽ sử dụng kết nối này cho tất cả các ví dụ sau trong hướng dẫn này, nếu bạn không quen với trình kết nối MySQL, tài liệu chính thức về trình kết nối MySQL của Python


Bạn có thể thay đổi thông tin đăng nhập trong ví dụ dưới đây có thể được thay đổi thành thông tin đăng nhập chính xác của bạn, chúng tôi sẽ sử dụng con trỏ từ điển cho các lần thực hiện của chúng tôi chỉ để làm cho kết quả lựa chọn dễ đọc hơn

pip install psycopg2
pip install pygresql
4


Thiết lập thử nghiệm. tệp sql có nhiều câu lệnh để thực thi


Bây giờ chúng ta cần tạo một tệp chứa nhiều câu lệnh mà chúng ta muốn thực thi, với ví dụ đầu tiên này, chúng ta sẽ tạo một bảng và cơ sở dữ liệu thử nghiệm đơn giản và chèn một vài bản ghi vào bảng đó


kiểm tra1. sql

pip install psycopg2
pip install pygresql
5


Nếu bạn đang chạy một bản phân phối Linux như Ubuntu, bạn có thể thực thi tệp trên từ dòng lệnh như thế này

pip install psycopg2
pip install pygresql
6


Thực hiện toàn bộ. sql trong một đối tượng con trỏ trong Python


Để thực hiện toàn bộ tệp, trước tiên chúng ta phải mở tệp và đọc nội dung vào con trỏ. exec(), tuy nhiên, điều này sẽ không hoạt động nếu không sử dụng thêm đối số 'multi=True' cho phép cung cấp nhiều câu lệnh cho phương thức


Khi cung cấp nhiều đối số, câu lệnh thực thi sẽ trả về một trình vòng lặp mà khi được lặp lại sẽ trả về đối tượng con trỏ tại thời điểm thực hiện từng câu lệnh, mỗi câu lệnh trong tệp sẽ được thực hiện tuần tự. Đối với mỗi lần lặp, chúng ta có thể truy cập đối tượng con trỏ và in thông tin về truy vấn mà nó hiện đang thực hiện

pip install psycopg2
pip install pygresql
7


Chạy mã ví dụ trên sẽ xuất ra như sau

pip install psycopg2
pip install pygresql
8

Nếu bây giờ bạn truy cập cơ sở dữ liệu của mình và xem trong bảng mới tạo, bạn sẽ thấy cả 3 phần chèn

pip install psycopg2
pip install pygresql
9


Xử lý bất kỳ đầu ra tiềm năng nào từ các lựa chọn và các câu lệnh tạo ra đầu ra khác


Nếu bạn bao gồm bất kỳ câu lệnh SQL nào trong tệp của mình mà mang lại một dạng kết quả nào đó, rất có thể là từ câu lệnh CHỌN hoặc câu lệnh SHOW chẳng hạn, thì bạn sẽ cần xử lý tập kết quả khi lặp lại nó để tiếp tục lặp lại, để biết liệu . thuộc tính with_rows sẽ trả về True nếu có hàng để tìm nạp. Sau đó, bạn có thể xử lý chúng khi bạn thấy phù hợp, với ví dụ này, chúng tôi sẽ chỉ cần in ra kết quả


Đối với ví dụ này, chúng tôi sẽ sử dụng tệp SQL sau


kiểm tra2. sql

$ sudo vi db_query.py
0

Ở đây chúng tôi chỉ đơn giản là chọn dữ liệu từ bảng kiểm tra mà chúng tôi đã tạo trước đó, sau đó liệt kê giá trị hiện tại của biến hệ thống sql_mode của chúng tôi


Để đọc kết quả của tệp này, chúng tôi có thể chỉnh sửa mã của mình một chút

$ sudo vi db_query.py
1


Chạy mã này sẽ dẫn đến đầu ra sau

$ sudo vi db_query.py
2


Đặt và sử dụng các biến người dùng và hệ thống


Không có bất kỳ sửa đổi nào đối với mã của chúng tôi, chúng tôi cũng có thể sử dụng các biến do người dùng và bộ hệ thống cũng như cập nhật chúng trong phiên của bạn, cho phép phức tạp hơn trong phiên của bạn. tập tin sql


kiểm tra3. sql

pip install psycopg2
pip install pygresql
40


Cập nhật cái nào. sql của bạn mà mã Python của bạn trỏ đến sau đó thực thi nó, kết quả sẽ như sau

pip install psycopg2
pip install pygresql
41


Cách thực hiện này. Các tệp sql có thể cực kỳ mạnh mẽ và cho phép bạn di chuyển các truy vấn SQL phức tạp ra khỏi mã python của mình và chuyển sang các tệp độc lập, cho phép tổ chức tốt hơn cho các dự án lớn với nhiều thao tác cơ sở dữ liệu phức tạp


thi hành. tệp sql trong Python với tham số chuỗi

Nếu bạn muốn tránh SQL injection, cách dễ nhất để tự bảo vệ mình bằng Python MySQL là sử dụng các tham số chuỗi, các tham số này được làm sạch trước khi sử dụng trong câu lệnh. Thực thi một câu lệnh SQL thông thường với các tham số trong Python trông như thế này

pip install psycopg2
pip install pygresql
42


Chúng ta có thể thêm các tham số vào tệp SQL của mình một cách dễ dàng. Chỉ cần thêm chuỗi tham số vào SQL của bạn như vậy


kiểm tra4. sql

pip install psycopg2
pip install pygresql
43


Sau đó, chúng ta có thể gán một giá trị cho tham số của mình trong mã Python

pip install psycopg2
pip install pygresql
44


Điều này sẽ dẫn đến đầu ra sau

pip install psycopg2
pip install pygresql
45


Nếu bạn có bất kỳ câu hỏi hoặc muốn thêm bất cứ điều gì thú vị, xin vui lòng để lại nhận xét bên dưới

Bạn có thể nhập SQL vào Python không?

sql là bản sao xuất của cơ sở dữ liệu i. e. danh sách các lệnh SQL cần thiết để tạo bản sao của cơ sở dữ liệu đó, thì điều bạn phải làm là chạy dấu nhắc SQLite, thực hiện tất cả các lệnh từ bản sao đó và lưu cơ sở dữ liệu ở định dạng SQLite. Sau đó, bạn có thể kết nối với tệp mới tạo này bằng python sqlite lib .

Làm cách nào để đọc dữ liệu từ SQL sang Python?

Các bước tìm nạp hàng từ bảng cơ sở dữ liệu MySQL .
Kết nối với MySQL từ Python. .
Xác định truy vấn CHỌN SQL. .
Nhận đối tượng con trỏ từ kết nối. .
Thực thi truy vấn SELECT sử dụng phương thức exec(). .
Trích xuất tất cả các hàng từ một kết quả. .
Lặp lại từng hàng. .
Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu