SlideShare a Scribd company logo
Computer Science
Class XII ( As per CBSE Board)
Chapter 10
Interface python
with
SQL Database
Visit : python.mykvs.in for regular updates
As per Term
wise
Syllabus
2021-22
Interface python
with SQL Database
Visit : python.mykvs.in for regular updates
A database is nothing but an organized collection of data. Data is organized into rows,
columns and tables and it is indexed to make it easier to find relevant information. All
companies whether large or small use databases. So it become necessary to develop
project/software using any programming language like python in such a manner which can
interface with such databases which support SQL.Generalised form of Interface of python
with SQL Database can be understood with the help of this diagram.
Using SQL in any of the dbms ,databases and table can be created and data can be accessed,
updated and maintained. The Python standard for database interfaces is the Python DB-API.
Python Database API supports a wide range of database servers, like msql , mysql,
postgressql, Informix, oracle, Sybase etc.
Form/any user interface designed in any
programming language is Front End where
as data given by database as response is
known as Back-End database.SQL is just a
query language, it is not a database. To
perform SQL queries, we need to install any
database for example Oracle, MySQL,
MongoDB, PostGres SQL, SQL Server, DB2 et.
Why choose Python for database programming
Following are the reason to choose python for database
programming
• Programming more efficient and faster compared to other
languages.
• Portability of python programs.
• Support platform independent program development.
• Python supports SQL cursors.
• Python itself take care of open and close of connections.
• Python supports relational database systems.
• Porting of data from one dbms to other is easily possible as it
support large range of APIs for various databases.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
SQL Connectors
We must download a separate DB API module for each database we
need to access. Suppose we need to access an Oracle database as
well as a MySQL database, we must download both the Oracle and
the MySQL database modules .
The DB API provides a minimal standard for working with databases
using Python structures and syntax wherever possible.
This API includes the following −
● Importing the API module.
● Acquiring a connection with the database.
● Issuing SQL statements and stored procedures.
● Closing the connection
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Here we are using mysql as back end database because of it is open source,free
and portable and widely used. Any one of mysql-connector or MySQLdb can be
used for database programming.
1. mysql-connector
MySQL-Connector enables Python programs to access MySQL databases, using an
API that is compliant with the Python Database API Specification v2.0 (PEP 249). It
is written in pure Python and does not have any dependencies except for the
Python Standard Library.
Steps to use mysql-connector
1. Download Mysql API ,exe file and install it.(click here to download)
2. Install Mysql-Python Connector (Open command prompt and execute
command) >pip install mysql-connector
3. Now connect Mysql server using python
4. Write python statement in python shell import mysql.connector
If no error message is shown means mysql connector is properly installed
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
2. MySQLdb
MySQLdb is an interface for connecting to a MySQL database server from Python.
It implements the Python Database API v2.0 and is built on top of the MySQL C
API.
Steps to use mysqlclient
1. First Upgrade pip command through > python –m pip install –upgrade pip
2. Install mysqlclient through pip install mysqlclient
3. After successful installation check through import mysqldb
4. If it is installed no error will be displayed otherwise error message will be displayed
To install MySQLdb module, use the following command −
For Ubuntu, use the following command -
$ sudo apt-get install python-pip python-dev libmysqlclient-dev
For Fedora, use the following command -
$ sudo dnf install python python-devel mysql-devel redhat-rpm-config gc c
For Python command prompt, use the following command -
pip install MySQL-python
Note − Make sure you have root privilege to install above module
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Establish connection
For database interface/database programming ,connection must be established.Before
establishing connection there must be mysql installed on the system and a database and
table is already created.In following way we can establish a connection with mysql
database through mysql.connector.
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root“,database=“school”)
print(mydb)
Alternatively we can write the following statement if we are using mysqldb
import MySQLdb
mydb = MySQLdb.connect("localhost",“root",“root",“school" )
print(mydb)
In both way we are specifying host,user,password and database name as
arguments.database is optional argument if we want to create database through
programming later on.
After successful execution of above statements in python following out will be displayed
<mysql.connector.connection.MySQLConnection object at 0x022624F0>
Otherwise an error message will be shown.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Cursor object :
The MySQLCursor class instantiates objects that can execute operations such as SQL
statements. Cursor objects interact with the MySQL server using a MySQLConnection
object.
How to create cursor object and use it
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root")
mycursor=mydb.cursor()
mycursor.execute("create database if not exists school")
mycursor.execute("show databases")
for x in mycursor:
print(x)
Through line 4 we are creating a database named school if it is already not created with
the help of cursor object.
Line 5 executes the sql query show databases and store result in mycursor as collection
,whose values are being fetched in x variable one by one.
On execution of above program school database is created and a list of available databases
is shown.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
How to create table at run time
Table creation is very easy ,if we are already well versed in sql table creation then
we have to just pass the create table query in execute() method of cursor object.
But before table creation we must open the database.Here we are opening
database school(through connect() method) before student table creation.
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",dat
abase="school")
mycursor=mydb.cursor()
mycursor.execute("create table student(rollno int(3) primary key,name
varchar(20),age int(2))")
On successful execution of above program a table named student with three
fields rollno,name,age will be created in school database.
We can check student table in mysql shell also,if required.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
How to change table structure/(add,edit,remove colum of a table) at
run time
To modify the structure of the table we just have to use alter table
query.Below program will add a column mark in the student table.
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd
="root",database="school")
mycursor=mydb.cursor()
mycursor.execute("alter table student add (marks int(3))")
mycursor.execute("desc student")
for x in mycursor:
print(x)
Above program will add a column marks in the table student and will
display the structure of the table
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Interface python
with SQL Database
How to insert record in a table at run time
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",databa
se="school")
mycursor=mydb.cursor()
while 1==1:
ch=int(input("enter -1 to exit any other no to insert record into student table"))
if ch==-1:
break
rollno=int(input("Enter rollno"))
class1=int(input("Enter Class"))
name=input("Enter name")
marks=int(input("Enter marks"))
mycursor.execute("insert into student
values('"+str(rollno)+"','"+name+"','"+str(class1)+"','"+str(marks)+"')")
mydb.commit()
Visit : python.mykvs.in for regular updates
How to search records of a table at run time
Below statement demonstrate the use of select query for searching
specific record from a table.
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="ro
ot",database="school")
mycursor=mydb.cursor()
nm=input("enter name")
mycursor.execute("select * from student where name='"+nm+"'")
for x in mycursor:
print (x)
Above statements will prompt a name from user,as user type the name
,that name is searched into the table student with the help of select query
.result will be shown with the help of mycursor collection.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
How to fetch all records of a table at run time
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="ro
ot",database="school")
mycursor=mydb.cursor()
mycursor.execute("select * from student")
myrecords=mycursor.fetchall()
for x in myrecords:
print (x)
MySQLCursor.fetchall() Method
The method fetches all (or all remaining) rows of a query result set and
returns a list of tuples. If no more rows are available, it returns an empty
list.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
How to fetch one record of a table at run time
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc
hool")
mycursor=mydb.cursor()
mycursor.execute("select * from student")
row=mycursor.fetchone()
while row is not None:
print(row)
row = mycursor.fetchone()
MySQLCursor.fetchone() Method
This method retrieves the next row of a query result set and returns a single sequence, or
None if no more rows are available. By default, the returned tuple consists of data
returned by the MySQL server, converted to Python objects.
MySQLCursor.fetchmany() Method
rows = cursor.fetchmany(size=1)
This method fetches the next set of rows of a query result and returns a list of tuples. If no
more rows are available, it returns an empty list.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
rowcount : Rows affected by Query. We can get number of rows affected by the query by
using rowcount. We will use one SELECT query here.
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="s
chool")
mycursor=mydb.cursor()
mycursor = mydb.cursor(buffered=True)
mycursor.execute("select * from student")
noofrows=mycursor.rowcount
print("No of rows in student table are",noofrows)
buffered=True
We have used my_cursor as buffered cursor.
my_cursor = my_connect.cursor(buffered=True)
This type cursor fetches rows and buffers them after getting output from MySQL
database. We can use such cursor as iterator. There is no point in using buffered cursor for
single fetching of rows.If we don’t use buffered cursor then we will get -1 as output from
rowcount
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
How to delete record of a table at run time
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc
hool")
mycursor=mydb.cursor()
mycursor.execute("delete from student where rollno=1")
mydb.commit()
In above program delete query will delete a record with rollno=1.commit() method is
necessary to call for database transaction.
How to update record of a table at run time
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc
hool")
mycursor=mydb.cursor()
mycursor.execute("update student set marks=99 where rollno=2")
mydb.commit()
In above program update query update the marks with 99 of rollno=2
Students are advised to develop menu driven program using above concepts for better
understating of python mysql database interface.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Manage Database Transaction
Database transaction represents a single unit of work. Any
operation which modifies the state of the MySQL database is a
transaction.
Python MySQL Connector provides the following method to manage
database transactions.
commit – MySQLConnection.commit() method sends a COMMIT
statement to the MySQL server, committing the current transaction.
rollback – MySQLConnection.rollback revert the changes made by
the current transaction.
AutoCommit – MySQLConnection.autocommit value can be
assigned as True or False to enable or disable the auto-commit
feature of MySQL. By default its value is False.
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database
Manage Database Transaction
try:
conn = mysql.connector.connect(host='localhost',database='school', user='root', password='root')
conn.autocommit = false
cursor = conn.cursor()
sql_update_query = """Update student set marks = 95 where rollno = 2"""
cursor.execute(sql_update_query)
print ("Record Updated successfully ")
#Commit your changes
conn.commit()
except mysql.connector.Error as error :
print("Failed to update record to database rollback: {}".format(error))
#reverting changes because of exception
conn.rollback()
finally:
#closing database connection.
if(conn.is_connected()):
cursor.close()
conn.close()
print("connection is closed")
In above program if update query is successfully executed then commit() method will be executed otherwise exception
error part will be executed where revert of update query will be done due to error.At finally we are closing cursor as
well as connection.To rollback or commit we have to set autocommit=false,just like conn.autocommit = false in above
program otherwise rollback will not work
Visit : python.mykvs.in for regular updates
Interface python
with SQL Database

More Related Content

Similar to Interface python with sql database10.pdf

Scripts Python Dbapi
Scripts Python DbapiScripts Python Dbapi
Scripts Python DbapiAkramWaseem
 
Chapter -7.pptx
Chapter -7.pptxChapter -7.pptx
Chapter -7.pptx
MikialeTesfamariam
 
Python - db.pptx
Python - db.pptxPython - db.pptx
Python - db.pptx
RAGAVIC2
 
unit 3.docx
unit 3.docxunit 3.docx
unit 3.docx
Sadhana Sreekanth
 
Python - mySOL
Python - mySOLPython - mySOL
Python - mySOL
Learnbay Datascience
 
Database programming
Database programmingDatabase programming
Node.js with MySQL.pdf
Node.js with MySQL.pdfNode.js with MySQL.pdf
Node.js with MySQL.pdf
SudhanshiBakre1
 
Connecting to my sql using PHP
Connecting to my sql using PHPConnecting to my sql using PHP
Connecting to my sql using PHP
Nisa Soomro
 
Olap
OlapOlap
Olap
preksha33
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5
John Coggeshall
 
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
FIWARE
 
The power of mysqlnd plugins
The power of mysqlnd pluginsThe power of mysqlnd plugins
The power of mysqlnd plugins
Ulf Wendel
 
Database connectivity in python
Database connectivity in pythonDatabase connectivity in python
Database connectivity in python
baabtra.com - No. 1 supplier of quality freshers
 
My sql basic
My sql basicMy sql basic
My sql basic
Prabhat gangwar
 
Chapter6 database connectivity
Chapter6 database connectivityChapter6 database connectivity
Chapter6 database connectivity
KV(AFS) Utarlai, Barmer (Rajasthan)
 
Linq to sql
Linq to sqlLinq to sql
Linq to sql
Muhammad Younis
 
Python SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite DatabasePython SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite Database
ElangovanTechNotesET
 
Database connectivity in python
Database connectivity in pythonDatabase connectivity in python
Database connectivity in python
baabtra.com - No. 1 supplier of quality freshers
 
Mysql
MysqlMysql

Similar to Interface python with sql database10.pdf (20)

Scripts Python Dbapi
Scripts Python DbapiScripts Python Dbapi
Scripts Python Dbapi
 
Chapter -7.pptx
Chapter -7.pptxChapter -7.pptx
Chapter -7.pptx
 
Python - db.pptx
Python - db.pptxPython - db.pptx
Python - db.pptx
 
unit 3.docx
unit 3.docxunit 3.docx
unit 3.docx
 
Python - mySOL
Python - mySOLPython - mySOL
Python - mySOL
 
Database programming
Database programmingDatabase programming
Database programming
 
Node.js with MySQL.pdf
Node.js with MySQL.pdfNode.js with MySQL.pdf
Node.js with MySQL.pdf
 
Connecting to my sql using PHP
Connecting to my sql using PHPConnecting to my sql using PHP
Connecting to my sql using PHP
 
Olap
OlapOlap
Olap
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5
 
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
FIWARE Global Summit - A Multi-database Plugin for the Orion FIWARE Context B...
 
Python database interfaces
Python database  interfacesPython database  interfaces
Python database interfaces
 
The power of mysqlnd plugins
The power of mysqlnd pluginsThe power of mysqlnd plugins
The power of mysqlnd plugins
 
Database connectivity in python
Database connectivity in pythonDatabase connectivity in python
Database connectivity in python
 
My sql basic
My sql basicMy sql basic
My sql basic
 
Chapter6 database connectivity
Chapter6 database connectivityChapter6 database connectivity
Chapter6 database connectivity
 
Linq to sql
Linq to sqlLinq to sql
Linq to sql
 
Python SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite DatabasePython SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite Database
 
Database connectivity in python
Database connectivity in pythonDatabase connectivity in python
Database connectivity in python
 
Mysql
MysqlMysql
Mysql
 

Recently uploaded

7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
nhiyenphan2005
 

Recently uploaded (20)

7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
 

Interface python with sql database10.pdf

  • 1. Computer Science Class XII ( As per CBSE Board) Chapter 10 Interface python with SQL Database Visit : python.mykvs.in for regular updates As per Term wise Syllabus 2021-22
  • 2. Interface python with SQL Database Visit : python.mykvs.in for regular updates A database is nothing but an organized collection of data. Data is organized into rows, columns and tables and it is indexed to make it easier to find relevant information. All companies whether large or small use databases. So it become necessary to develop project/software using any programming language like python in such a manner which can interface with such databases which support SQL.Generalised form of Interface of python with SQL Database can be understood with the help of this diagram. Using SQL in any of the dbms ,databases and table can be created and data can be accessed, updated and maintained. The Python standard for database interfaces is the Python DB-API. Python Database API supports a wide range of database servers, like msql , mysql, postgressql, Informix, oracle, Sybase etc. Form/any user interface designed in any programming language is Front End where as data given by database as response is known as Back-End database.SQL is just a query language, it is not a database. To perform SQL queries, we need to install any database for example Oracle, MySQL, MongoDB, PostGres SQL, SQL Server, DB2 et.
  • 3. Why choose Python for database programming Following are the reason to choose python for database programming • Programming more efficient and faster compared to other languages. • Portability of python programs. • Support platform independent program development. • Python supports SQL cursors. • Python itself take care of open and close of connections. • Python supports relational database systems. • Porting of data from one dbms to other is easily possible as it support large range of APIs for various databases. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 4. SQL Connectors We must download a separate DB API module for each database we need to access. Suppose we need to access an Oracle database as well as a MySQL database, we must download both the Oracle and the MySQL database modules . The DB API provides a minimal standard for working with databases using Python structures and syntax wherever possible. This API includes the following − ● Importing the API module. ● Acquiring a connection with the database. ● Issuing SQL statements and stored procedures. ● Closing the connection Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 5. Here we are using mysql as back end database because of it is open source,free and portable and widely used. Any one of mysql-connector or MySQLdb can be used for database programming. 1. mysql-connector MySQL-Connector enables Python programs to access MySQL databases, using an API that is compliant with the Python Database API Specification v2.0 (PEP 249). It is written in pure Python and does not have any dependencies except for the Python Standard Library. Steps to use mysql-connector 1. Download Mysql API ,exe file and install it.(click here to download) 2. Install Mysql-Python Connector (Open command prompt and execute command) >pip install mysql-connector 3. Now connect Mysql server using python 4. Write python statement in python shell import mysql.connector If no error message is shown means mysql connector is properly installed Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 6. 2. MySQLdb MySQLdb is an interface for connecting to a MySQL database server from Python. It implements the Python Database API v2.0 and is built on top of the MySQL C API. Steps to use mysqlclient 1. First Upgrade pip command through > python –m pip install –upgrade pip 2. Install mysqlclient through pip install mysqlclient 3. After successful installation check through import mysqldb 4. If it is installed no error will be displayed otherwise error message will be displayed To install MySQLdb module, use the following command − For Ubuntu, use the following command - $ sudo apt-get install python-pip python-dev libmysqlclient-dev For Fedora, use the following command - $ sudo dnf install python python-devel mysql-devel redhat-rpm-config gc c For Python command prompt, use the following command - pip install MySQL-python Note − Make sure you have root privilege to install above module Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 7. Establish connection For database interface/database programming ,connection must be established.Before establishing connection there must be mysql installed on the system and a database and table is already created.In following way we can establish a connection with mysql database through mysql.connector. import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root“,database=“school”) print(mydb) Alternatively we can write the following statement if we are using mysqldb import MySQLdb mydb = MySQLdb.connect("localhost",“root",“root",“school" ) print(mydb) In both way we are specifying host,user,password and database name as arguments.database is optional argument if we want to create database through programming later on. After successful execution of above statements in python following out will be displayed <mysql.connector.connection.MySQLConnection object at 0x022624F0> Otherwise an error message will be shown. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 8. Cursor object : The MySQLCursor class instantiates objects that can execute operations such as SQL statements. Cursor objects interact with the MySQL server using a MySQLConnection object. How to create cursor object and use it import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root") mycursor=mydb.cursor() mycursor.execute("create database if not exists school") mycursor.execute("show databases") for x in mycursor: print(x) Through line 4 we are creating a database named school if it is already not created with the help of cursor object. Line 5 executes the sql query show databases and store result in mycursor as collection ,whose values are being fetched in x variable one by one. On execution of above program school database is created and a list of available databases is shown. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 9. How to create table at run time Table creation is very easy ,if we are already well versed in sql table creation then we have to just pass the create table query in execute() method of cursor object. But before table creation we must open the database.Here we are opening database school(through connect() method) before student table creation. import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",dat abase="school") mycursor=mydb.cursor() mycursor.execute("create table student(rollno int(3) primary key,name varchar(20),age int(2))") On successful execution of above program a table named student with three fields rollno,name,age will be created in school database. We can check student table in mysql shell also,if required. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 10. How to change table structure/(add,edit,remove colum of a table) at run time To modify the structure of the table we just have to use alter table query.Below program will add a column mark in the student table. import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd ="root",database="school") mycursor=mydb.cursor() mycursor.execute("alter table student add (marks int(3))") mycursor.execute("desc student") for x in mycursor: print(x) Above program will add a column marks in the table student and will display the structure of the table Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 11. Interface python with SQL Database How to insert record in a table at run time import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",databa se="school") mycursor=mydb.cursor() while 1==1: ch=int(input("enter -1 to exit any other no to insert record into student table")) if ch==-1: break rollno=int(input("Enter rollno")) class1=int(input("Enter Class")) name=input("Enter name") marks=int(input("Enter marks")) mycursor.execute("insert into student values('"+str(rollno)+"','"+name+"','"+str(class1)+"','"+str(marks)+"')") mydb.commit() Visit : python.mykvs.in for regular updates
  • 12. How to search records of a table at run time Below statement demonstrate the use of select query for searching specific record from a table. import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="ro ot",database="school") mycursor=mydb.cursor() nm=input("enter name") mycursor.execute("select * from student where name='"+nm+"'") for x in mycursor: print (x) Above statements will prompt a name from user,as user type the name ,that name is searched into the table student with the help of select query .result will be shown with the help of mycursor collection. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 13. How to fetch all records of a table at run time import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="ro ot",database="school") mycursor=mydb.cursor() mycursor.execute("select * from student") myrecords=mycursor.fetchall() for x in myrecords: print (x) MySQLCursor.fetchall() Method The method fetches all (or all remaining) rows of a query result set and returns a list of tuples. If no more rows are available, it returns an empty list. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 14. How to fetch one record of a table at run time import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc hool") mycursor=mydb.cursor() mycursor.execute("select * from student") row=mycursor.fetchone() while row is not None: print(row) row = mycursor.fetchone() MySQLCursor.fetchone() Method This method retrieves the next row of a query result set and returns a single sequence, or None if no more rows are available. By default, the returned tuple consists of data returned by the MySQL server, converted to Python objects. MySQLCursor.fetchmany() Method rows = cursor.fetchmany(size=1) This method fetches the next set of rows of a query result and returns a list of tuples. If no more rows are available, it returns an empty list. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 15. rowcount : Rows affected by Query. We can get number of rows affected by the query by using rowcount. We will use one SELECT query here. import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="s chool") mycursor=mydb.cursor() mycursor = mydb.cursor(buffered=True) mycursor.execute("select * from student") noofrows=mycursor.rowcount print("No of rows in student table are",noofrows) buffered=True We have used my_cursor as buffered cursor. my_cursor = my_connect.cursor(buffered=True) This type cursor fetches rows and buffers them after getting output from MySQL database. We can use such cursor as iterator. There is no point in using buffered cursor for single fetching of rows.If we don’t use buffered cursor then we will get -1 as output from rowcount Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 16. How to delete record of a table at run time import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc hool") mycursor=mydb.cursor() mycursor.execute("delete from student where rollno=1") mydb.commit() In above program delete query will delete a record with rollno=1.commit() method is necessary to call for database transaction. How to update record of a table at run time import mysql.connector mydb=mysql.connector.connect(host="localhost",user="root",passwd="root",database="sc hool") mycursor=mydb.cursor() mycursor.execute("update student set marks=99 where rollno=2") mydb.commit() In above program update query update the marks with 99 of rollno=2 Students are advised to develop menu driven program using above concepts for better understating of python mysql database interface. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 17. Manage Database Transaction Database transaction represents a single unit of work. Any operation which modifies the state of the MySQL database is a transaction. Python MySQL Connector provides the following method to manage database transactions. commit – MySQLConnection.commit() method sends a COMMIT statement to the MySQL server, committing the current transaction. rollback – MySQLConnection.rollback revert the changes made by the current transaction. AutoCommit – MySQLConnection.autocommit value can be assigned as True or False to enable or disable the auto-commit feature of MySQL. By default its value is False. Visit : python.mykvs.in for regular updates Interface python with SQL Database
  • 18. Manage Database Transaction try: conn = mysql.connector.connect(host='localhost',database='school', user='root', password='root') conn.autocommit = false cursor = conn.cursor() sql_update_query = """Update student set marks = 95 where rollno = 2""" cursor.execute(sql_update_query) print ("Record Updated successfully ") #Commit your changes conn.commit() except mysql.connector.Error as error : print("Failed to update record to database rollback: {}".format(error)) #reverting changes because of exception conn.rollback() finally: #closing database connection. if(conn.is_connected()): cursor.close() conn.close() print("connection is closed") In above program if update query is successfully executed then commit() method will be executed otherwise exception error part will be executed where revert of update query will be done due to error.At finally we are closing cursor as well as connection.To rollback or commit we have to set autocommit=false,just like conn.autocommit = false in above program otherwise rollback will not work Visit : python.mykvs.in for regular updates Interface python with SQL Database