Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan memulai ini, Anda menyambungkan skrip Python ke database yang Anda buat dan isi dengan data sampel. Anda menggunakan pyodbc driver untuk Python untuk menyambungkan ke database Anda dan melakukan operasi dasar, seperti membaca dan menulis data.
Dokumentasi pyodbc | Kode sumber pyodbc | Paket (PyPi)
Prasyarat
Python 3
Jika Anda belum memiliki Python, instal manajer paket runtime Python dan Python Package Index (PyPI) dari python.org.
Lebih suka tidak menggunakan lingkungan kerja Anda sendiri? Buka sebagai devcontainer menggunakan GitHub Codespaces.
pyodbcpaket dari PyPI.Database di SQL Server, Azure SQL Database, atau database SQL di Fabric dengan
AdventureWorks2025skema sampel dan string koneksi yang valid.
Persiapan
Ikuti langkah-langkah ini untuk mengonfigurasi lingkungan pengembangan Anda untuk mengembangkan aplikasi menggunakan pyodbc driver Python.
Nota
Driver ini menggunakan protokol Aliran Data Tabular (TDS), yang diaktifkan secara default di SQL Server, database SQL di Fabric dan Azure SQL Database. Tidak diperlukan konfigurasi tambahan.
Menginstal paket pyodbc
pyodbc Dapatkan paket dari PyPI.
Buka jendela perintah di direktori kosong.
Pasang paket
pyodbctersebut.pip install pyodbc
Menginstal paket python-dotenv
Dapatkan python-dotenv dari PyPI.
Di direktori yang sama, instal
python-dotenvpaket.pip install python-dotenv
Periksa paket yang terinstal
Anda dapat menggunakan alat baris perintah PyPI untuk memverifikasi bahwa paket yang Anda maksudkan diinstal.
Periksa daftar paket yang diinstal dengan
pip list.pip list
Membuat basis data SQL
Mulai cepat ini memerlukan skema AdventureWorks2025 Lightweight , di Microsoft SQL Server, database SQL di Fabric atau Azure SQL Database.
Membuat database SQL dalam hitungan menit menggunakan portal Microsoft Azure
Salin string koneksi ODBC dari tab String koneksi.
Menjalankan kode
Buat file baru
Buat file baru bernama
app.py.Tambahkan docstring modul.
""" Connects to a SQL database using pyodbc """Mengimpor paket
pyodbc.from os import getenv from dotenv import load_dotenv from pyodbc import connectpyodbc.connectGunakan fungsi untuk menyambungkan ke database SQL.load_dotenv() conn = connect(getenv("SQL_CONNECTION_STRING"))Di direktori saat ini, buat file baru bernama
.env.Dalam file
.env, tambahkan entri untuk string koneksi Anda yang bernamaSQL_CONNECTION_STRING. Ganti contoh di sini dengan nilai string koneksi Anda yang sebenarnya.SQL_CONNECTION_STRING="Driver={ODBC Driver 18 for SQL Server};Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Petunjuk / Saran
String koneksi yang digunakan di sini sebagian besar tergantung pada jenis database SQL yang Anda sambungkan. Jika Anda menyambungkan ke Azure SQL Database atau database SQL di Fabric, gunakan string koneksi ODBC dari tab string koneksi. Anda mungkin perlu menyesuaikan jenis autentikasi tergantung pada skenario Anda. Untuk informasi selengkapnya tentang string koneksi dan sintaksnya, lihat referensi sintaks string koneksi.
Menjalankan kueri
Gunakan string kueri SQL untuk menjalankan kueri dan mengurai hasilnya.
Buat variabel untuk string kueri SQL.
SQL_QUERY = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """Gunakan
cursor.executeuntuk mengambil kumpulan hasil dari kueri terhadap database.cursor = conn.cursor() cursor.execute(SQL_QUERY)Nota
Fungsi ini pada dasarnya menerima kueri apa pun dan mengembalikan kumpulan hasil, yang dapat diulang dengan penggunaan cursor.fetchone().
Gunakan
cursor.fetchalldengan perulanganforeachuntuk mendapatkan semua rekaman dari database. Kemudian cetak rekaman.records = cursor.fetchall() for r in records: print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")Simpan file
app.py.Buka terminal dan uji aplikasi.
python app.pyBerikut adalah output yang diharapkan.
29485 1 Professional Sales and Service 29531 1 Remarkable Bike Store 29546 1 Bulk Discount Store 29568 1 Coalition Bike Company 29584 1 Futuristic Bikes
Sisipkan baris sebagai transaksi
Jalankan pernyataan INSERT dengan aman dan lewati parameter. Meneruskan parameter sebagai nilai melindungi aplikasi Anda dari serangan injeksi SQL.
Tambahkan perintah import untuk
randrangedari pustakarandomke bagian atasapp.py.from random import randrangeDi akhir
app.pytambahkan kode untuk menghasilkan nomor produk acak.productNumber = randrange(1000)Petunjuk / Saran
Menghasilkan nomor produk acak di sini memastikan bahwa Anda dapat menjalankan sampel ini beberapa kali.
Buat string pernyataan SQL.
SQL_STATEMENT = """ INSERT SalesLT.Product ( Name, ProductNumber, StandardCost, ListPrice, SellStartDate ) OUTPUT INSERTED.ProductID VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP) """Jalankan pernyataan menggunakan
cursor.execute.cursor.execute( SQL_STATEMENT, ( f'Example Product {productNumber}', f'EXAMPLE-{productNumber}', 100, 200 ) )Ambil kolom pertama dari satu hasil menggunakan
cursor.fetchval, cetak pengidentifikasi unik hasil, lalu lakukan operasi sebagai transaksi menggunakanconnection.commit.resultId = cursor.fetchval() print(f"Inserted Product ID : {resultId}") conn.commit()Petunjuk / Saran
Secara opsional, Anda dapat menggunakan
connection.rollbackuntuk mengembalikan transaksi.Tutup kursor dan koneksi menggunakan
cursor.closedanconnection.close.cursor.close() conn.close()app.pyfile dan uji aplikasi lagi.python app.pyBerikut adalah output yang diharapkan.
Inserted Product ID : 1001
Langkah selanjutnya
pyodbc Kunjungi repositori GitHub driver untuk contoh lebih lanjut, untuk menyumbangkan ide atau melaporkan masalah.