Relasi Database di Python

https://cdnb.artstation.com/p/assets/images/images/001/196/071/large/rocky-schouten-militarybase-mattepainting-final.jpg?1441965069


Pendahuluan

Assalamlaikum,
Pada postingan kali ini saya akan membahas tentang 'Bagaimana mengakses MySQL di Python'  Karena sangant penting bagi seorang SYSAdmin maupun Developer untuk memahamai bagaimana Databases bekerja beriringan dengan Bahasa Pemrograman yang digelutinya. Dan pada tahun ini & mendatang Python diprediksi akan terus berkembang. So, tunggu apa lagi AYO BELAJAR PYTHON.

MATERI

  Sembari menuggu Anime Girl Und Panzer selesai terdownload, mari kita bahas dulu tentang akses Database di Python. Go Go Katyusha
Standar Databases Python ialah Python DB-API.Kebanyakan Database Python memenuhi Standar ini.

So, silahkan pilih Database yang sesuai dengan Aplikasi anda. API Database Python mendukung berbagai macam server database seperti.

- GadFly
- mSQL
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000
- Informix
- Interbase
- Oracle
- Sybase
- SQLite

Untu menggunakan Database yang dipilih anda harus mendownload modul DB API terpisah untuk setiap database yang perlu Anda akses. Sebagai contoh, jika Anda perlu mengakses database Oracle dan juga database MySQL, Anda harus mendownload kedua modul database Oracle dan MySQL.

API DB menyediakan standar minimal untuk bekerja dengan database menggunakan struktur dan sintaks Python sedapat mungkin. API ini meliputi:

- Mengimpor modul API.
- Mendapatkan koneksi dengan database.
- Menerbitkan pernyataan SQL dan prosedur tersimpan.
- Menutup koneksi

Python memiliki dukungan built-in untuk SQLite. Pada bagian ini, kita akan mempelajari semua konsep menggunakan MySQL. Modul MySQLdb, antarmuka yang populer dengan MySQL tidak kompatibel dengan Python 3. Sebagai gantinya, kita akan menggunakan modul PyMySQL.

Apa itu PyMySQL ?


PyMySQL adalah sebuah antarmuka untuk menghubungkan ke server database MySQL dari Python. Ini mengimplementasikan API Database Python v2.0 dan berisi perpustakaan klien MySQL murni-Python. Tujuan PyMySQL adalah penggantian drop-in untuk MySQLdb.

Cara Instal PyMySQL


Sebelum melanjutka, pastikan Anda telah menginstal PyMySQL di komputer Anda. Cukup ketik berikut ini di skrip Python Anda dan jalankan.


 pesan tersebut berari anda belum menginstall modul pymysql.

pip3 install pymysql

Database Connection

Sebelum terhubung ke database MySQL, pastikan beberapa hal dibawah ini :

  1. Sudah membuat User baru dengan Paaword dan terletak di Localhost
  2. Membuat Database PyMySQL
  3. Membuat Table Karyawan
  4. Memberikan Grant All Access pada User baru tersebut di Database PyMySQL dan Table Karyawan
  5. memahami SYntax dasar Mysql
Jika persiapan Sudah Selesai marilah kita Test

1. AKSES DATABASE MYSQL

import PyMySQL
# Open database connection
db = PyMySQL.connect("localhost","danu","nightcore","TESTDB" )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# execute SQL query using execute() method.
cursor.execute("SELECT VERSION()")
cursor.execute("SHOW DATABSES()")
# Fetch a single row using fetchone() method.
data = cursor.fetchone()
databases = cursor.fetchone()
print ("Database version : %s " % data)
print ("Available Database = %s" % databases)
# disconnect from server
db.close()
Jika menampilkan Output berupa Database Version Serra Nama Database maka anda dapat lanjut ke materi berikutnya.

2. MEMBUAT TABLE DI DATABASE


import pymysql
# Connect to mysql user
db = pymysql.connect("localhost","danu","nightcore","PyMySQL")
# Cursor Function untuk men-select pymysql / cursor object
cursor=db.cursor()
# Command 'execute' untuk mengeksekusi perintah dari MYSQL
cursor.execute('DROP TABLE IF EXISTS Karyawan')
database = cursor.execute("SHOW DATABASES")
# Command For Create Tables
sql = """Create Table Karyawan (
Nama_Depan Char (10) NOT NULL,
Nama_Belakang Char (10) NOT NULL,
Umur INT NOT NULL,
Kelamin Char (1) NOT NULL,
SKS Float NOT NULL
) """
# Command 'execute' untuk mengeksekusi perintah dari MYSQL (2)
cursor.execute(sql)
# Making Output
print ('Database : {}'.format(database))
print ('If was any Value in tables, there will be deleted')
# Disconect
db.close()


3 OPERASI INSERT DATABASES

import pymysql
# Open Database Conection
db = pymysql.connect('localhost','danu','nightcore','PyMySQL')
# Call cursor() function for db in new variable
direct = db.cursor()
# Sql Query for Insert to Karyawan Table
sql = """ INSERT INTO Karyawan (Nama_Depan, Nama_Belakang, Umur, Kelamin, SKS) \
VALUES('%s', '%s', %d, '%s', '%d' ) """ % \
('Bebeng', 'Tuek', 32, 'L', 18)
try :
# Execute sql command
direct.execute(sql)
# Making Output
print ('Insert Success')
# Commit Change to Table
db.commit()
except :
# This is Rollback Function
db.roolback()
print('Please Correct The Query')
# Finally I'am Survive
db.close()
view raw Insert.py hosted with ❤ by GitHub

Jalankan Kode di atas, Jika Muncul Output "Insert Success" Maka data berhasil Di Input & silahkan lanjut ke nomer 4.


4.Read Operation

READ Operation pada database apapun berarti mengambil beberapa informasi berguna dari database.

Setelah koneksi database terbentuk, Anda siap untuk membuat query ke dalam database ini. Anda bisa menggunakan metode fetchone()
untuk mengambil satu record atau fetchall() metode untuk mengambil beberapa nilai dari tabel database.

Fetchone () - Ini mengambil baris berikut dari kumpulan hasil query. Set hasil adalah objek yang dikembalikan saat objek kursor digunakan untuk query tabel.

Fetchall () - Ini menjemput semua baris dalam kumpulan hasil. Jika beberapa baris telah diekstraksi dari himpunan hasil, maka akan diambil baris yang tersisa dari kumpulan hasil.

Rowcount - Ini adalah atribut read-only dan mengembalikan jumlah baris yang dipengaruhi oleh metode execute ().

Source Code berikut akan menampilkan semua Karyawan Laki-laki

import pymysql
db = pymysql.connect('localhost', 'danu', 'nightcore', 'PyMySQL')
# Use cursor(function to selcting any command in MySQL)
direct=db.cursor()
# Now Write the SQL Query
sql = """SELECT * FROM Karyawan \
WHERE Kelamin = '%s' """ % ('L')
try :
# Execute SQL
direct.execute(sql)
# Fetch ALL from Tbales Karyawan
hasil = direct.fetchall()
for row in hasil :
Nama_Depan = row[0]
Nama_Belakang = row[1]
Umur = row[2]
Kelamin = row[3]
SKS = row[4]
# Now Print Out Fetch result
print ("Fname : %s, Lname : %s, Age : %d, Sex : %s, SKS : %d" % \
(Nama_Depan, Nama_Belakang, Umur, Kelamin, SKS))
except :
print ('Sory the value not in table')
# END
db.close()
view raw Read-Table.py hosted with ❤ by GitHub


Bisa dilihat Nama "Bebeng Tuek" yang kita Input  pada Source code nomer 3

5. Update Operation

Update Operation yaitu mengaupdate satu / beberapa Informasi yang tersedia dalam Databases, entah itu menghapus ataupun hanya sekedar mengubah.

Source Code Berikut saya gunakan untuk menghapus Informasi Bebeng Tuek serta menambahkan Umur untuk Wahyu dan 1 command lagi.
Ayooo coba tebak
:)




import pymysql
db = pymysql.connect('localhost','danu','nightcore','PyMySQL')
# Use Cursor() function to selecting MYSQL command
direct = db.cursor()
# Write SQL Query
sql1 = """ Update Karyawan set SKS = SKS - 3 \
Where Nama_Depan = '%s' """ % ('Znada')
sql2 = """ Update Karyawan set Umur = Umur + 5 \
Where Nama_Depan = '%s' """ % ('Wahyu')
sql3 = """ Delete From Karyawan Where Nama_Depan = '%s' """ % ('Bebeng')
try :
# Execute Query
direct.execute(sql1)
direct.execute(sql2)
direct.execute(sql3)
# Save Change
db.commit()
# Making Output
print ('Changed Success')
except :
#Rollabck Change
db.rollback()
print('Please Try Again')
# Disconect Daatabases
db.close()
view raw Update-Table.py hosted with ❤ by GitHub
PENUTUP

      Sebenarnya masih banyak  lagi yang dapat kita pelajari di Relasi Database ini, karena yang kita lakukan tai masih dalam Tahap Dasar. Maka dari itu sangat penting untuk berlatih secara rutin supaya Ular Kuning & Biru tersebut menjadi Jinak :)


Referensi

Komentar

Posting Komentar

Postingan Populer