0% found this document useful (0 votes)
5 views

Interface Python with MySQL Notes (2)

The document outlines the process of connecting Python with a MySQL database, detailing steps such as importing the necessary packages, establishing a connection, executing SQL commands, and processing data. It provides code examples for performing DML operations like insert, update, and delete, as well as retrieving data using select commands and parameterized queries. Finally, it emphasizes the importance of closing the connection to clean up memory.

Uploaded by

Manya Juneja
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Interface Python with MySQL Notes (2)

The document outlines the process of connecting Python with a MySQL database, detailing steps such as importing the necessary packages, establishing a connection, executing SQL commands, and processing data. It provides code examples for performing DML operations like insert, update, and delete, as well as retrieving data using select commands and parameterized queries. Finally, it emphasizes the importance of closing the connection to clean up memory.

Uploaded by

Manya Juneja
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

INTERFACE PYTHON WITH MYSQL

Basically the process of transfer data between python programs and MySQL database
is known as Python Database Connectivity.

There few steps you have to follow to perform Python Database Connectivity. These
steps are as follow:

1. Import the required packages

2. Establish a connection

3. Execute SQL command

4. Process as per the requirements

Import the required packages

To perform the Python MySQL Database Connectivity you need to install


mysql-connector-python package using pip command.

pip install mysql-connector

After installation just write the import statement to import the package in python
code.

import mysql.connector as msql

importing package mysql connector in python

Here I have instantiated msql to mysql.connector which can be work as an alias name
for the connector.
Establish a connection

To establish a connection you need to create a connection object in Python. Take a


variable as a connection object and use connect() function with MySQL database
specification like host name, username, passoword or passwd and database itself. For
example cn. Observe the code:

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='root',database='Studentdb')

Please ensure that you have provided appropriate username, password and database
name available in your MySQL interface.

After doing this, check for the errors if any. If your program runs without errors that
means connection is established. Although you can use is_connected() function to
check whether the connection is established or not! Observe this code:

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='root',database='Student')

if cn.is_connected():

print("Connection Established")

else:

print("Connection Errors! Kindly check!!!")

Execute SQL command and fetch rows

The next step after the successful connection is to write SQL command and fetch rows.
The SQL commands are used to perform DML operations and fetch rows read data
from table. So we will see them in detail later.

You have to create a cursor object for executing SQL command and fetch rows. Cursor
object is a special kind of structure that processes the data row by row in database.
You can create cursor object in the following manner.

cur=cn.cursor()
Performing DML operations (insert, update and delete)

To perform the DML operations like insert, update or delete follow these steps:

1. Create a cursor object

2. Write command as parameters for execute() function

3. Use commit() function to save the changes and reflect the data in the table.

insert command

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

#cur.execute("insert into students values(1111,'Asmita',78.50,'B1')")

#or

a = int(input("Enter roll no"))

b = input("Enter name")

c = eval(input("Enter Marks"))

d = input("Enter Grade")

#cur.execute("insert into students values(%s,'%s',%s,'%s')" %(a,b,c,d))

#or
cur.execute("insert into students values({0},'{1}',{2},'{3}')".format(a,b,c,d))

cn.commit()

update command

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

#cur.execute("update students set marks=80.5 where rollno=1111")

a = int(input("Enter roll no"))

c = eval(input("Enter Marks"))

#cur.execute("update students set marks = %s where rno= %s" %(c,a))

#or

cur.execute("update students set marks={0} where rno={1}".format(c,a))

cn.commit()

delete command

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

#cur.execute("delete from students where rno=1111")

a = int(input("Enter roll no"))

#cur.execute("delete from students where rno= %s" %(a))

#or
cur.execute("delete from students where rno={0}".format(a))

cn.commit()

Select Command

As you know the select command is used retrieve records from the database. The
result is available in the resultset or dataset. You can store the select the command in
cursor object in python. Then for resultset you can use the fetch…() function. These
are:

1. fetchall(): It will retrieve all data from a database table in form of record or tuple or
a row.

2. fetchone(): It will retrieve one record from the resultset as a tuple or a list. It returns
the records in a specific order like first record, the next time next record and so on. If
records are not available then it will return None.

3. fetchmany(n): It will retrieve a number of records from the database. If records are
not available then it will return an empty tuple.

4. rowcount: It is one of the properties of cursor object that return number of rows
fetched from the cursor object.

Observe the below-given code for fetchall() function:

import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

cur.execute("select * from students")

d=cursor.fetchall()

for r in d:

print(r)

Observe the below-given code for fetchmany(n) function:


import mysql.connector as msql

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

cur.execute("select * from students")

d=cursor.fetchmany(3)

for r in d:

print(r)

The above code will return 3 rows from the database.

Observe the below-given code for fetchone() function:

import mysql.connector as msql

import time

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

cur.execute("select * from students")

d=cur.fetchone()

print(d)

time.sleep(3)

d=cur.fetchone()

print(d)

time.sleep(3)

d=cur.fetchone()

time.sleep(3)
print(d)

Parameterized Queries

Sometimes we need to access values as per the user’s input. The query result is based
on the values user has passed. So for that we have this option parameterized queries.
There are two ways to use parameterized queries:

1. with % formatting pattern

2. with {}.format pattern

with % formatting pattern

This pattern takes the general form – f % v, where f is a format and v is the value.
Consider the following

code:

import mysql.connector as msql

import time

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

#display records more than 80%

cur.execute("select * from students where marks >%s" %(80,))

d=cur.fetchall()

for r in d:

print(r)

#display records having B1 grade

cur.execute("select * from students where grade='%s'" %('B1',))

d=cur.fetchall()
for r in d:

print(r)

with {}.format pattern

In this pattern you can write {} where the value is placed followed by .format(values).
Consider the following code:

import mysql.connector as msql

import time

cn=msql.connect(host='localhost',user='root',passwd='1234',database='Studentdb')

cur=cn.cursor()

cur.execute("select * from students where marks >{}" .format(80))

d=cur.fetchall()

for r in d:

print(r)

cur.execute("select * from students where grade='{}'".format('B1'))

d=cur.fetchall()

for r in d:

print(r)

Close the connection

Finally, you have to close the established connect using close() function. It will help to
clean up the memory. Observe the following code:

con.close()

You might also like