Dengan Python kita dapat mengotomatiskan penulisan dan eksekusi SQL. Tetapi agar ini berfungsi, kita membutuhkan Python untuk dapat berkomunikasi dengan database. Pada artikel ini kita akan fokus pada penggunaan paket yang disebut import pyodbc 1 untuk berkomunikasi dengan database relasional menggunakan protokol ODBC. Setelah membaca artikel ini, Anda akan dapat menulis dan menjalankan SQL di aplikasi Python Anda. Ayo kode Show
Sebelum kita mulai Mari kita tentukan ruang lingkup artikel ini Pengguna Postgres?Ada banyak database yang sesuai dengan ODBC dan pyodbc dan dalam artikel ini kita akan menggunakan MS SQL. Jika Anda menggunakan PostgreSQL, lihat artikel di bawah ini untuk pendekatan yang lebih optimal Membuat koneksi Python PostgreSQL untuk pemula mutlakBagaimana skrip Python Anda dapat berkomunikasi dengan database Postgres Andamikehul. medium. com Menghasilkan kueri SQLArtikel ini berfokus pada pembuatan koneksi dengan database menggunakan pyodbc. Koneksi ini kemudian dapat digunakan untuk mengeksekusi SQL. Beberapa database menggunakan sintaks lain dari yang lain
Ini berarti Anda harus menulis pernyataan SQL untuk database tertentu Ada pendekatan database-agnostik di mana Anda mendefinisikan kueri Anda dengan cara yang lebih Pythonic dan kemudian mengkompilasinya untuk database tertentu. Ini akan menghasilkan SQL khusus untuk database tersebut sehingga Anda tidak terikat dengan spesifikasi database yang sedang Anda gunakan. Ini berarti bahwa jika Anda memutuskan untuk beralih dari MySQL ke Postgres di masa mendatang, Anda tidak perlu mengubah kode Anda Saya sedang menulis artikel ini jadi pastikan untuk mengikuti saya Tentang pyodbc dan protokol ODBCSedikit latar belakang tentang paket yang kami gunakan dan cara kerjanya. Pyodbc adalah paket yang memungkinkan Anda untuk berkomunikasi dengan database (relasional). Ia menggunakan protokol Open DataBase Communication. Protokol ini menentukan bagaimana klien (seperti skrip Python Anda) dan database berkomunikasi Anda dapat membandingkan protokol komunikasi ini dengan protokol HTTP yang memfasilitasi komunikasi antar komputer melalui internet. klien tahu cara meminta sumber daya, server tahu cara merespons, dan klien tahu seperti apa responsnya sehingga mereka dapat menggunakan informasi tersebut. Dengan cara yang sama klien dapat menggunakan protokol ODBC untuk berkomunikasi dengan database Docker untuk pemula mutlak. perbedaan antara gambar dan wadahPelajari perbedaan antara gambar Docker dan wadah wadah dan gambar berbeda + contoh kode praktismenuju ilmu data. com Menghubungkan ke database — bagian kodeAda beberapa langkah sederhana yang akan kita lalui. Kami harus menggunakan kredensial kami untuk membuat string koneksi. Dengan string itu kita akan membuat koneksi. Pada koneksi Anda dapat membuat kursor yang akan kami gunakan untuk mengeksekusi kueri. Pertama beberapa persiapan Persiapan. dependenciesPertama mari kita buat lingkungan virtual dan instal satu-satunya dependensi kita pip install pyodbc Lingkungan virtual untuk pemula absolut — apa itu dan bagaimana membuatnya (+ contoh)Menyelam lebih dalam ke lingkungan virtual Python, pip dan menghindari ketergantungan yang terjeratmenuju ilmu data. com Langkah 1. Kumpulkan kredensial kamiDi sinilah kami mengambil kredensial untuk database kami. Dalam contoh di bawah ini kami menangani kredensial kami dengan cara yang paling aman. kami memuatnya dari lingkungan sehingga aplikasi kami memiliki akses tanpa melakukan hardcoding ke dalam skrip kami import pyodbc Cegah kata sandi Anda bocor dengan mempelajari cara menerapkan import pyodbc 4 di artikel di bawah iniAmankan kode Anda dengan menggunakan variabel lingkungan dan file envMuat file dengan aman yang berisi semua data rahasia yang diperlukan aplikasi kami seperti kata sandi, token, dllmenuju ilmu data. com Langkah 2. Buat string koneksiPyodbc membutuhkan string terformat yang berisi kredensial kami untuk terhubung ke database. Dalam contoh di bawah ini kami menggunakan f-string untuk membuat string koneksi sambil menjaga kode kami tetap bersih password = "}}".join(password.split("}")) _Memperbaiki kata sandi import pyodbc 5. Pertama kita menggandakan semua import pyodbc 6 kurung kurawal di kata sandi, lalu kita mengelilinginya dengan kurung kurawal lagi. Ini karena kata sandi dapat berisi beberapa karakter aneh seperti import pyodbc 7 misalnya. Mengelilingi mereka dengan kurung kurawal akan menghindari semuanya. Kami tidak ingin ada kurung kurawal yang merupakan bagian dari kata sandi kami untuk diloloskan, jadi kami menggandakannya untuk "melarikan diri dari pelarian"Agak aneh tapi ternyata begini cara kerjanya. Perhatikan juga bahwa ini tidak hanya berfungsi dengan kata sandi tetapi dengan argumen apa pun, jadi jika nama pengguna Anda berisi karakter khusus, Anda juga dapat menggunakan teknik ini String koneksi yang dihasilkan terlihat seperti ini (perhatikan bahwa import pyodbc 8 sekarang diterjemahkan dengan benar ke import pyodbc 9)DRIVER=ODBC Driver 17 for SQL Server;SERVER=my_host;DATABASE=my_database;UID=my_username;PWD={my_}}password};port=my_port; Memulai dengan Cython. Cara melakukan >1. 7 miliar perhitungan per detik dengan PythonGabungkan kemudahan Python dengan kecepatan Cmenuju ilmu data. com Langkah 3. MenghubungkanIni adalah bagian yang mudah kami akan membuat koneksi (biasanya Anda memiliki satu koneksi per aplikasi). Kemudian kami membuat kursor pada koneksi. Kursor digunakan untuk iterasi pada kumpulan hasil yang dihasilkan dari kueri. Anda menutup kursor setelah selesai dengan set hasil cnxn:pyodbc.Connection = pyodbc.connect(constring)cursor:pyodbc.Cursor = cnxn.cursor() Selanjutnya kita dapat menggunakan kursor untuk mengeksekusi beberapa SQL, dalam hal ini kita mencetak versi database SQL Server kita. Jika ada yang gagal, kami mencetak kesalahan dan dalam hal apa pun kami menutup kursor kami Ada cara yang lebih singkat dan lebih baik untuk melakukan ini with cnxn.cursor() as cursor: Menggunakan manajer konteks (bagian password = "}}".join(password.split("}")) 0) menyebabkan kursor menutup secara otomatis. Selain itu akan melakukan (Anda harus memasukkan password = "}}".join(password.split("}")) _1; lihat contoh di bawah) apa pun yang Anda jalankan dalam blok password = "}}".join(password.split("}")) 2. Jika mendeteksi kesalahan, itu akan mengembalikan semua kueri. Perhatikan bahwa ini hanya berfungsi jika koneksi dibuat dengan password = "}}".join(password.split("}")) 3 (yang merupakan default)Memahami manajer konteks Python untuk pemula mutlakPahami pernyataan WITH dengan lightsabermedium. com Bonus. Contoh kueri Berikut beberapa contoh kueri untuk membantu Anda Kueri 1. Memilih rekamanGunakan password = "}}".join(password.split("}")) _4 untuk mengambil satu bariswith cnxn.cursor() as cursor: SQL — Pahami cara kerja indeks untuk mempercepat kueri AndaTidak perlu lagi menunggu kueri lambat selesaimenuju ilmu data. com Kueri 2. Memilih catatan;with cnxn.cursor() as cursor: Kueri 3. Sisipan regulerKarena kita berada di dalam blok pengelola konteks ( password = "}}".join(password.split("}")) 0) eksekusi akan dilakukan jika tidak terjadi kesalahan. Kursor juga ditutup otomatiswith cnxn.cursor() as cursor: SQL — sisipkan, hapus, dan perbarui dalam SATU pernyataan. sinkronkan tabel Anda dengan MERGEmenuju ilmu data. com Kueri 4. Memutar kembali sisipanDua yang pertama dimasukkan, lalu #3 gagal sehingga #1 dan #2 diputar kembali. Tidak akan ada jejak mr. a, b atau c dalam database with cnxn.cursor() as cursor: SQL — Pelajari cara mengembalikan kueri dalam transaksiJalankan semua kueri atau tidak sama sekalimenuju ilmu data. com Kueri 5. Sisipan super cepatSisipan di atas akan menyisipkan satu baris sekaligus. Dengan opsi di bawah ini kita dapat membuat satu pernyataan untuk banyak baris, yang sangat meningkatkan kecepatan penyisipan import pyodbc 0Baca lebih lanjut di artikel di bawah ini untuk mempelajari tentang cara kerja bagian dalam password = "}}".join(password.split("}")) 6Secara dramatis tingkatkan kecepatan penyisipan basis data Anda dengan pemutakhiran sederhana4 level membuat koneksi database yang sangat cepat dengan Pythonmenuju ilmu data. com Penting Selalu pastikan untuk membersihkan variabel yang Anda masukkan ke dalam pernyataan SQL untuk mencegah serangan injeksi SQL, terutama jika Anda mengizinkan masukan pengguna ke dalam pernyataan Anda. Ini dijelaskan dengan indah oleh komik XKCD yang terkenal ini Langkah selanjutnya Sekarang skrip Anda dapat terhubung ke database, Anda dapat mulai menulis SQL. Anda dapat membuat API dalam 5 baris kode misalnya. Dengan cara ini Anda dapat memberi pengguna akses terkontrol ke database Anda, menentukan informasi mana yang mungkin diminta pengguna Pastikan untuk memeriksa tautan ini untuk ikhtisar bagus dari banyak pertanyaan berguna. Terakhir, artikel di bawah ini menjelaskan cara mengimplementasikan migrasi database. Ini memungkinkan untuk merancang dan mengontrol versi basis data Anda secara terprogram Uji dan terapkan perubahan dengan aman ke database Anda. memulai dengan AlembicKontrol versi database Anda dengan alat Python sederhana inimenuju ilmu data. com Kesimpulan Saya berharap dapat menjelaskan cara menghubungkan ke database Anda dengan pyodbc dan menggunakannya untuk menjalankan beberapa SQL. Saya harap semuanya sejelas yang saya harapkan, tetapi jika tidak demikian, beri tahu saya apa yang dapat saya lakukan untuk mengklarifikasi lebih lanjut. Sementara itu, lihat artikel saya yang lain tentang semua jenis topik terkait pemrograman seperti ini Bagaimana cara Python terhubung ke database eksternal?Bab 1. . Langkah 1. Buat database eksternal. Untuk tutorial ini, kami akan menggunakan database pengujian Postgres yang dihosting oleh tim Anvil. . Langkah 2. Instal psycopg2. Pustaka go-to Python untuk menghubungkan ke Postgres adalah psycopg2. . Langkah 3. Permintaan database Anda dari Python Bagaimana cara Python terhubung ke database MS SQL?Metode ini mengandalkan pustaka “pyodbc” untuk menyiapkan Integrasi SQL Server Python. . Langkah 1. Tetapkan Koneksi SQL Server Python. . Langkah 2. Jalankan Kueri SQL. . Langkah 3. Ekstrak Hasil Kueri ke Python. . Langkah 4. Terapkan Modifikasi di SQL Server. . Langkah 5. Mengotomatiskan Fungsi Python SQL Server Modul Python mana yang digunakan untuk terhubung ke database?SQLite mungkin adalah database paling mudah untuk terhubung dengan aplikasi Python karena Anda tidak perlu memasang modul Python SQL eksternal apa pun untuk melakukannya. Secara default, instalasi Python Anda berisi pustaka Python SQL bernama sqlite3 yang dapat Anda gunakan untuk berinteraksi dengan database SQLite. |