Bagaimana Kami Dapat Menjalankan Query Mysql dengan Python

Artikel ini akan menunjukkan bagaimana kita bisa melakukan query MySql dengan python. Untuk menjalankan kueri di MySql, pertama-tama kita perlu membuat objek kursor seperti struktur dokumen yang melintasi database. Jadi mari kita mulai memahami semua konsep tentang kueri MySql dengan python.

Sebelum memulai, kita harus menginstal konektor MySql di lingkungan sistem lokal kita.

Ada dua metode untuk menginstal:

Metode_1:

Kami dapat langsung mengdownload dan menginstal konektor MySQL dari situs web resmi mereka sesuai dengan kompatibilitas dan versi OS kami.

Metode_2:

Cara mudahnya adalah dengan menggunakan metode pip.

pip install mysql-connector-python

Jika kita menggunakan versi tertentu, maka kita harus menetapkan nama versi seperti yang diberikan di bawah ini:

pip install mysql-connector-python==<insert_version_number_here>

Pembuatan Koneksi:

Sekarang, pada langkah pertama setelah instalasi MySql berhasil ke sistem lokal kami, kami mencoba membuat koneksi. Jika koneksi berhasil, maka kita dapat melanjutkan ke langkah berikutnya.

#python eastablish_connection.py

#import the library

import mysql.connector

# creating connection

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password"

)

# print the conn

print(conn)

Keluaran:

<mysql.connector.connection_cext.CMySQLConnection object at 0x7fbbf6291be0>

Baris 4:

Kami mengimpor kelas konektor dari MySql.

Baris 7 hingga 11:

Kami mengakses metode connect melalui kelas konektor, yang sudah kami impor ke dalam program kami. Sekarang, kami meneruskan parameter koneksi kami ke metode koneksi. Nama user dan password akan berbeda sesuai dengan proses instalasi Anda.

Baris 13:

Akhirnya, kami hanya mencetak koneksi, dan itu menunjukkan koneksi output yang dilakukan ke MySql, dan mengembalikan objek dengan alamat memorinya.

Buat Basis Data:

Sekarang, kita membuat database dengan bantuan python.

#python create_a_database.py

#import the library

import mysql.connector

# creating connection

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password"

)

#print the connection

print(conn)

# import the cursor from the connection (conn)

mycursor = conn.cursor()

#print the mycursor

print(mycursor)

mycursor.execute("CREATE DATABASE dbTest")

Keluaran:

<mysql.connector.connection_cext.CMySQLConnection object at 0x7f57cce9bbe0>

CMySQLCursor: (Nothing executed yet)

Baris 16:

Kami mengimpor metode kursor dari objek koneksi (sambungan) yang dibuat.

Baris 18:

Sekarang, kita tinggal mencetak mycursor yang kita buat pada baris 16, dan outputnya menunjukkan bahwa CMySQLCursor: (Belum ada yang dieksekusi).

Baris 20:

Kami mengeksekusi kueri untuk membuat database, tetapi tidak mengembalikan apa pun. Jadi jika kita mencetak (mycursor.execute(“CREATE DATABASE dbTest”)), kita akan mendapatkan None sebagai tipe pengembalian.

Jika kita memeriksa database MySQL kita, kita dapat melihat bahwa database baru kita (dbTest) berhasil dibuat.

➜  ~ mysql -u sammy -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 17

Server version: 8.0.26-0ubuntu0.20.04.2 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| dbTest             |

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.00 sec)

mysql>

Koneksi ke database:

Sekarang, kami mencoba untuk terhubung dengan database kami yang baru dibuat (dbTest) dengan Python. Kode untuk ini diberikan di bawah ini:

#python conn_to_database.py

#import the library

import mys ql.connector

# creating connection to the database

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password",

  database="dbTest"

)

# print the conn

print(conn)

Baris 11:

Kami menambahkan satu nama parameter lagi ke database. Sekarang, kode python kami akan mencoba terhubung dengan database MySql (dbTest) ini saja.

Buat Tabel:

  1. Mari buat tabel baru (MOVIE) di database yang baru dibuat (dbTest).
  2. Tiga kolom yang akan kita gunakan adalah id, name, dan year. ID dan tahun akan menjadi tipe INT (integer), dan namanya akan menjadi tipe varchar. Kami juga akan mendefinisikan kolom (id) sebagai KUNCI UTAMA.
  3. Nama kolom akan menyimpan jumlah karakter maksimum 30, seperti yang kita definisikan varchar (30).
#python create_table.py

#import the library

import mysql.connector

# creating connection to the database

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password",

  database="dbTest"

)

# we create a mycursor object using the conn.cursor()

mycursor = conn.cursor()

mycursor.execute("DROP TABLE IF EXISTS MOVIE")

# we write a query to create a table

query = "CREATE TABLE MOVIE(id INT PRIMARY KEY,name varchar(30),year INT)"

# We execute the query here

mycursor.execute(query)

# after done the process, we close the connection

conn.close()

Baris 14:

Kami membuat objek kursor.

Baris 15:

Kami juga menjalankan kueri di sini dengan metode eksekusi bahwa jika nama tabel (MOVIE) sudah ada di database MySql, tabel itu akan dihapus. Jika tidak, kita akan mendapatkan error yang sudah ada.

Baris 18 hingga 21:

Kami membuat kueri untuk membuat tabel dan mengeksekusi kueri itu di baris nomor 21 dengan fungsi eksekusi.

Baris 24:

Akhirnya, kami menutup koneksi kami.

Di bawah ini adalah output MySql, di mana kami mengonfirmasi bahwa tabel kami berhasil dibuat di dalam database MySql.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| dbTest             |

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.00 sec)

mysql> use dbTest;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+------------------+

| Tables_in_dbTest |

+------------------+

| MOVIE            |

+------------------+

1 row in set (0.00 sec)

mysql> select * from MOVIE;

Empty set (0.00 sec)

mysql> select * from movie;

ERROR 1146 (42S02): Table 'dbTest.movie' doesn't exist

mysql> desc MOVIE;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int         | NO   | PRI | NULL    |       |

| name  | varchar(30) | YES  |     | NULL    |       |

| year  | int         | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)

mysql>

Tambahkan catatan ke tabel:

Sekarang, kita akan memasukkan satu record ke dalam tabel. Kode python untuk itu diberikan di bawah ini.

#python record_insertion.py

#import the library

import mysql.connector

# creating connection to the database

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password",

  database="dbTest"

)

mycursor = conn.cursor()

# execute the query with their record value

query = 'insert into MOVIE(id, name, year) 

       values (1, "Bruce Almighty", 2003 )'

mycursor.execute(query)

# we commit(save) the records to the table

conn.commit()

Baris 17:

Kami membuat query untuk memasukkan record ke dalam tabel MOVIE.

Baris 19:

Kami menjalankan kueri itu.

Baris 22:

Kami akhirnya melakukan catatan.

Keluaran:

Output di bawah ini menunjukkan bahwa kami telah berhasil merekam dimasukkan ke dalam tabel MOVIE.

mysql> select * from MOVIE;

+----+----------------+------+

| id | name           | year |

+----+----------------+------+

|  1 | Bruce Alm ighty | 2003 |

+----+----------------+------+

1 row in set (0.00 sec)

mysql>

Beberapa penyisipan catatan:

Kita juga dapat menambahkan beberapa record sekaligus ke dalam tabel. Jadi, dalam program ini, kita akan melihat metode itu. Untuk memasukkan beberapa record, kita harus menggunakan metode executemany() alih-alih metode execute().

#python insert_record_multiple.py

#import the library

import mysql.connector

# creating connection to the database

conn = mysql.connector.connect(

host="localhost",

user="sammy",

password="password",

database="dbTest"

)

mycursor = conn.cursor()

# execute the query with their record value

query = 'INSERT INTO MOVIE (id, name, year) VALUES (%s, %s, %s)'

val = [(2, "Kung Fu panda", 2014),

       (4, "Frozen", 2014),

       (5, "Frozen2", 2020),

       (6, "Iron Man", 2013)


       ]

mycursor.executemany(query,val)

# we commit(save) the records to the table

conn.commit()

print(mycursor.rowcount, "record(s) inserted.")

Baris 17:

Kami membuat kueri kami untuk data penyisipan.

Baris 18:

Kami membuat daftar nilai yang ingin kami masukkan ke dalam tabel.

Baris 25:

Kami menggunakan metode executionmany () untuk memasukkan beberapa record.

Keluaran:

mysql> select * from MOVIE;

+----+----------------+------+

| id | name           | year |

+----+----------------+------+

|  1 | Bruce Almighty | 2003 |

|  2 | Kung Fu panda  | 2014 |

|  3 | Kung Fu panda  | 2014 |

|  4 | Frozen         | 2014 |

|  5 | Frozen2        | 2020 |

|  6 | Iron Man       | 2013 |

+----+----------------+------+

6 rows in set (0.00 sec)

Pilih catatan dari tabel:

Dalam program ini, kami akan menambahkan pemilihan kueri lain untuk mengambil catatan dari tabel.

#python select_query.py

#import the library

import mysql.connector

# creating connection to the database

conn = mysql.connector.connect(

  host="localhost",

  user="sammy",

  password="password",

  database="dbTest"

)

mycursor = conn.cursor()

# execute the query  and fetch all the records

query = 'SELECT * FROM MOVIE'

mycursor.execute(query)

result = mycursor.fetchall()

# we print our result

print(result)

# now, we do iteration on each record and print

for record in result:

  print(record)

Baris 17 hingga 19:

Kami membuat kueri pemilihan dan menjalankan kueri itu. Metode fetchall() digunakan untuk mengambil semua record dari tabel tertentu.

Baris 22:

Kami mencetak hasilnya dan menemukan bahwa semua catatan adalah tupel dan di dalam daftar. Output di bawah ini menunjukkan daftar.

Baris 25 hingga 26:

Kami mengulangi daftar dan mencetak setiap catatan Tuple.

Keluaran:

[(1, 'Bruce Almighty', 2003), (2, 'Kung Fu panda', 2014), (3, 'Kung Fu panda', 2014), (4, 'Frozen', 2014), (5, 'Frozen2', 2020), (6, 'Iron Man', 2013)]

(1, 'Bruce Almighty', 2003)

(2, 'Kung Fu panda', 2014)

(3, 'Kung Fu panda', 2014)

(4, 'Frozen', 2014)

(5, 'Frozen2', 2020)

(6, 'Iron Man', 2013)

Kesimpulan:

Pada artikel ini, kita telah melihat cara membuat koneksi dengan MySql menggunakan python. Kami juga mempelajari berbagai metode penyisipan data, seperti penyisipan catatan data tunggal atau ganda ke dalam tabel. Kami juga telah melihat bagaimana kami dapat mengeksekusi kueri melalui python. Kita harus membuat kueri dan kemudian meneruskan kueri itu ke metode eksekusi () untuk eksekusi dan menyimpan hasilnya ke beberapa variabel.

Kode untuk artikel ini tersedia di tautan Github:

https://github.com/shekharpandey89/mysql-query-connection

Related Posts