Có nhiều hơn một cách để nhập tệp CSV vào SQL Server bằng Python. Trong hướng dẫn này, bạn sẽ thấy một kỹ thuật đơn giản để nhập dữ liệu của mình bằng 2 thư viện Python sau:
- Pandas - Được sử dụng để nhập tệp CSV vào Python và tạo một khung dữ liệu
- Pyodbc - Được sử dụng để kết nối Python với SQL Server
Bước 1: Chuẩn bị tệp CSV
Để bắt đầu, hãy chuẩn bị tệp CSV mà bạn muốn nhập vào SQL Server.
Ví dụ, hãy để giả sử rằng một tệp CSV đã được chuẩn bị, trong đó:
- Tên tệp CSV là ‘Sản phẩm‘products’
- Tệp CSV được lưu trữ theo đường dẫn sau: C: \ Users \ ron \ Desktop \ test \ Products.csvC:\Users\Ron\Desktop\Test\products.csv
Ngoài ra, tệp CSV chứa các dữ liệu sau:
product_id | product_name | giá bán |
1 | Máy tính xách tay | 1200 |
2 | Máy in | 200 |
3 | Máy tính bảng | 350 |
4 | Bàn phím | 80 |
5 | Màn hình | 400 |
Bước 2: Nhập tệp CSV vào DataFrame
Bạn có thể sử dụng thư viện Pandas để nhập tệp CSV vào DataFrame.
Dưới đây là mã để nhập tệp CSV cho ví dụ của chúng tôi [lưu ý rằng bạn sẽ cần thay đổi đường dẫn để phản ánh vị trí nơi tệp CSV được lưu trên máy tính của bạn]:
import pandas as pd data = pd.read_csv [r'C:\Users\Ron\Desktop\Test\products.csv'] df = pd.DataFrame[data] print[df]
Đây là cách mà DataFrame sẽ trông như thế nào trong Python:
product_id product_name price
0 1 Laptop 1200
1 2 Printer 200
2 3 Tablet 350
3 4 Keyboard 80
4 5 Monitor 400
Bước 3: Kết nối Python với SQL Server
Để kết nối Python với SQL Server, bạn sẽ cần:
- Tên máy chủ. Đối với mục đích trình diễn, hãy để giả sử rằng tên máy chủ là: ron \ sqlexpressRON\SQLEXPRESS
- Tên cơ sở dữ liệu. Tên cơ sở dữ liệu cho ví dụ của chúng tôi sẽ là: test_databasetest_database
Dưới đây là mã để kết nối Python với SQL cho ví dụ của chúng tôi:
import pyodbc conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;'] cursor = conn.cursor[]
Bạn có thể muốn kiểm tra hướng dẫn sau đây giải thích các bước đầy đủ để kết nối Python với SQL Server bằng PYODBC.
Bước 4: Tạo bảng trong SQL Server bằng Python
Tiếp theo, thêm cú pháp để tạo bảng trong SQL Server. Bảng này sẽ được sử dụng để lưu trữ dữ liệu đã nhập từ tệp CSV.
Ví dụ của chúng tôi, bạn có thể thêm cú pháp sau để tạo ‘Sản phẩm‘ Bảng:products‘ table:
cursor.execute[''' CREATE TABLE products [ product_id int primary key, product_name nvarchar[50], price int ] ''']
Lưu ý rằng bất cứ khi nào bạn chạy mã để tạo bảng. Bạn chỉ nên sử dụng đoạn mã đó một lần. Nếu không, bạn sẽ gặp lỗi bên dưới: that whenever you run the code to create a table. You should only use that piece of the code once. Otherwise, you’ll get the error below:
Lập trình HERROR: [xông 42S01, [[42S01] [Microsoft] [Trình điều khiển máy chủ ODBC SQL] [SQL Server] đã có một đối tượng có tên ‘Sản phẩm trong cơ sở dữ liệu. [2714] [sqlexecdirectw]
Bước 5: Chèn dữ liệu DataFrame vào bảng
Dưới đây là cú pháp để chèn dữ liệu DataFrame [từ bước 2] vào bảng sản phẩm:products table:
for row in df.itertuples[]: cursor.execute[''' INSERT INTO products [product_id, product_name, price] VALUES [?,?,?] ''', row.product_id, row.product_name, row.price ] conn.commit[]
Và đây là toàn bộ mã để nhập tệp CSV vào SQL Server bằng Python:
import pandas as pd import pyodbc # Import CSV data = pd.read_csv [r'C:\Users\Ron\Desktop\Test\products.csv'] df = pd.DataFrame[data] # Connect to SQL Server conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;'] cursor = conn.cursor[] # Create Table cursor.execute[''' CREATE TABLE products [ product_id int primary key, product_name nvarchar[50], price int ] '''] # Insert DataFrame to Table for row in df.itertuples[]: cursor.execute[''' INSERT INTO products [product_id, product_name, price] VALUES [?,?,?] ''', row.product_id, row.product_name, row.price ] conn.commit[]
Chạy mã trong Python [sau khi thực hiện điều chỉnh đường dẫn nơi lưu trữ tệp CSV của bạn, cũng như thực hiện thay đổi thông tin kết nối cơ sở dữ liệu của bạn].
Bước 6: Thực hiện bài kiểm tra
Hãy để chạy một truy vấn đơn giản để kiểm tra xem các giá trị từ tệp CSV đã được nhập vào SQL Server:
select * from products
Đây là kết quả:
product_id | product_name | giá bán |
1 | Máy tính xách tay | 1200 |
2 | Máy in | 200 |
3 | Máy tính bảng | 350 |
4 | Bàn phím | 80 |
5 | Màn hình | 400 |