Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Python SQL – Cara menggunakan Database SQLite, MySQL, dan PostgreSQL dengan Python

Salah satu kegembiraan terbesar saya sebagai pengembang adalah mempelajari bagaimana teknologi yang berbeda saling bersinggungan.

Selama bertahun-tahun saya memiliki kesempatan untuk bekerja dengan berbagai jenis perangkat lunak dan alat. Dari sekian banyak alat yang saya gunakan, Python dan Structured Query Language (SQL) adalah dua favorit saya.

Pada artikel ini saya akan berbagi dengan Anda bagaimana Python dan database SQL yang berbeda berinteraksi.

Saya akan berbicara tentang database yang paling populer, SQLite, MySQL, dan PostgreSQL. Saya akan menjelaskan perbedaan utama dari setiap database dan kasus penggunaan yang sesuai. Dan saya akan mengakhiri artikel dengan beberapa kode Python.

Kode akan menunjukkan cara menulis kueri SQL untuk menarik data dari database PostgreSQL dan menyimpan data dalam bingkai data pandas.

Jika Anda tidak terbiasa dengan database relasional (RDBMS), saya sarankan Anda membaca artikel Sameer tentang terminologi dasar RDBMS di sini. Artikel selanjutnya akan menggunakan istilah yang dirujuk dalam artikel Sameer.

SQLite

SQLite terkenal sebagai database terintegrasi. Ini berarti Anda tidak perlu menginstal aplikasi tambahan atau menggunakan server terpisah untuk menjalankan database.

Jika Anda membuat MVP atau tidak membutuhkan banyak ruang penyimpanan data, Anda akan ingin menggunakan database SQLite.

Kelebihannya adalah Anda dapat bergerak lebih cepat dengan database SQLite dibandingkan dengan MySQL dan PostgreSQL. Yang mengatakan, Anda akan terjebak dengan fungsionalitas terbatas. Anda tidak akan dapat menyesuaikan fitur atau menambahkan banyak fungsi multi-pengguna.

MySQL/PostgreSQL

Ada perbedaan mencolok antara MySQL dan PostgreSQL. Yang mengatakan, mengingat konteks artikel, mereka masuk ke dalam kategori yang sama.

Kedua tipe database sangat bagus untuk solusi perusahaan. Jika Anda perlu menskalakan dengan cepat, MySQL dan PostgreSQL adalah pilihan terbaik Anda. Mereka akan menyediakan infrastruktur jangka panjang dan meningkatkan keamanan Anda.

Alasan lain mereka bagus untuk perusahaan adalah karena mereka dapat menangani aktivitas berkinerja tinggi. Menyisipkan, memperbarui, dan memilih pernyataan yang lebih lama membutuhkan banyak daya komputasi. Anda akan dapat menulis pernyataan tersebut dengan latensi yang lebih sedikit daripada yang diberikan database SQLite kepada Anda.

Mengapa Menghubungkan Python dan Database SQL?

Anda mungkin bertanya-tanya, "mengapa saya harus peduli tentang menghubungkan Python dan database SQL?"

Ada banyak kasus penggunaan ketika seseorang ingin menghubungkan Python ke database SQL. Seperti yang saya sebutkan sebelumnya, Anda mungkin sedang mengerjakan aplikasi web. Dalam hal ini, Anda perlu menghubungkan database SQL sehingga Anda dapat menyimpan data yang berasal dari aplikasi web.

Mungkin Anda bekerja di bidang rekayasa data dan Anda perlu membangun saluran ETL otomatis. Menghubungkan Python ke database SQL akan memungkinkan Anda menggunakan Python untuk kemampuan otomatisasinya. Anda juga dapat berkomunikasi di antara berbagai sumber data. Anda tidak perlu beralih di antara bahasa pemrograman yang berbeda.

Menghubungkan Python dan database SQL juga akan membuat ilmu data Anda bekerja lebih nyaman. Anda akan dapat menggunakan keterampilan Python Anda untuk memanipulasi data dari database SQL. Anda tidak memerlukan file CSV.

Bagaimana Database Python dan SQL Terhubung

Basis data Python dan SQL terhubung melalui pustaka Python khusus. Anda dapat mengimpor perpustakaan ini ke skrip Python Anda.

Pustaka Python khusus basis data berfungsi sebagai instruksi tambahan. Petunjuk ini memandu komputer Anda tentang bagaimana ia dapat berinteraksi dengan database SQL Anda. Jika tidak, kode Python Anda akan menjadi bahasa asing untuk database yang Anda coba sambungkan.

Cara Menyiapkan Proyek

Mari kita ambil database PostgreSQL, AWS Redshift, misalnya. Pertama, Anda ingin mengimpor perpustakaan psycopg. Ini adalah perpustakaan Python universal untuk database PostgreSQL.

#Library for connecting to AWS Redshift
import psycopg

#Library for reading the config file, which is in JSON
import json

#Data manipulation library
import pandas as pd

Anda akan melihat kami juga mengimpor perpustakaan JSON dan pandas. Kami mengimpor JSON karena membuat file konfigurasi JSON adalah cara aman untuk menyimpan kredensial database Anda. Kami tidak ingin orang lain mengincar mereka!

Pustaka panda akan memungkinkan Anda menggunakan semua kemampuan statistik panda untuk skrip Python Anda. Dalam contoh ini, perpustakaan akan memungkinkan Python untuk menyimpan data yang dikembalikan oleh kueri SQL Anda ke dalam bingkai data.

Selanjutnya, Anda ingin mengakses file konfigurasi Anda. json.load() fungsi membaca file JSON sehingga Anda dapat mengakses kredensial database Anda di langkah berikutnya.

config_file = open(r"C:\Users\yourname\config.json")
config = json.load(config_file)

Sekarang setelah skrip Python Anda dapat mengakses file konfigurasi JSON Anda, Anda harus membuat koneksi database. Anda harus membaca dan menggunakan kredensial dari file konfigurasi Anda:

con = psycopg2.connect(dbname= "db_name", host=config[hostname], port = config["port"],user=config["user_id"], password=config["password_key"])
cur = con.cursor()

Anda baru saja membuat koneksi database! Saat Anda mengimpor perpustakaan psycopg, Anda menerjemahkan kode Python yang Anda tulis di atas untuk berbicara dengan database PostgreSQL (AWS Redshift).

Dengan sendirinya, AWS Redshift tidak akan memahami kode di atas. Tetapi karena Anda mengimpor perpustakaan psycopg, Anda sekarang berbicara dalam bahasa yang dapat dipahami oleh AWS Redshift.

Hal yang menyenangkan tentang Python adalah ia memiliki perpustakaan untuk SQLite, MySQL, dan PostgreSQL. Anda akan dapat mengintegrasikan teknologi dengan mudah.

Cara Menulis Kueri SQL

Jangan ragu untuk mengunduh Data Sepak Bola Eropa ke database PostgreSQL Anda. Saya akan menggunakan datanya untuk contoh ini.

Koneksi database yang Anda buat di langkah terakhir memungkinkan Anda menulis SQL untuk kemudian menyimpan data dalam struktur data yang ramah Python. Sekarang setelah Anda membuat koneksi database, Anda dapat menulis kueri SQL untuk mulai menarik data:

query = "SELECT *
         FROM League
         JOIN Country ON Country.id = League.country_id;"

Pekerjaan belum selesai. Anda perlu menulis beberapa kode Python tambahan yang mengeksekusi kueri SQL:

#Runs your SQL query
execute1 = cur.execute(query)
result = cur.fetchall()

Maka Anda perlu menyimpan data yang dikembalikan dalam bingkai data panda:

#Create initial dataframe from SQL data
raw_initial_df = pd.read_sql_query(query, con)
print(raw_initial_df)

Anda harus mendapatkan bingkai data panda (raw_initial_df) yang terlihat seperti ini:

Ada Database untuk Semua Orang

SQLite, MySQL, dan PostgreSQL semuanya memiliki pro dan kontra. Yang Anda pilih harus bergantung pada proyek atau kebutuhan perusahaan Anda. Anda juga harus mempertimbangkan apa yang Anda butuhkan sekarang versus beberapa tahun ke depan.

Yang penting untuk diingat adalah bahwa Python dapat berintegrasi dengan setiap tipe database.

Artikel ini menggores permukaan untuk apa yang mungkin dilakukan dengan menghubungkan Python ke database SQL. Saya suka melihat cara perangkat lunak berpotongan dan bergabung untuk menambah nilai yang luar biasa.

Jika Anda menginginkan lebih banyak konten seperti ini, Anda dapat menemukan saya di Course to Hire! Saya ingin membantu lebih banyak orang mempelajari cara membuat kode dan mendapatkan pekerjaan di bidang teknologi. Silakan hubungi jika ada pertanyaan atau jika Anda hanya ingin menyapa :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Batasan NOT NULL di MySQL

  2. Impor file CSV langsung ke MySQL

  3. Stempel waktu dengan presisi milidetik:Bagaimana cara menyimpannya di MySQL

  4. Pemformatan baris perintah MySQL dengan UTF8

  5. INSERT IGNORE vs INSERT ... PADA PEMBARUAN KUNCI DUPLICATE