Một cách nhanh chóng và dễ dàng để có thể chạy các truy vấn SQL bằng Python là sử dụng SQLite. SQLite là một thư viện sử dụng công cụ cơ sở dữ liệu SQL. Nó hoạt động tương đối nhanh và đã được chứng minh là có độ tin cậy cao. SQLite là công cụ cơ sở dữ liệu được sử dụng phổ biến nhất trong môi trường thử nghiệm
Dưới đây là các bước đơn giản để bắt đầu
Bước 1 — Nhập SQLite và PandasĐể bắt đầu, chúng tôi sẽ cần nhập SQLite vào sổ ghi chép Jupyter của mình
import sqlite3
import pandas as pd
Bước 2 — Kết nối cơ sở dữ liệu của bạnSử dụng hàm connect[] cho phép bạn tạo cơ sở dữ liệu trong môi trường của mình. Điều này giúp người dùng đặt tên cơ sở dữ liệu của họ sẽ được gọi bằng Python sau này. Hàm connect[] duy trì kết nối trong khi bạn đang làm việc với cơ sở dữ liệu
Một điều quan trọng cần lưu ý là trong khi bạn kết nối với cơ sở dữ liệu, những người dùng khác sẽ không thể truy cập cùng lúc. Đây là lý do tại sao cần phải đóng [] kết nối khi bạn hoàn tất [Tôi sẽ thảo luận về việc đóng kết nối ở gần cuối]
Đối với ví dụ này, tôi sẽ tham khảo một cơ sở dữ liệu của CIA có tên là “factbook. db”
sql_connect = sqlite3.connect['factbook.db']
Bước 3 — Đối tượng con trỏHàm con trỏ [] được sử dụng để hỗ trợ thực hiện các truy vấn SQL của chúng tôi
cursor = sql_connect.cursor[]
Điều quan trọng là bạn sử dụng con trỏ [] để trả về một thể hiện Con trỏ tương ứng với cơ sở dữ liệu mà chúng tôi muốn truy vấn
Bước 4 — Viết truy vấnSử dụng SQLite và Python, một truy vấn SQL sẽ cần được chuyển qua một chuỗi. Mặc dù không cần thiết nhưng tôi tin rằng bạn nên lưu các truy vấn của mình vào một biến để sau này có thể tham khảo mà không cần phải viết lại toàn bộ truy vấn
Bảng từ sách dữ kiện của chúng tôi. tệp db được gọi là sự kiện
- Lưu truy vấn SQL dưới dạng chuỗi
query = "SELECT * FROM factbook;"
2. Thực hiện truy vấn bằng cách sử dụng biến con trỏ từ trước đó. Điều này sẽ chuyển đổi kết quả thành bộ dữ liệu và lưu trữ dưới dạng biến cục bộ. Để có được tất cả các kết quả, chúng tôi sử dụng hàm tìm nạp []
results = cursor.execute[query].fetchall[]
Bước 5 — Chạy truy vấnĐể chạy truy vấn mà chúng tôi đã lưu sớm với gấu trúc, chúng tôi thực hiện như sau
pd.read_sql_query[query,sql_connect]
đầu ra
Một đoạn kết quả từ truy vấn của chúng tôiBước 6 — Đóng kết nối của bạn
Hãy nhớ rằng điều quan trọng là phải đóng kết nối của bạn khi bạn kết thúc. Đóng kết nối sẽ cấp cho người khác quyền truy cập vào cơ sở dữ liệu
sql_connect.close[]
Đây là một mẫu tốt cho quá trình suy nghĩ của SQLite
1. connection open
2. transaction started
3. statement executes
4. transaction done
5. connection closed
Bước 7 — TIỀN THƯỞNG [Tại sao dùng Python với SQL?]Nếu bạn giống tôi thì có lẽ bạn sẽ thắc mắc tại sao bạn lại chạy các truy vấn SQL trong Python trong khi chạy chúng trong PostgreSQL hoặc MySQL có vẻ dễ dàng hơn nhiều
Python có một số lượng lớn thư viện [ví dụ: Pandas, StatsModel và SciPy] dành cho phân tích khoa học và đo lường được. Các thư viện cũng hoạt động đến mức hoàn hảo trong việc trừu tượng hóa không ngừng sự tinh tế, vì vậy bạn không cần phải tính toán tất cả các phép toán cơ bản bằng tay. Ngoài ra, bạn có thể nhận được kết quả của mình ngay lập tức, vì vậy bạn có thể sử dụng Python nhiều lần để điều tra thông tin của mình. [Đào tạo Janbansk]
SQL, viết tắt của ngôn ngữ truy vấn có cấu trúc, là ngôn ngữ lập trình trong đó người dùng truy vấn cơ sở dữ liệu quan hệ. Các nhà khoa học dữ liệu sử dụng SQL trong Python trong nhiều trường hợp khác nhau, được quyết định bởi trường hợp sử dụng hiện tại hoặc theo sở thích cá nhân. SQL chủ yếu được sử dụng để tổ chức dữ liệu, đặc biệt là trong các truy vấn đào tạo, cũng như để phân tích kết quả mô hình đặc biệt. Một số vị trí khác cũng có thể gặt hái những lợi ích của SQL, bao gồm kỹ sư phần mềm, nhà phân tích dữ liệu và kinh doanh và kỹ sư dữ liệuChúng ta sẽ xem xét ba phương pháp sử dụng SQL trong bài viết này. Phương thức đầu tiên, kết nối với cơ sở dữ liệu SQL của bạn thông qua ngôn ngữ lập trình Python bằng các lệnh SQL truyền thống, có lẽ là cách sử dụng truyền thống nhất của nó. Phương pháp thứ hai là sử dụng các lệnh SQL trong khung dữ liệu Pandas của bạn với truy vấn, mà tôi nghĩ là phương pháp dễ nhất trong số các phương pháp này để hiển thị trong Jupyter Notebook của bạn. Cuối cùng, bạn có thể thực hiện các lệnh giống như SQL trong khung dữ liệu Pandas có chức năng tương tự như các hàm SQL truyền thống.
Cách sử dụng SQL trong Python
- SQLite/MS-SQL Server/Oracle/MySQL/Vân vân
- Truy vấn gấu trúc
- Truy vấn khung dữ liệu
Thông tin khác từ Matt Przybyla 5 câu hỏi thường gặp trong cuộc phỏng vấn xin việc về Khoa học dữ liệu của bạn
SQLite/MS-SQL Server/Oracle/MySQL/Vân vân
Chúng ta sẽ thảo luận về hai trong số nhiều thư viện/mô-đun mà bạn có thể sử dụng thông qua Python. Sqlite3 và Pyodbc.
Tất cả các phương pháp này hoạt động giống nhau ở chỗ chúng cần những thứ sau.
- nhập thư viện Python
- kết nối với cơ sở dữ liệu
- tạo một đối tượng con trỏ để bạn có thể sử dụng các lệnh SQL
Vì vậy, hãy xem cách kết nối với SQLite từ cơ sở dữ liệu cục bộ
________số 8Ở dòng cuối cùng này, bạn có thể tưởng tượng rằng bạn cũng có thể thực hiện tất cả các lệnh SQL bình thường của mình [e. g. , WHERE, GROUP BY và ORDER BY, để kể tên một số].
Mô-đun tiếp theo, Pyodbc, có thể được sử dụng cho kết nối từ xa, cho phép bạn kết nối với cơ sở dữ liệu MS-SQL, Oracle và MySQL.
Ví dụ máy chủ MS-SQL
Hãy nhớ rằng đây không phải là mã duy nhất bạn có thể sử dụng để kết nối với các cơ sở dữ liệu này
import pyodbc
connection = pyodbc.connect['Driver={SQL Server};'
'Server=server_name;'
'Database=database_name;'
'Trusted_Connection=yes;']
# OR ADD THIS TO THAT SAME STRING ABOVE IN PLACE OF
Trusted_Connection^
'UID=USER_ID_HERE;'
'PWD=PASSWORD_HERE;'
cursor = connection.cursor[]
cursor.execute['SELECT * FROM table_name']
Ví dụ Oracle
sql_connect = sqlite3.connect['factbook.db']
0Ví dụ MySQL
sql_connect = sqlite3.connect['factbook.db']
1Với tất cả các kết nối, bạn có thể đọc SQL vào khung dữ liệu Pandas bằng mã này.
sql_connect = sqlite3.connect['factbook.db']
2Đây là một cách hay để sử dụng SQL với Python thông qua Pandas. Rất nhiều nhà khoa học dữ liệu thích làm việc với các khung dữ liệu vì chúng ’ dễ sử dụng và hoạt động tốt với các thư viện Python dành cho khoa học dữ liệu và máy học. Ví dụ: bạn có thể truy vấn dữ liệu của mình bằng một trong các kết nối SQL như được mô tả ở trên và lưu nó vào khung dữ liệu của bạn. Sau đó, bạn có thể tạo tập huấn luyện và kiểm tra từ tập dữ liệu chính đó để sử dụng trong mô hình khoa học dữ liệu của mình.
Truy vấn gấu trúc
Truy vấn Pandas cho phép bạn truy vấn trực tiếp khung dữ liệu của mình bằng Python mà không cần bất kỳ kết nối nào vì bạn ' chỉ đơn giản là làm việc với dữ liệu đã có . Cách tiếp cận này ít rắc rối hơn và vẫn thu được những lợi ích của ngôn ngữ truy vấn tương tự như SQL. Các lợi ích bao gồm so sánh các cột để phân tích, cũng như các phép tính số học khác giữa các trường, v.v.
Dưới đây là một vài ví dụ về truy vấn khung dữ liệu của bạn bằng mã giống như SQL
sql_connect = sqlite3.connect['factbook.db']
3Đây chỉ là một số ví dụ về dữ liệu trả về có thể được sử dụng để phân tích tính năng
Truy vấn khung dữ liệu
Phương thức cuối cùng này không phải là SQL, cũng không sử dụng phương thức truy vấn, nhưng nó vẫn sử dụng các lệnh giống như SQL mà bạn có thể sử dụng trong khung dữ liệu Pandas của mình bằng Python
Đây là một cách chúng ta có thể thực hiện phương pháp này
sql_connect = sqlite3.connect['factbook.db']
4Các tên cột này chỉ là tên ví dụ, vì vậy bạn cũng có thể hình dung ở đây rằng bạn sẽ sử dụng tên cột thực của mình để thực hiện thao tác này. Bạn cũng có thể thực hiện các tính toán này với tập dữ liệu đầy đủ, tập huấn luyện và tập kiểm tra để phân tích đơn giản
Thông tin khác về Khoa học dữ liệu Mô hình tập hợp. Chúng là gì và khi nào bạn nên sử dụng chúng?
Làm quen với SQL
Tóm lại, đây là một số cách bạn có thể sử dụng SQL và các lệnh giống như SQL với Python
- SQLite/MS-SQL Server/Oracle/MySQL/Vân vân
- Truy vấn gấu trúc
- Truy vấn khung dữ liệu
SQL và Python là một số công cụ tuyệt vời không chỉ dành cho các nhà khoa học dữ liệu mà còn cho nhiều người khác cũng làm việc với dữ liệu. Dữ liệu có thể đáng sợ, cũng như các phương pháp được sử dụng để làm việc với nó. Tuy nhiên, bạn sẽ bắt đầu nhận thấy một xu hướng rằng chúng ta thực sự chỉ sắp xếp dữ liệu hoặc thao tác với nó. Cho dù đó là mệnh đề SELECT * WHERE column = 'X' hay df[df['column'] . Phương pháp bạn chọn tùy thuộc vào bạn hoặc cách bạn muốn cộng tác trong công ty của mình với các bên liên quan và nhóm khác nhau của bạn. method, these processes are ultimately performing the same action. The method you choose is up to you, or the way you want to collaborate within your company with your different stakeholders and team.
Bạn có thể sử dụng SQL trong Python không?
Python & SQL là gì?
SQL nào là tốt nhất cho Python?
SQL dễ hay Python?