INTERFACE PYTHON
WITH MYSQL
Connecting Python application with
Introducti
on
Every application required data to be stored
for future reference to manipulate data. Today
every application stores data in database for
this purpose
For example, reservation system stores
passengers details for reserving the seats and
later on for sending some messages or for
printing tickets etc.
In school student details are saved for many
reasons like attendance, fee collections, exams,
report card etc.
Python allows us to connect all types of
database like Oracle, SQL Server, MySQL.
In our syllabus we have to understand how to
connect Python programs with MySQL
Pre-requisite to connect
Python with MySQL
Before we connect python program with any
database like MySQL we need to build a
bridge to connect Python and MySQL.
To build this bridge so that data can travel
both ways we need a connector called
“mysql.connector”.
We can install “mysql.connector” by
using following methods:
🞑 At command prompt (Administrator login)
Type “pip install mysql.connector” and press enter
(internet connection in required)
This connector will work only for MySQL 5.7.3 or later
🞑 Or open
“https://dev.mysql.com/downloads/connector/
python/”
Connecting to MySQL from
Python
Once the connector is installed you are
ready to connect your python
program to MySQL.
The following steps to follow while
connecting your python program with
MySQL
🞑 Open python
🞑 Import the package required (import
mysql.connector)
🞑 Open the connection to database
🞑 Create a cursor instance
🞑 Execute the query and store it in resultset
🞑 Extract data from resultset
🞑 Clean up the environment
Importing
mysql.connector
import mysql.connector
Or
import mysql.connector as ms
Here “ms” is an alias, so every time we can
use “ms” in place of “mysql.connector”
Open a connection to MySQL
Database
To create connection, connect() function is used
Its syntax is:
🞑 connect(host=<server_name>,user=<user_name>,
passwd=<password>[,database=<database>])
Here server_name means database servername,
generally it is given as “localhost”
User_name means user by which we connect
with mysql generally it is given as “root”
Password is the password of user “root”
Database is the name of database whose
data(table) we want to use
Example: To establish
connection with MySQL
is_connected() function
returns true if connection
is established otherwise
false
“mys” is an alias of package
“mysql.connector”
“mycon” is connection object which stores connection established
with
“conneMySQL
cStA(C)”HNI fuBnHcAtiRoDnWisAJu,
Table to work
(emp)
Creating
Cursor
It is a useful control structure of database
connectivity.
When we fire a query to database, it is
executed and resultset (set of records) is sent
over he connection in one go.
We may want to access data one row at a
time, but query processing cannot happens as
one row at a time, so cursor help us in
performing this task. Cursor stores all the data
as a temporary container of returned data and
we can fetch data one row at a time from
Cursor.
Creating Cursor and Executing
Query
TO CREATE CURSOR
🞑 Cursor_name = connectionObject.cursor()
🞑 For e.g.
🞑 mycursor = mycon.cursor()
TO EXECUTE QUERY
We use execute() function to send query to
connection
Cursor_name.execute(query)
For e.g.
mycursor.execute(„select * from emp‟)
Example -
Cursor
Output shows cursor is created and query is fired and stored, but no
data is coming. To fetch data we have to use functions like
fetchall(), fetchone(), fetchmany() are used
Fetching(extracting) data from
ResultSet
To extract data from cursor following
functions are used:
🞑 fetchall() : it will return all the record in the
form of tuple.
🞑 fetchone() : it return one record from the result
set. i.e. first time it will return first record, next
time it will return second record and so on. If
no more record it will return None
🞑 fetchmany(n) : it will return n number of records.
It no more record it will return an empty tuple.
🞑 rowcount : it will return number of rows
retrieved from the cursor so far.
Example –
fetchall()
Example 2 –
fetchall()
Example 3 –
fetchall()
Example 4:
fetchone()
Example 5:
fetchmany(n)
Guess the
output
Parameterized
Query
We can pass values to query to perform
dynamic search like we want to search for
any employee number entered during
runtime or to search any other column
values.
To Create Parameterized query we can
use various methods
🞑 Concatenating like: variable in
dynamic
to query values are which
entered.
🞑 String template with % formatting
🞑 String template with {} and format
function
Concatenating variable with
query
String template with %s
formatting
In this method we will use %s in place of
values to substitute and then pass the
value for that place.
String template with %s
formatting
String template with {} and
format()
In this method in place of %s we will use {}
and to pass values for these placeholder
format() is used. Inside we can optionally
give 0,1,2… values for e.g.
valuesthrough we not
• {0},{1} but its not mandatory. we can also
format function
optionally pass named parameter inside
rememberthe order
{} so that while of
passing need to to For
value
{roll},{name} etc. pass. e.g.
String template with {} and
format()
String template with {} and
format()
Inserting data in MySQL
table from Python
INSERT and UPDATE operation are
executed in the same way we execute
SELECT query using execute() but one thing
to remember, after executing insert or
update query we must commit our query
using connection object with commit().
For e.g. (if our connection object name is
mycon)
mycon.commit()
BEFORE PROGRAM
Example : inserting EXECUTION
data
AFTER PROGRAM
EXECUTION
Example:
Updating record