Bagaimana cara python berintegrasi dengan sql?

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

data = pd.read_sql("SELECT TOP(1000) * FROM customers", cnxn)

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 = cnxn.cursor()# first alter the table, adding a column
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

cnxn.commit()
Langkah Selanjutnya

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

Bagaimana cara Python terhubung ke SQL?

Langkah-langkah berikut diperlukan untuk menghubungkan SQL dengan Python. Langkah 1. Unduh dan Instal database MySQL gratis dari sini. Langkah 2. Setelah menginstal database MySQL, buka Command prompt Anda. Langkah 3. Arahkan Command prompt Anda ke lokasi PIP

Bagaimana cara Python berintegrasi dengan database?

Alur kerja umum program Python yang berinteraksi dengan basis data berbasis MySQL adalah sebagai berikut. .
Hubungkan ke server MySQL
Buat basis data baru
Sambungkan ke database yang baru dibuat atau yang sudah ada
Jalankan kueri SQL dan ambil hasilnya
Beri tahu database jika ada perubahan yang dilakukan pada tabel