Cara menggunakan import mysql connector-python

The connect() constructor creates a connection to the MySQL server and returns a MySQLConnection object.

The following example shows how to connect to the MySQL server:

import mysql.connector

cnx = mysql.connector.connect(user='scott', password='password',
                              host='127.0.0.1',
                              database='employees')
cnx.close()

Section 7.1, “Connector/Python Connection Arguments” describes the permitted connection arguments.

It is also possible to create connection objects using the connection.MySQLConnection() class:

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()

Both forms (either using the connect() constructor or the class directly) are valid and functionally equal, but using connect() is preferred and used by most examples in this manual.

To handle connection errors, use the try statement and catch all errors using the errors.Error exception:

import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='scott',
                                database='employ')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()

Defining connection arguments in a dictionary and using the ** operator is another option:

import mysql.connector

config = {
  'user': 'scott',
  'password': 'password',
  'host': '127.0.0.1',
  'database': 'employees',
  'raise_on_warnings': True
}

cnx = mysql.connector.connect(**config)

cnx.close()

Using the Connector/Python Python or C Extension

Connector/Python offers two implementations: a pure Python interface and a C extension that uses the MySQL C client library (see Chapter 8, The Connector/Python C Extension). This can be configured at runtime using the use_pure connection argument. It defaults to False as of MySQL 8, meaning the C extension is used. If the C extension is not available on the system then use_pure defaults to True. Setting use_pure=False causes the connection to use the C Extension if your Connector/Python installation includes it, while use_pure=True to False means the Python implementation is used if available.

Note

The use_pure option and C extension were added in Connector/Python 2.1.1.

The following example shows how to set use_pure to False.

import mysql.connector

cnx = mysql.connector.connect(user='scott', password='password',
                              host='127.0.0.1',
                              database='employees',
                              use_pure=False)
cnx.close()

It is also possible to use the C Extension directly by importing the _mysql_connector module rather than the mysql.connector module. For more information, see Section 8.2, “The _mysql_connector C Extension Module”.

Cara menggunakan import mysql connector-python

Database In Python

masih melanjutkan artikel sebelumnya membahas python, artikel kali ini akan membahas mengenai akses dan operational data di python :
dalam artikel kali ini gout menggunaan PyMySQL untuk menggunakan package tersebut kita harus menginstall package PyMySQL nya dulu.

Install package

langsung saja kita buka terminal untuk memulai installasi module package mysql di python kita :
gout akan menggunaan module mysql.connector

python3 -m pip install mysql-connector

Cara menggunakan import mysql connector-python

setelah proses installasi module selesai, kita bisa mulai menggunakan module tersebut di project python kita. untuk menggunakan module package kita bisa menambahkan tag seperti ini :

MySQL.Connector

sekarang kita mulai menggunakan module mysql.connector, untuk percobaan kita buat sebuah file untuk membuka sebuah koneksi ke database server, buat file baru dengan nama conn.py, berikut isi code nya :

import mysql.connector

host = 'localhost'
user = 'root'
passwd = '1'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		password = passwd
	)

if cnx.is_connected():
	print("Berhasil terhubung ke server")

cnx.close()

untuk menjalankannya, kita gunakan perintah di cli(command line) seperti biasa python <namafile.py>.

jika dijalankan code diatas, maka hasilnya seperti ini :

Cara menggunakan import mysql connector-python

kode program kita berhasil terhubung ke server MySQL di localhost setelah di eksekusi oleh python.

sedikit penjelasan dari code diatas …
Dibaris pertama kita mengambil module dari python yang mana diartikel ini kita menggunakan module mysql.connector, kita gunakan perintah import untuk mengambil sebuah module di pyhton.
kemudian :

cnx = mysql.connector.connect(
		host = host,
		user = user,
		password = passwd
	)

di code tersebut kita membuat sebuah koneksi dengan memanggil fungsi connect() dengan parameter diantaranya host, user dan password, sebenarnya ada lagi beberapa parameter untuk module mysql.connector ini salah satunya adalah database yang digunakan untuk menentukan nama database yang akan kita gunakan di project kita.
di baris paling bawah, atau baris terahir kita lakan validasi connection database kita, check connection database :

if cnx.is_connected():
	print("Berhasil terhubung ke server")

dan hasilnya kita print dengan string info yang berisi koneksi berhasil.
selanjutnya kita akan mencoba membuat database dengan menggunakan module mysql.connector.

Membuat Database

sebelumnya kita sudah membuat sebuah objek untuk menampung nilai connect database, cnx.
selain objek cnx kita akan membutuhkan satu objek lagi yaitu cursor, buat objek baru untuk cursor :

jadi nanti untuk melakukan eksekusi sebuah query ita tinggal panggil sebuah method di module mysql.connector yaitu method execute() dengan parameter string query.

ok selanjutnya kita akan buat file baru dengan nama createDB.py, berikut code lengkap dari createDB.py :


import mysql.connector

host = 'localhost'
user = 'root'
passwd = '1'
nama_db = 'nama_ular'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		password = passwd
	)

cursor = cnx.cursor()
cursor.execute("CREATE DATABASE {}".format(nama_db))

print("Database berhasil dibuat")

sama seperti penggunaan mysql di pemrograman lainnya, kita menggunakan baris-baris command untuk melakukan sebuah query di MySQL. code di atas bisa langsung kita eksekusi dengan menjalankannya di terminal(CLI(command line)) :

seperti ini hasil code diatas jika di jalankan diterminal

Cara menggunakan import mysql connector-python

dan ini di UI phpmyadmin :

Cara menggunakan import mysql connector-python

dengan itu berarti eksekusi code kita berhasil, dan database berhasil dibuat dari screenshoot di phpmyadmin tersebut terlihat ada database baru yang terdaftar.

Membuat table

Untuk membuat table di database yang baru kita buat, caranya masih sama dengan code sebelumnya kita tinggal gunakan perintah command SQL untuk melakukan sebuah query ke dalam method execute()
ubah dahulu bagian connect(), tambahkan parameter baru yaitu database untuk menentukan database mana yang akan digunakan:

host = 'localhost'
user = 'root'
passwd = '1'
nama_db = 'nama_ular'
nama_tb = 'ular_berbisa'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		password = passwd,
		database = nama_db
	)

pada kode diatas kita menambahkan satu parameter baru untuk menentukan nama database yang akan kita gunakan sehingga menjadi seperti ini parameter lengkap untuk method connect() : nama_db = 'nama_ular' database = nama_db. jadi kita bisa buat sebuah file baru, gout beri nama file nya createTable.py :

# nama file = createTable.py
import mysql.connector

host = 'localhost'
user = 'root'
passwd = '1'
nama_db = 'nama_ular'
nama_tb = 'ular_berbisa'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		password = passwd,
		database = nama_db
	)

cursor = cnx.cursor()

sql = """CREATE TABLE {} (
	id_ular INT AUTO_INCREMENT PRIMARY KEY,
	nama_ular VARCHAR(255),
	nama_latin VARCHAR(255)
)
"""

cursor.execute(sql.format(nama_tb))

print("Table ular_berbisa berhasil dibuat")

setelah itu kita bisa langsung eksekusi code programmnya :

seperti ini hasilnya program python di terminal kita :

Cara menggunakan import mysql connector-python

dan ini di phpmyadmin:

Cara menggunakan import mysql connector-python

kita sudah berhasil membuat sebuah table baru di database kita menggunaan module mysql.connector di python.

Insert data

Sebelumnya kita telah membuat sebuah table baru, sekarang kita akan mencoba untu menjalankan QUERY SQL untuk menambahan data baru ke database kita, caranya masih sama, menggunaan command SQL.
buat satu file baru lagi , gout kasih nama file nya insertDB.py, kalian bebas memberi nama filenya. berikut isi dari file insertDB.py :

import mysql.connector

host = 'localhost'
user = 'root'
passwd = '1'
nama_db = 'nama_ular'
nama_tb = 'ular_berbisa'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		passwd = passwd,
		database = nama_db
	)

cursor = cnx.cursor()

sql = "INSERT INTO {} (nama_ular, nama_latin) VALUES (%s, %s)".format(nama_tb)

val = ("King Cobra", "Ophiophagus hannah")

cursor.execute(sql, val)


cnx.commit()

print("{} data ditambahkan ".format(cursor.rowcount))

Langsung kita jalankan codenya di terminal kita :

begini hasilnya di terminal :

Cara menggunakan import mysql connector-python

di phpmyadmin sepert ini hasilnya :

Cara menggunakan import mysql connector-python

penjelasan:
sedikit penjelasan: perhatikan baris code yang kita gunakan untuk melakukan query insert data:

sql = "INSERT INTO {} (nama_ular, nama_latin) VALUES (%s, %s)".format(nama_tb)

val = ("King Cobra", "Ophiophagus hannah")

cursor.execute(sql, val)


cnx.commit()

Di code tersebut kita menggunakan %s sebagai placeholder untuk mengisi query insert parameter value di sqlnya.
teknik ini sangat berguna untuk menghindari SQL Injection dan juga membuat penulisan code kita lebih clean dan mudah untuk di baca. kemudian di code berikutnya atau di bawahnya kita laukan cnx.commit() code ini dimaksudkan guna untuk menyimpan data yang kita insertkan, method commit() juga biasa digunakan untuk diantaranya : update data, dan hapus data.

**Menambahkan beberapa data sekaligus : **
buat sebuah file baru sebagai contoh, disini kita akan menginsert beberapa data dalam satu eksekusi. gout buat sebuah file baru sebagai contoh gout beri nama insertMany.py :

import mysql.connector

host = 'localhost'
user = 'root'
passwd = '1'
nama_db = 'nama_ular'
nama_tb = 'ular_berbisa'

cnx = mysql.connector.connect(
		host = host,
		user = user,
		passwd = passwd,
		database = nama_db
	)

cursor = cnx.cursor()

sql = "INSERT INTO {} (nama_ular, nama_latin) VALUES (%s, %s)".format(nama_tb)

values = [
		("Mamba Hitam", "Dendroaspis polylepis"),
		("Viper Bertanduk", "Cerastes cerastes")
		]

for val in values:
	cursor.execute(sql, val)
	cnx.commit()

print("{} data ditambahkan ".format(len(values)))

kemudian jalankan kembali di teminal file python insertMany.py

Dan seperti ini hasilnya di terminal :

Cara menggunakan import mysql connector-python

di phpmyadmin sepert ini hasilnya :

Cara menggunakan import mysql connector-python

Menampilkan data

Judul selanjutnya ini adalah menampilkan data, masih menggunaan query MySQL dengan command SELECT. kita bisa ambil beberapa data dengan method :

  • fetchall() untuk menampilkan seluruh data
  • fetchmany(5) untuk menampilkan lima data
  • fetchone() untuk menampilkan satu data pertama saja.
  • Method fetchall(), fetchmany(), fetchone() aan mengembalikan sebuah data list yang berisi tupple. ok kita coba buat satu file baru lagi, gout beri nama file nya selectData.py :

    import mysql.connector
    
    host = 'localhost'
    user = 'root'
    passwd = '1'
    nama_db = 'nama_ular'
    nama_tb = 'ular_berbisa'
    
    cnx = mysql.connector.connect(
    		host = host,
    		user = user,
    		password = passwd,
    		database = nama_db
    	)
    
    cursor = cnx.cursor()
    
    sql = "SELECT * FROM {}".format(nama_tb)
    
    cursor.execute(sql)
    
    results = cursor.fetchall()
    
    for data in results:
    	print(data)
    
    cnx.close()
    

    Seperti biasa kita eksekusi lagi lewat terminal untuk menjalankannya.

    Dan seperti ini hasilnya di terminal :

    Cara menggunakan import mysql connector-python

    Selanjutnya kita akan mencoba menggunaan method fetchone(), untuk mengambil satu data saja. buat file baru lagi dengan nama selectOne.py :

    import mysql.connector
    
    host = 'localhost'
    user = 'root'
    passwd = '1'
    nama_db = 'nama_ular'
    nama_tb = 'ular_berbisa'
    
    cnx = mysql.connector.connect(
    		host = host,
    		user = user,
    		password = passwd,
    		database = nama_db
    	)
    
    cursor = cnx.cursor()
    
    sql = "SELECT * FROM {}".format(nama_tb)
    
    cursor.execute(sql)
    
    results = cursor.fetchone()
    
    print(results)
    
    # for data in results:
    # 	print(data)
    
    cnx.close()
    

    Dan seperti ini hasilnya di terminal :

    Cara menggunakan import mysql connector-python

    Untuk method select data lainnya, coders bisa coba sendiri, diantaranya ada fetchmany() dan fetchall().

    Update data

    Di judul ini kita akan mencoba mengubah sebuah data, caranya pun masih sama dengan script sebelum-sebelumnya. Masih menggunakan command SQL, kali ini kita akan melakukan query UPDATE. ok langsung saja kita buat file baru, gout beri nama updateData.py :

    import mysql.connector
    
    host = 'localhost'
    user = 'root'
    passwd = '1'
    nama_db = 'nama_ular'
    nama_tb = 'ular_berbisa'
    
    cnx = mysql.connector.connect(
    		host = host,
    		user = user,
    		password = passwd,
    		database = nama_db
    	)
    
    cursor = cnx.cursor()
    
    sql = "UPDATE {} SET nama_ular=%s, nama_latin=%s WHERE id_ular=%s".format(nama_tb)
    val = ("Mamba Hijau", "Dendroaspis angusticeps", 3)
    cursor.execute(sql, val)
    
    cnx.commit()
    
    print("{} data diupdate".format(cursor.rowcount))
    
    cnx.close()
    

    di code tersebut gout melakukan update data untuk sebuah id : WHERE id_ular= karena di variable selanjutnya yaitu **val = ** gout memberikan nilai seperti ini val = ("Mamba Hijau", "Dendroaspis angusticeps", 3), dengan itu gout melakukan update untuk data dengan ular_id=3.
    Dan seperti ini hasilnya di terminal :

    Cara menggunakan import mysql connector-python

    dan di phpmyadminnya :
    Cara menggunakan import mysql connector-python

    selanjutnya …

    Hapus data

    Untuk menjalankan hapus data kurang lebih sama, masih menggunakan query SQL kali ini kita akan gunakan comman DELETE untuk menghapus data dan WHERE untuk menentukan data mana yang akan kita hapus disini gout menggunakan WHERE berdasarkan id yang akan dihapus.
    kita buat file baru dengan nama deleteData.py, seperti ini code nya :

    import mysql.connector
    
    host = 'localhost'
    user = 'root'
    passwd = '1'
    nama_db = 'nama_ular'
    nama_tb = 'ular_berbisa'
    
    cnx = mysql.connector.connect(
    		host = host,
    		user = user,
    		password = passwd,
    		database = nama_db
    	)
    
    cursor = cnx.cursor()
    
    sql = "DELETE FROM {} WHERE id_ular=%s".format(nama_tb)
    
    val = (3,)
    
    cursor.execute(sql, val)
    
    cnx.commit()
    
    print("{} data dihapus ".format(cursor.rowcount))
    
    cnx.close()
    

    dari code diatas gout melakukan delete data berdasarkan id_ular = 3.

    Cara menggunakan import mysql connector-python

    dan di phpmyadminnya :

    Cara menggunakan import mysql connector-python

    data dengan id_ular = 3 berhasil dihapus.

    sampai disini mungin kesimpulannya, pemrograman python ini tidak jauh berbeda dengan php, yang sebelumny gout gunakan dalam beberapa project gout dan di kerjaan utama gout. makanya gout tertarik dalam mempelajari dan menggunakan python untuk project gout selanjutnya.

    Ok sekian dulu artikel mengenai operational database di Python kali ini, inshaallah nanti gout sambung lagi membahas mengenai python, di artikel selanjut-lanjutnya.

    akhir kata gout ucapkan terima kasih, jangan lupa jaga selalu kesehatan kita. Salam sukses selalu. Aamiin.

    Wassalam

    By. Puji Ermanto