Dan untuk bagian terakhir, buka Python IDLE Anda dan isi nama server, database, dan informasi tabel
Berikut adalah template yang dapat Anda gunakan untuk menghubungkan Python ke SQL Server
import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=server_name;' 'Database=database_name;' 'Trusted_Connection=yes;') cursor = conn.cursor() cursor.execute('SELECT * FROM table_name') for i in cursor: print(i)Ingat itu untuk contoh kita
- Nama servernya adalah. RON\SQLEXPRESS
- Nama basis datanya adalah. test_database
- Nama tabelnya adalah. produk
Oleh karena itu, kode berikut dapat digunakan untuk menghubungkan Python ke SQL Server
import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;') cursor = conn.cursor() cursor.execute('SELECT * FROM products') for i in cursor: print(i) _Jalankan kode dengan Python (disesuaikan dengan nama server, basis data, dan informasi tabel Anda) dan Anda akan mendapatkan hasil sebagai berikut
(1, 'Laptop', 1100) (2, 'Printer', 200) (3, 'Keyboard', 80) (4, 'Monitor', 450) (5, 'Tablet', 300)Dari SQL ke Pandas DataFrame
Anda dapat melangkah lebih jauh dengan beralih dari SQL ke Pandas DataFrame menggunakan pd. read_sql_query
import pandas as pd import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;') df = pd.read_sql_query('SELECT * FROM products', conn) print(df) print(type(df))Saat melamar pd. read_sql_query, jangan lupa letakkan variabel string koneksi di bagian akhir. Dalam kasus kita, variabel string koneksi adalah conn .
Setelah Anda menjalankan kode (disesuaikan dengan informasi koneksi database Anda), Anda akan mendapatkan DataFrame Pandas berikut
product_id product_name price 0 1 Laptop 1100 1 2 Printer 200 2 3 Keyboard 80 3 4 Monitor 450 4 5 Tablet 300 <class 'pandas.core.frame.DataFrame'> _Perhatikan bahwa sintaks print(type(df)) juga ditambahkan di bagian bawah kode untuk mengonfirmasi bahwa kita memiliki DataFrame
Kesimpulan dan Sumber Daya Tambahan
Anda telah melihat cara menghubungkan Python ke SQL Server. Setelah Anda membuat koneksi ini, Anda dapat mulai menggunakan SQL dengan Python untuk mengelola data Anda
Semua orang menggunakan SQL, dan semua orang menggunakan Python. SQL adalah standar de-facto untuk database. Python di sisi lain adalah all-star, bahasa teratas untuk analitik data, pembelajaran mesin, dan pengembangan web. Bayangkan keduanya, bersama-sama
Ini sebenarnya sangat mudah diatur. Kita dapat dengan cepat memanfaatkan sifat dinamis Python, untuk mengontrol dan membuat kueri dalam SQL. Bagian terbaik?
Kedua alat luar biasa ini bersama-sama, memungkinkan kami mencapai ketinggian baru dalam otomatisasi dan efisiensi
pyodbc
Jembatan kami antara kedua teknologi tersebut adalah pyodbc. Perpustakaan ini memungkinkan akses mudah ke database ODBC
ODBC, kependekan dari Open Database Connectivity, adalah antarmuka pemrograman aplikasi standar (API) untuk mengakses database, dikembangkan oleh grup SQL Access di awal tahun 90-an
Sistem manajemen database yang sesuai (DBMS) termasuk
- IBM Db2
- Akses MS
- MS SQL Server
- MySQL
- Peramal
Pada artikel ini, kita akan menggunakan MS SQL Server. Sebagian besar, ini harus dapat ditransfer secara langsung untuk digunakan dengan database yang sesuai dengan ODBC. Satu-satunya perubahan yang diperlukan adalah pengaturan koneksi
Menghubung
Hal pertama yang perlu kita lakukan adalah membuat koneksi ke server SQL. Kita dapat melakukan ini menggunakan pyodbc.connect. Di dalam fungsi ini kita juga harus melewatkan string koneksi
String koneksi ini harus menentukan DBMS cnxn = pyodbc.connect(cnxn_str)0, cnxn = pyodbc.connect(cnxn_str)1, cnxn = pyodbc.connect(cnxn_str)2 spesifik untuk dihubungkan, dan pengaturan koneksi kami
Jadi, anggap saja kita ingin terhubung ke server cnxn = pyodbc.connect(cnxn_str)3, database cnxn = pyodbc.connect(cnxn_str)4 , untuk melakukan ini kita ingin menggunakan cnxn = pyodbc.connect(cnxn_str)5
Kami akan terhubung dari internal, dan dengan demikian koneksi tepercaya (kami tidak perlu memasukkan nama pengguna dan kata sandi kami)
cnxn_str = ("Driver={SQL Server Native Client 11.0};""Server=UKXXX00123,45600;"
"Database=DB01;"
"Trusted_Connection=yes;")
Koneksi kami sekarang diinisialisasi dengan
cnxn = pyodbc.connect(cnxn_str)Jika kita tidak mengakses database melalui koneksi terpercaya, kita perlu memasukkan username dan password yang biasa kita gunakan untuk mengakses server melalui SQL Server Management Studio (SSMS)
Misalnya, jika nama pengguna kita adalah cnxn = pyodbc.connect(cnxn_str)_6, dan kata sandi kita adalah cnxn = pyodbc.connect(cnxn_str)7, kita harus segera mengganti kata sandi kita
Tapi sebelum mengubah kata sandi yang mengerikan itu, kita bisa terhubung seperti itu
cnxn_str = ("Driver={SQL Server Native Client 11.0};""Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)
Sekarang kita terhubung ke database, kita bisa mulai melakukan query SQL melalui Python
Jalankan Kueri
Setiap kueri yang kami jalankan di SQL Server sekarang akan terdiri dari inisialisasi kursor, dan eksekusi kueri. Selain itu, jika kami membuat perubahan apa pun di dalam server, kami juga perlu melakukan perubahan ini ke server (yang akan kami bahas di bagian selanjutnya)
Untuk menginisialisasi kursor
cursor = cnxn.cursor()Sekarang, kapan pun kami ingin melakukan kueri, kami menggunakan objek cnxn = pyodbc.connect(cnxn_str)8 ini
Pertama mari kita pilih 1000 baris teratas dari tabel bernama cnxn = pyodbc.connect(cnxn_str)9
cursor.execute("SELECT TOP(1000) * FROM customers")Ini melakukan operasi, tetapi di dalam server, jadi tidak ada yang benar-benar dikembalikan ke Python. Jadi mari kita lihat mengekstraksi data ini dari SQL
Ekstrak Data
Untuk mengekstrak data kami dari SQL ke Python, kami menggunakan cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)0. Panda memberi kita fungsi yang sangat nyaman yang disebut cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)1, fungsi ini, seperti yang sudah Anda duga, membaca data dari SQL
cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)1 membutuhkan kueri dan contoh koneksi cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)3, seperti itu
Ini mengembalikan kerangka data yang berisi 1000 baris teratas dari tabel cnxn = pyodbc.connect(cnxn_str)9
Mengubah Data di SQL
Sekarang, jika kita ingin mengubah data di SQL, kita perlu menambahkan langkah lain ke koneksi initialize asli, jalankan proses query
Saat kami menjalankan kueri dalam SQL, perubahan ini disimpan di ruang sementara yang ada, tidak dibuat langsung ke data
Untuk membuat perubahan ini permanen, kita harus cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)5. Mari gabungkan kolom cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)_6 dan cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)7, untuk membuat kolom cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)8
cursor.execute("ALTER TABLE customer " +
"ADD fullName VARCHAR(20)")# now update that column to contain firstName + lastName
cursor.execute("UPDATE customer " +
"SET fullName = firstName + " " + lastName")
Saat ini, cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)_8 tidak ada di basis data kami. Kita harus cnxn_str = ("Driver={SQL Server Native Client 11.0};"
"Server=UKXXX00123,45600;"
"Database=DB01;"
"UID=JoeBloggs;"
"PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)_5 perubahan ini untuk menjadikannya permanen
Setelah kami melakukan tugas manipulasi mana pun yang perlu kami lakukan. Kita dapat mengekstrak data kita ke Python — alternatifnya, kita dapat mengekstrak data ke Python dan memanipulasinya di sana juga
Pendekatan apa pun yang Anda ambil, setelah data ada di Python, kami dapat melakukan banyak hal berguna dengannya yang sebelumnya tidak mungkin dilakukan
Mungkin kita perlu melakukan beberapa pelaporan harian, yang biasanya kita gunakan untuk menanyakan kumpulan data terbaru di server SQL, menghitung beberapa statistik dasar, dan mengirimkan hasilnya melalui email
Mari otomatiskan itu
Dan dengan itu, kita selesai. Menjalankan kode ini dengan cepat mengekstrak data minggu sebelumnya, menghitung ukuran utama kami, dan mengirimkan ringkasannya ke atasan kami
Jadi, dalam beberapa langkah sederhana dan mudah, kami telah mengambil pandangan pertama untuk menyiapkan alur kerja otomatis yang lebih efisien dan cepat menggunakan integrasi SQL dan Python
Saya menemukan ini sangat berguna, dan tidak hanya untuk kasus penggunaan yang dijelaskan di atas
Python hanya membuka rute baru yang tidak dapat kami lewati sebelumnya hanya dengan SQL saja
Beri tahu saya pendapat, ide, atau kasus penggunaan Anda, saya ingin mendengarnya. Jika Anda ingin lebih banyak konten seperti ini, saya memposting di YouTube juga
Terima kasih sudah membaca
🤖 Diskon 70% untuk Kursus NLP Dengan Transformers
Jika Anda menikmati artikel ini, Anda mungkin tertarik untuk melihat lebih dalam tentang otomatisasi email dengan Python. Saya membahas ini di artikel sebelumnya, periksa jika Anda tertarik
Beri tahu dengan Python
Jadikan hidup lebih mudah dengan notifikasi email bawaan Python
menuju ilmu data. com
Repo GitHub ini juga berisi dokumentasi dan kode yang menunjukkan penerapan beberapa metode yang berguna