Little boy questioned his mother, he asked what he can be in the future..with a sad smile, she tells him he can be anything he wants to be.... Boy said he’d become (an) astronaut and fly out into space crews around the universe he wanted to see the stars and also see other planets in outer space------------- "Why don’t we just keep dreaming, let’s keep our mind with dream and faith, as long as we wish we can make it come true, how old you are never forget your dream and keep dreaming "

Thursday 27 December 2018

Python : Akses database PostgreSQL dengan psycopg

Psycopg adalah adaptor database PostgreSQL paling populer untuk bahasa pemrograman Python. Psycopg sepenuhnya memenuhi standar DB API 2.0. Versi saat ini adalah 2.0 dan masih terus aktif dikembangkan yang menjanjikan performa cepat dan stabil. Psycopg dirancang untuk aplikasi multi-threaded yang mendukung pembuatan dan penghapusan banyak kursor serta pembuatan fungsi INSERT atau UPDATE secara bersamaan.

Ketika kita ingin menjalankan SQL query SELECT, UPDATE, DELETE atau INSERT kedalam database postgreSQL kita membutuhkan psycopg sebagai penghubung antara bahasa pemrograman Python dengan Database PostgresSQL.

Homepage : http://initd.org/
Github : https://github.com/psycopg/psycopg2

Cara instalasi psycopg pada python :
pip install psycopg2

Sintaks koneksi seperti ini :
import psycopg2

try:
    conn = psycopg2.connect('''user=username 
                               password=password
                               dbname=namadatabase
                               host=127.0.0.1 
                               port=5432''')
print ("Berhasil terkoneksi")
except:
    print ("Tidak dapat terkoneksi dengan database")

Sintaks diatas akan mengimpor adaptor dan mencoba untuk terhubung ke database. Jika koneksi gagal, maka akan menampilkan eksepsi "Tidak dapat terkoneksi dengan database".

Kemudian kita perlu mendefinisikan cursor :
cur = conn.cursor()

Seletah cursor terdefinisi, kita sudah bisa melakukan eksekusi query dengan cara :
cur.execute('sql query')

cur.execute("""SELECT * from users""")
Kemudian kita perlu menyimpan result-set hasil eksekusi query kedalam variabel, contoh variabel record
record = cur.fetchall()

**kelebihan dari psycopg adalah result set hasil query secara otomatis dikonversi kedalam varible tipe list
untuk menampikan hasil query :
for row in record :
    print(row)
karena record adalah variabel dengan tipe data list maka kita bisa menampilkan data berdasarkan index posisi kolom seperti ini :
for row in record :
    print("{}  {} ".format(row[0],row[1]))


SQL UPDATE, INSERT dan DELETE

Perbedaan dari Sql SELECT sebelumnya dengan Sql Update, Inser, dan Delete terletak perintah penggunaan conn.commit(), fungsi untuk mengkonfirmasi perubahan dalam database. Pada SELECT kita tidak menggunakannya karena query SELECT tidak melakukan perubahan apapun pada database.

SQL UPDATE
Mengupdate tabel 'users', merubah password menjadi = 'passwordsaya' dimana userid nya = 'gani'
sql_update_query= '''Update users set password = %s where userid = %s'''

cur = conn.cursor()
cur.execute(sql_update_query, ('passwordsaya', 'gani'))
conn.commit()
count = cur.rowcount
print(count, " record berhasil diupdate")

SQL INSERT 
Menginsert data ke tabel 'users', dengan value userid = 'budi', dan password = 'passwordbudi'
sql_insert_query='''INSERT INTO users(userid, password) VALUES (%s,%s)'''

cur = conn.cursor()
cur.execute(sql_insert_query, ('budi', 'passwordbudi'))
conn.commit()
count = cursor.rowcount
print(count, " record berhasil diinsert")

SQL DELETE QUERY 
Menghapus data di tabel users, dimana userid = 'gani'
sql_delete_query = '''DELETE FROM users WHERE userid=%s'''

cur = conn.cursor()
cur.execute(sql_delete_query, ('budi', ))
conn.commit()
count = cursor.rowcount
print(count, " record berhasil didelete")

Terima kasih, semoga bermanfaat... jika ada kesulitan silahkan bertanya dikolom komentar ^^

No comments:

Post a Comment