Aim: To establish a connection between a Python application and an SQL
database for executing queries and managing data.
import [Link] as mcon
mycon=[Link](host="localhost",user="root",passwd='adis',database="hadi")
mycur=[Link]()
header=[]
def create():
try:
query="create table student1 (regno int(5) primary key, name varchar(15),
stream varchar(15), avg int(7));"
[Link](query)
except Exception as e:
print(e)
def insert():
try:
regno=int(input("Enter regno: "))
name=input("Enter name: ")
stream=input("Enter stream: ")
avg=int(input("Enter avg: "))
query="insert into student1 values({},'{}','{}',
{})".format(regno,name,stream,avg)
[Link](query)
[Link]()
except Exception as e:
print(e)
def delete():
try:
regno=int(input("Enter regno to be removed: "))
query="delete from student1 where regno={}".format(regno)
[Link](query)
[Link]()
except Exception as e:
print(e)
def update():
try:
regno=int(input("Enter regno to be updated: "))
name=input("Enter new name: ")
stream=input("Enter new stream: ")
avg=int(input("Enter new avg: "))
query="update student1 set name='{}',stream='{}',avg={} where
regno={}".format(name,stream,avg,regno)
[Link](query)
[Link]()
except Exception as e:
print(e)
def display_all():
try:
query="select * from student1"
[Link](query)
rs=[Link]()
print("regno name stream avg",end=' ')
for i in header:
print(i,end=' ')
print()
for i in rs:
for j in i:
print(j,end=' ')
print()
except Exception as e:
print(e)
def alter_add():
try:
column=input("Enter column to be added: ")
datatype=input("Enter datatype of column: ")
query="alter table student1 add {} {}".format(column,datatype)
[Link](query)
[Link]()
global header
[Link](column)
except Exception as e:
print(e)
def alter_drop():
try:
column=input("Enter column to be dropped: ")
query="alter table student1 drop {}".format(column)
global header
[Link](column)
[Link](query)
[Link]()
except Exception as e:
print(e)
def searchbyname():
try:
name=input("Enter name to search based on: ")
query="select * from student1 where name='{}'".format(name)
[Link](query)
rs=[Link]()
print("regno name stream avg",end=' ')
for i in header:
print(i,end=' ')
print()
for i in rs:
for j in i:
print(j,end=' ')
print()
except Exception as e:
print(e)
def searchbyregno():
try:
regno=int(input("Enter regno to search based on: "))
query="select * from student1 where regno={}".format(regno)
[Link](query)
rs=[Link]()
print("regno name stream avg",end=' ')
for i in header:
print(i,end=' ')
print()
for i in rs:
for j in i:
print(j,end=' ')
print()
except Exception as e:
print(e)
def searchbystream():
try:
stream=input("Enter stream to search based on: ")
query="select * from student1 where stream='{}'".format(stream)
[Link](query)
rs=[Link]()
print("regno name stream avg",end=' ')
for i in header:
print(i,end=' ')
print()
for i in rs:
for j in i:
print(j,end=' ')
print()
except Exception as e:
print(e)
def menu():
while True:
print()
print("1. display_all")
print("2. searchbyname")
print("3. searchbyregno")
print("4. searchbystream")
print("5. insert")
print("6. delete")
print("7. alter_add")
print("8. alter_drop")
print("9. update")
print("10. exit")
ch=int(input("enter choice: "))
print()
if ch==1:
display_all()
elif ch==2:
searchbyname()
elif ch==3:
searchbyregno()
elif ch==4:
searchbystream()
elif ch==5:
insert()
elif ch==6:
delete()
elif ch==7:
alter_add()
elif ch==8:
alter_drop()
elif ch==9:
update()
elif ch==10:
break
print("------------------------------------------------------")
menu()
Output:
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 1
regno name stream avg
1 aarav pcmc 95
2 hadi pcmc 92
3 salam pcmb 99
4 aadil pcmb 92
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 2
Enter name to search based on: hadi
regno name stream avg
2 hadi pcmc 92
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 3
Enter regno to search based on: 2
regno name stream avg
2 hadi pcmc 92
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 4
Enter stream to search based on: pcmc
regno name stream avg
1 aarav pcmc 95
2 hadi pcmc 92
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 5
Enter regno: 5
Enter name: alman
Enter stream: pcmc
Enter avg: 95
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 1
regno name stream avg
1 aarav pcmc 95
2 hadi pcmc 92
3 salam pcmb 99
4 aadil pcmb 92
5 alman pcmc 95
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 6
Enter regno to be removed: 5
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 7
Enter column to be added: rank
Enter datatype of column: char(1)
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 1
regno name stream avg rank
1 aarav pcmc 95 None
2 hadi pcmc 92 None
3 salam pcmb 99 None
4 aadil pcmb 92 None
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 8
Enter column to be dropped: rank
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 9
Enter regno to be updated: 4
Enter new name: adiil
Enter new stream: pcmc
Enter new avg: 99
------------------------------------------------------
1. display_all
2. searchbyname
3. searchbyregno
4. searchbystream
5. insert
6. delete
7. alter_add
8. alter_drop
9. update
10. exit
enter choice: 10
------------------------------------------------------
Result: Successfully created a connection between the Python application
and the SQL database.