Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
123 views50 pages

Ranjeet Practical Project File

The document contains a practical file submitted by a student named Ranjeet of class 12th to their teacher Mahinder for the subject of Computer Science. The practical file covers topics like working with functions, data file handling, data structures (stack), SQL queries, and Python-MySQL connectivity. It includes 24 practical exercises on these topics that the student has completed for evaluation.

Uploaded by

aaryan28february
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views50 pages

Ranjeet Practical Project File

The document contains a practical file submitted by a student named Ranjeet of class 12th to their teacher Mahinder for the subject of Computer Science. The practical file covers topics like working with functions, data file handling, data structures (stack), SQL queries, and Python-MySQL connectivity. It includes 24 practical exercises on these topics that the student has completed for evaluation.

Uploaded by

aaryan28february
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 50

HERMANN GMEINER SCHOOL FARIDABAD

COMPUER SCIENCE

PRACTICAL FILE

BASED

ON

PYTHON & SQL

(Session -2023-24)

SUBMITTED TO: Mr. MAHINDER

HOD (COMPUTER SCIENCE)

SUBMITTED by : RANJEET

CLASS : 12th

ROLL NO :A

ACKNOWLEDGEMENT
I wish to express my deep sense of gratitude and indebtedness to our learned teacher Mr, Mahinder Aggrawal ,

PGT COMPUTER SCIENCE, (HERMANN GMEINER SCHOOL) for his invaluable help, advice and guidance in the
preparation of this project.
I am also greatly indebted to our principal and school authorities for providing me with the facilities and requisite
laboratory conditions for making this practical file.
I also extend my thanks to a number of teachers ,my classmates and friends who helped me to complete this
practical file successfully.

[AARYAN]

Page 1
CERTIFICATE

This is to certify that [RANJEET] , student of Class XII A, [HERMANN GMEINER SCHOOL] has completed

the PRACTICAL FILE during the academic year 2023-24 towards partial fulfillment of credit for the Computer Science

practical evaluation of CBSE SSCE-2024 and submitted satisfactory report, as compiled in the following pages, under my

supervision.

Total number of practical certified are : 24

Internal Examiner External Examiner

Index
SNo. Practical Date Signature

1 Working with functions

1 Write a python program using a function to print factorial number series from n to m numbers.

2 Write a python program to accept the username "Admin" as the default argument and password 123

entered by the user to allow login into the system.

3 Write a python program to demonstrate the concept of variable length argument to calculate the product

and power of the first 10 numbers.

2 Data File handling

4 Create a text file "intro.txt" in python and ask the user to write a single line of text by user input.

5 Write a program to count a total number of lines and count the total number of lines starting with 'A', 'B',

and 'C' from the file dfh.txt.

6 Write a program to replace all spaces from text with - (dash) from the file intro.txt.

7 Write a program to know the cursor position and print the text according to the below-given

specifications:

Print the initial position


Move the cursor to 4th position


Display next 5 characters


Page 2
Move the cursor to the next 10 characters

Print the current cursor position


Print next 10 characters from the current cursor position



SNo. Practical Date Signature

8 Write a program to store customer data into a binary file cust.dat using a dictionary and print them on

screen after reading them. The customer data contains ID as key, and name, city as values.

9 Write a program to update a record from student.dat file by its rollno. Display the updated record on

screen.

10 Write a program to write data into binary file marks.dat and display the records of students who scored

more than 95 marks.

11 Read a CSV file top5.csv and print the contents in a proper format. The data for top5.csv file are as

following:

SNo Batsman Team Runs Highest

1 K L Rahul KXI 670 132*

2 S Dhawan DC 618 106*

3 David Warner SRH 548 85*

4 Shreyas Iyer DC 519 88*

5 Ishan Kishan MI 516 99

12 Read a CSV file top5.csv and print them with tab delimiter. Ignore first row header to print in tabular

form.

13 Read a CSV file students.csv and print them with tab delimiter. Ignore first row header to print in tabular

form.

Field 1 Data Type

StudentID Integer

StudentName String

Score Integer

SNo. Practical Date Signature

Page 3
3 Data Structure - Stack

14 Write a program to implement a stack for the employee details (empno, name).

15 Write a python program to check whether a string is a palindrome or not using stack.

4 Database management (MySQL Queries)

16 Queries Set 1 (Fetching records)

17 Queries Set 2 (Based on Aggregate Functions)

18 Queries Set 3 (DDL Commands)

19 Queries set 4 (Based on Two Tables)

20 Queries Set 5 (Group by , Order By)

5 Python-MySQL Connectivity

21 Write a MySQL connectivity program in Python to

● Create a database school

● Create a table students with the specifications - ROLLNO integer, STNAME character(10) in

MySQL and perform the following operations:


o
Insert two records in it
o
Display the contents of the table

22 Perform all the operations with reference to table ‘students’ through MySQL-Python connectivity.

23 Write a menu-driven program to store data into a MySQL database named shop and table customer as
following:
1. Add customer details
2. Update customer details
3. Delete customer details
4.
Display all customer details

24 Modify the above program and display the customer details based on the following menu:
1. Display customer details by city
2. Display customer details by bill amount
3. Display customer details by name
4. Display customer details by category

Part 1 working with functions

1. Write a python program using a function to print factorial number series from n to m numbers.

def facto():

n=int(input("Enter the number:"))

f=1

Page 4
for i in range(1,n+1):

f*=i

print("Factorial of ",n, "is: ",f, end=" ")

facto()

2. Write a python program to accept username "Admin" as default argument and password 123 entered by user to allow login into the system.

def user_pass(password,username="Admin"):

if password=='123':

print("You have logged into system")

else:

print("Password is incorrect!!!!!!")

password=input("Enter the password:")

user_pass(password)

3. Write a python program to demonstrate the concept of variable length argument to calculate product and power of the first 10 numbers.

def sum10(*n):

total=0

for i in n:

total=total + i

print("Sum of first 10 Numbers:",total)

sum10(1,2,3,4,5,6,7,8,9,10)

Page 5
def product10(*n):

pr=1

for i in n:

pr=pr * i

print("Product of first 10 Numbers:",pr)

product10(1,2,3,4,5,6,7,8,9,10)

Part 2 Data file handling


4. Create a text file "intro.txt" in python and ask the user to write a single line text by user input.

def program4():

f = open("intro.txt","w")

text=input("Enter the text:")

f.write(text)

f.close(

program4()

5. Write a program to count a total number of lines and count the total number of lines starting with 'A', 'B', and 'C' from the file myfile.txt.

def program5():

with open("MyFile.txt","r") as f1:

data=f1.readlines()

cnt_lines=0 File Contents:


Python is super and trending language.
cnt_A=0 Allows to store the output in the files.

cnt_B=0 A text file stores textual data.


Binary files can handle binary data.
cnt_C=0 Binary files use pickle module to store data.
CSV files can handle tabular data.
for lines in data:
CSV files can be read easily using CSV reader object.
cnt_lines+=1

if lines[0]=='A':

cnt_A+=1

if lines[0]=='B':

cnt_B+=1

if lines[0]=='C':

cnt_C+=1

print("Total Number of lines are:",cnt_lines)

Page 6
print("Total Number of lines strating with A are:",cnt_A)

print("Total Number of lines strating with B are:",cnt_B)

print("Total Number of lines strating with C are:",cnt_C)

program5()

6. Write a program to replace all spaces from text with - (dash) from the file intro.txt.

def program6():

cnt = 0

with open("intro.txt","r") as f1:

data = f1.read()

data=data.replace(' ','-')

with open("intro.txt","w") as f1:

f1.write(data)

with open("intro.txt","r") as f1:

print(f1.read())

program6()

7. Write a program to know the cursor position and print the text according to the below-given specifications:

a. Print the initial position d. Move cursor to next 10 characters

b. Move the cursor to 4th position e. Print the current cursor position

c. Display next 5 characters f. Print next 10 characters from current position

def program7():

f = open("intro.txt","r")

print("Cusror initial position.")

print(f.tell())

f.seek(4,0)

print("Displaying values from 5th position.")

print(f.read(5))

f.seek(10,0)

print(f.tell())

print("Print cursor's current postion")

print(f.seek(7,0))

print("Displaying next 10 characters from cursor's current postion.")

print(f.read(10))

program7()

Page 7
8. Create a binary file client.dat to hold records like ClientID, Client name, and Address using the dictionary. Write functions to write data,

read them, and print on the screen.

import pickle

rec={}

def file_create():

f=open("client.dat","wb")

cno = int(input("Enter Client ID:"))

cname = input("Enter Client Name:")

address = input("Enter Address:")

rec={cno:[cname,address]}

pickle.dump(rec,f)

def read_data():

f = open("client.dat","rb")

print("*"*78)

print("Data stored in File....")

rec=pickle.load(f)

for i in rec:

print(rec[i])

file_create()

read_data()

9. Write a program to update a record from student.dat file by its rollno. Display the updated record on screen.

import pickle as p

Page 8
rec=[]

found=0

f=open("student.dat","rb+")

r=p.load(f)

print("Existing Record:",r)

ro=int(input("Enter roll no to update:"))

for i in r:

if ro==i[0]:

i[1]=input("Enter new name:")

found=1

break

if found==0:

print("record not found..")

else:

f.seek(0)

p.dump(r,f)

print('Record Updated...')

f.close()

f1=open('student.dat','rb+')

r=p.load(f1)

print("Updated Record:",r)

f1.close()

10. Write a program to write data into binary file marks.dat and display the records of students who scored more than 95 marks.

import pickle

def search_95plus():

f = open("marks.dat","ab")

while True:

Page 9
rn=int(input("Enter the rollno:"))

sname=input("Enter the name:")

marks=int(input("Enter the marks:"))

rec=[]

data=[rn,sname,marks]

rec.append(data)

pickle.dump(rec,f)

ch=input("Wnat more records?Yes:")

if ch.lower() not in 'yes':

break

f.close()

f = open("marks.dat","rb")

cnt=0

try:

while True:

data = pickle.load(f)

for s in data:

if s[2]>95:

cnt+=1

print("Record:",cnt)

print("RollNO:",s[0])

print("Name:",s[1])

print("Marks:",s[2])

except Exception:

f.close()

search_95plus()

11. Read a CSV file top5.csv and print the contents in a proper format. The data for top5.csv file are as following:

SNo Batsman Team Runs Highest

1 K L Rahul KXI 670 132*

2 S Dhawan DC 618 106*

3 David Warner SRH 548 85*

4 Shreyas Iyer DC 519 88*

5 Ishan Kishan MI 516 99

Page 10
from csv import reader

def pro1():

with open("top5.csv","r") as f:

d = reader(f)

data=list(d)

for i in data:

print(i)

pro1()

12. Read a CSV file top5.csv and print them with tab delimiter. Ignore first row header to print in tabular form.

from csv import reader

def pro12():

f = open("e:\\top5.csv","r")

dt = reader(f,delimiter=',')

headr_row=next(dt)

data = list(dt)

f.close()

for i in data:

for j in i:

print(j,"\t",end=" ")

print()

pro12()

13. Read a CSV file students.csv and print them with tab delimiter. Ignore first row header to print in tabular form.

Field 1 Data Type


from csv import writer
StudentID Integer

def pro13(): StudentName String

Score Integer
#Create Header First

f = open("result.csv","w",newline='\n')

dt = writer(f)

dt.writerow(['Student_ID','StudentName','Score'])

f.close()

Page 11
#Insert Data

f = open("result.csv","a",newline='\n')

while True:

st_id= int(input("Enter Student ID:"))

st_name = input("Enter Student name:")

st_score = input("Enter score:")

dt = writer(f)

dt.writerow([st_id,st_name,st_score])

ch=input("Want to insert More records?(y or Y):")

ch=ch.lower()

if ch !='y':

break

print("Record has been added.")

f.close()

pro13()

Part 3 Data Structure


14. Write a menu-driven python program to implement stack operation.

def check_stack_isEmpty(stk):

if stk==[]:

return True

else:

return False

# An empty list to store stack elements, initially empty

s=[]

top = None # This is top pointer for push and pop

def main_menu():

while True:

Page 12
print("Stack Implementation")

print("1 - Push")

print("2 - Pop")

print("3 - Peek")

print("4 - Display")

print("5 - Exit")

ch = int(input("Enter the your choice:"))

if ch==1:

el = int(input("Enter the value to push an element:"))

push(s,el)

elif ch==2:

e=pop_stack(s)

if e=="UnderFlow":

print("Stack is underflow!")

else:

print("Element popped:",e)

elif ch==3:

e=pop_stack(s)

if e=="UnderFlow":

print("Stack is underflow!")

else:

print("The element on top is:",e)

elif ch==4:

display(s)

elif ch==5:

break

else:

print("Sorry,invalid option")

Page 13
def push(stk,e):

stk.append(e)

top = len(stk)-1

def display(stk):

if check_stack_isEmpty(stk):

print("Stack is Empty")

else:

top = len(stk)-1

print(stk[top],"-Top")

for i in range(top-1,-1,-1):

print(stk[i])

def pop_stack(stk):

if check_stack_isEmpty(stk):

return "UnderFlow"

else:

e = stk.pop()

if len(stk)==0:

top = None

else:

top = len(stk)-1

return e

def peek(stk):

if check_stack_isEmpty(stk):

return "UnderFlow"

else:

top = len(stk)-1

return stk[top]

Page 14
15. Write a program to implement a stack for the employee details (empno, name).

stk=[]

top=-1

def line():

print('~'*100)

def isEmpty():

global stk

if stk==[]:

print("Stack is empty!!!")

else:

None

def push():

global stk

global top

empno=int(input("Enter the employee number to push:"))

ename=input("Enter the employee name to push:")

stk.append([empno,ename])

top=len(stk)-1

def display():

global stk

global top

if top==-1:

isEmpty()

else:

top=len(stk)-1

print(stk[top],"<-top")

for i in range(top-1,-1,-1):

print(stk[i])

def pop_ele():

Page 15
global stk

global top

if top==-1:

isEmpty()

else:

stk.pop()

top=top-1

def main():

while True:

line()

print("1. Push")

print("2. Pop")

print("3. Display")

print("4. Exit")

ch=int(input("Enter your choice:"))

if ch==1:nm

push()

print("Element Pushed")

elif ch==2:

pop_ele()

elif ch==3:

display()

elif ch==4:

break

else:

print("Invalid Choice")

16. Write a python program to check whether a string is a palindrome or not using stack.

stack = []

Page 16
top = -1

# push function

def push(ele):

global top

top += 1

stack[top] = ele

# pop function

def pop():

global top

ele = stack[top]

top -= 1

return ele

# Function that returns 1 if string is a palindrome

def isPalindrome(string):

global stack

length = len(string)

# Allocating the memory for the stack

stack = ['0'] * (length + 1)

# Finding the mid

mid = length // 2

i=0

while i < mid:

push(string[i])

i += 1

# Checking if the length of the string is odd then neglect the middle character

if length % 2 != 0:

i += 1

# While not the end of the string

Page 17
while i < length:

ele = pop()

# If the characters differ then the given string is not a palindrome

if ele != string[i]:

return False

i += 1

return True

string = input("Enter string to check:")

if isPalindrome(string):

print("Yes, the string is a palindrome")

else:

print("No, the string is not a palindrome")

Part 4 sql queries


1. Consider the following MOVIE table and write the SQL queries based on it.

Movie_ID MovieName Type ReleaseDate ProductionCost BusinessCost

M001 Dahek Action 2022/01/26 1245000 1300000

M002 Attack Action 2022/01/28 1120000 1250000

M003 Looop Lapeta Thriller 2022/02/01 250000 300000

M004 Badhai Do Drama 2022/02/04 720000 68000

M005 Shabaash Mithu Biography 2022/02/04 1000000 800000

Page 18
M006 Gehraiyaan Romance 2022/02/11 150000 120000

a) Display all information from movie.

b) Display the type of movies.

c) Display movieid, moviename, total_eraning by showing the business done by the movies. Claculate the business done by movie using the sum of

productioncost and businesscost.

d) Display movieid, moviename and productioncost for all movies with productioncost greater thatn 150000 and less than 1000000.

e) Display the movie of type action and romance.

f) Display the list of movies which are going to release in February, 2022.

Answers:

a) select * from movie;

b) select distinct from a movie;

c) select movieid, moviename, productioncost + businesscost "total earning" from movie;

d) select movie_id,moviename, productioncost from movie where producst is >150000 and <1000000;

Page 19
e) select moviename from movie where type ='action' or type='romance';

f) select moviename from movie where month(releasedate)=2;

2. Consider the given table patient and Write following queries:

a) Display the total charges of patient admitted in the month of November.

b) Display the eldest patient with name and age.

c) Count the unique departments.

d) Display an average charges.

Page 20
Answers:

a) select sum(charges) from patient

where dateofadm like '%-11-%';

b) select pname,max(age) from patient;


c) Select count(distinct department) from patient;

d) Select avg(charges) from patient;


3. Suppose your school management has decided to conduct cricket matches between

students of Class XI and Class XII. Students of each class are asked to join any one of the

four teams – Team Titan, Team Rockers, Team Magnet and Team Hurricane. During summer

vacations, various matches will be conducted between these teams. Help your sports teacher

to do the following:

a) Create a database “Sports”.

b) Create a table “TEAM” with following considerations:

a. It should have a column TeamID for storing an integer value between 1 to 9, which refers to unique identification of a team.

b. Each TeamID should have its associated name (TeamName), which should be a string of length not less than 10 characters.

c. Using table level constraint, make TeamID as the primary key.

c) Show the structure of the table TEAM using a SQL statement.

d) As per the preferences of the students four teams were formed as given below. Insert these four rows in TEAM table:

a. Row 1: (1, Tehlka)

b. Row 2: (2, Toofan)

c. Row 3: (3, Aandhi)

d. Row 3: (4, Shailab)

Page 21
e) Show the contents of the table TEAM using a DML statement.

f) Now create another table MATCH_DETAILS and insert data as shown below. Choose appropriate data types and constraints for each attribute.

MatchID MatchDate FirstTeamID SecondTeamID FirstTeamScore SecondTeamScore

M1 2021/12/20 1 2 107 93

M2 2021/12/21 3 4 156 158

M3 2021/12/22 1 3 86 81

M4 2021/12/23 2 4 65 67

M5 2021/12/24 1 4 52 88

M6 2021/12/25 2 3 97 68

Answers:

a) create database sports;

b) Creating table with the given specification

create table team

(teamid int(1),

teamname varchar(10), primary key(teamid));

c) desc team;

Page 22
Inserting data:

mqsql> insert into team values(1,'Tehlka');

Show the content of table - team:


select * from team;

Page 23
Creating another table:

create table match_details

-> (matchid varchar(2) primary key,

-> matchdate date,

-> firstteamid int(1) references team(teamid),

-> secondteamid int(1) references team(teamid),

-> firstteamscore int(3),

-> secondteamscore int(3));

Page 24
4. Write following queries:

a) Display the matchid, teamid, teamscore whoscored more than 70 in first ining along with team name.

b) Display matchid, teamname and secondteamscore between 100 to 160.

c) Display matchid, teamnames along with matchdates.

d) Display unique team names

e) Display matchid and matchdate played by Anadhi and Shailab.

Answers:

a) select match_details.matchid, match_details.firstteamid, team.teamname,match_details.firstteamscore

from match_details, team where match_details.firstteamid = team.teamid and match_details.first

b) select match_details.matchid, match_details.firstteamid, team.teamname,match_details.firstteamscore

from match_details, team where match_details.firstteamid = team.teamid and match_details.firstteamscore>70;

Page 25
c) select matchid, teamname, firstteamid, secondteamid, matchdate from match_details, team where

match_details.firstteamid = team.teamid;

d) select distinct(teamname) from match_details, team where match_details.firstteamid = team.teamid;

e) select matchid,matchdate from match_details, team where match_details.firstteamid = team.teamid and

team.teamname in ('Aandhi','Shailab');

5. Consider the following table and write the queries:

itemno Item dcode qty unitprice stockdate

Page 26
S005 Ballpen 102 100 10 2018/04/22

S003 Gel Pen 101 150 15 2018/03/18

S002 Pencil 102 125 5 2018/02/25

S006 Eraser 101 200 3 2018/01/12

S001 Sharpner 103 210 5 2018/06/11

S004 Compass 102 60 35 2018/05/10

S009 A4 Papers 102 160 5 2018/07/17

a) Display all the items in the ascending order of stockdate.

b) Display maximum price of items for each dealer individually as per dcode from stock.

c) Display all the items in descending orders of itemnames.

d) Display average price of items for each dealer individually as per doce from stock which avergae price is more than 5.

e) Diisplay the sum of quantity for each dcode.

Answers:

a) select * from stock order by stockdate;

b) select dcode,max(unitprice) from stock group by code;

Page 27
c) select * from stock order by item desc;

d) select dcode,avg(unitprice) from stock group by dcode having avg(unitprice)>5;

e) select dcode,sum(qty) from stock group by dcode;

Part 5 Python Database connectivity

1. Write a MySQL connectivity program in Python to

● Create a database school

● Create a table students with the specifications - ROLLNO integer, STNAME character(10) in MySQL and perform the following operations:

o
Insert two records in it

Page 28
o
Display the contents of the table

2. Perform all the operations with reference to table ‘students’ through MySQL-Python connectivity.

Answers:

1. Using pymysql - Code:

import pymysql as ms

#Function to create Database as per users choice

def c_database():

try:

dn=input("Enter Database Name=")

c.execute("create database {}".format(dn))

c.execute("use {}".format(dn))

print("Database created successfully")

except Exception as a:

print("Database Error",a)

#Function to Drop Database as per users choice

def d_database():

try:

dn=input("Enter Database Name to be dropped=")

c.execute("drop database {}".format(dn))

print("Database deleted sucessfully")

except Exception as a:

print("Database Drop Error",a)

Page 29
#Function to create Table

def c_table():

try:

c.execute('''create table students

rollno int(3),

stname varchar(20)

);

''')

print("Table created successfully")

except Exception as a:

print("Create Table Error",a)

#Function to Insert Data

def e_data():

try:

while True:

rno=int(input("Enter student rollno="))

name=input("Enter student name=")

c.execute("use {}".format('school'))

c.execute("insert into students values({},'{}');".format(rno,name))

db.commit()

choice=input("Do you want to add more record<y/n>=")

if choice in "Nn":

break

except Exception as a:

print("Insert Record Error",a)

#Function to Display Data

Page 30
def d_data():

try:

c.execute("select * from students")

data=c.fetchall()

for i in data:

print(i)

except Exception as a:

print("Display Record Error",a)

db=ms.connect(host="localhost",user="root",password="root")

c=db.cursor()

while True:

print("MENU\n1. Create Database\n2. Drop Database \n3. Create Table\n4. Insert Record \n5. Display Entire Data\n6. Exit")

choice=int(input("Enter your choice<1-6>="))

if choice==1:

c_database()

elif choice==2:

d_database()

elif choice==3:

c_table()

elif choice==4:

e_data()

elif choice==5:

d_data()

elif choice==6:

break

else:

print("Wrong option selected")

Output:

Page 31
2. using mysqlconnector

import mysql.connector as ms

db=ms.connect(host="localhost",user="root",passwd="root",database='school')

cn=db.cursor()

def insert_rec():

try:

while True:

rn=int(input("Enter roll number:"))

sname=input("Enter name:")

marks=float(input("Enter marks:"))

gr=input("Enter grade:")

cn.execute("insert into students values({},'{}',{},'{}')".format(rn,sname,marks,gr))

db.commit()

ch=input("Want more records? Press (N/n) to stop entry:")

if ch in 'Nn':

break

except Exception as e:

print("Error", e)

Page 32
def update_rec():

try:

rn=int(input("Enter rollno to update:"))

marks=float(input("Enter new marks:"))

gr=input("Enter Grade:")

cn.execute("update students set marks={},grade='{}' where rno={}".format(marks,gr,rn))

db.commit()

except Exception as e:

print("Error",e)

def delete_rec():

try:

rn=int(input("Enter rollno to delete:"))

cn.execute("delete from students where rno={}".format(rn))

db.commit()

except Exception as e:

print("Error",e)

def view_rec():

try:

cn.execute("select * from students")

import mysql.connector as ms

db=ms.connect(host="localhost",user="root",passwd="root",database='school')

cn=db.cursor()

def insert_rec():

try:

while True:

Page 33
rn=int(input("Enter roll number:"))

sname=input("Enter name:")

marks=float(input("Enter marks:"))

gr=input("Enter grade:")

cn.execute("insert into students values({},'{}',{},'{}')".format(rn,sname,marks,gr))

db.commit()

ch=input("Want more records? Press (N/n) to stop entry:")

if ch in 'Nn':

break

except Exception as e:

print("Error", e)

def update_rec():

try:

rn=int(input("Enter rollno to update:"))

marks=float(input("Enter new marks:"))

gr=input("Enter Grade:")

cn.execute("update students set marks={},grade='{}' where rno={}".format(marks,gr,rn))

db.commit()

except Exception as e:

print("Error",e)

def delete_rec():

Page 34
try:

rn=int(input("Enter rollno to delete:"))

cn.execute("delete from students where rno={}".format(rn))

db.commit()

except Exception as e:

print("Error",e)

def view_rec():

try:

cn.execute("select * from students")

data=c.fetchall()

for i in data:

print(i)

except Exception as e:

print("Error",e)

while True:

print("MENU\n1. Insert Record\n2. Update Record \n3. Delete Record\n4. Display Record \n5. Exit")

ch=int(input("Enter your choice<1-4>="))

if ch==1:

insert_rec()

elif ch==2:

update_rec()

Page 35
elif ch==3:

delete_rec()

elif ch==4:

view_rec()

elif ch==5:

break

else:

print("Wrong option selected")

except Exception as e:

print("Error",e)

while True:

print("MENU\n1. Insert Record\n2. Update Record \n3. Delete Record\n4. Display Record \n5. Exit")

ch=int(input("Enter your choice<1-4>="))

if ch==1:

insert_rec()

elif ch==2:

update_rec()

elif ch==3:

delete_rec()

elif ch==4:

view_rec()

elif ch==5:

break

Page 36
else:

print("Wrong option selected")

Output:

Page 37
3. Write a menu-driven program to store data into a MySQL database named shop and table customer as following:

1. Add customer details


Page 38
2. Update customer details

3. Delete customer details

4. Display all customer details

import mysql.connector as ms

db=ms.connect(host="localhost",user="root",passwd="root",database='mydb')

cn=db.cursor()

def insert_rec():

try:

while True:

cid=int(input("Enter customer id:"))

cname=input("Enter name:")

city=input("Enter city:")

bill_amt=float(input("Enter bill amount:"))

cat=input("Enter category:")

cn.execute("insert into customer values({},'{}','{}',{},'{}')".format(cid,cname,city,bill_amt,cat))

db.commit()

ch=input("Want more records? Press (N/n) to stop entry:")

if ch in 'Nn':

break

except Exception as e:

print("Error", e)

def update_rec():

try:

cn.execute("select * from customer")

data=cn.fetchall()

for i in data:

ci=i[0]

Page 39
cna=i[1]

ct=i[2]

b=i[3]

c=i[4]

cid=int(input("Enter customer id to update:"))

if cid==ci:

ch_cname=input("Want to update Name, Press 'Y':")

if ch_cname.lower()=='y':

cname=input("Enter new name:")

else:

cname=cna

ch_city=input("Want to update city, Press 'Y':")

if ch_city.lower()=='y':

city=input("Enter new city:")

else:

city=ct

ch=input("Want to update bill amount, Press 'Y':")

if ch.lower()=='y':

bill_amt=float(input("Enter new bill amount:"))

else:

bill_amt=b

ch_cat=input("Want to update Category, Press 'Y':")

if ch_cat.lower()=='y':

cat=input("Enter new category:")

else:

cat=c

cn.execute("update customer set cname='{}', city='{}', bill_amt={},category='{}' where cust_id={}".format(cname,city,bill_amt,cat,cid))

db.commit()

Page 40
else:

print("Record Not Found...")

except Exception as e:

print("Error",e)

def delete_rec():

try:

cid=int(input("Enter rollno to delete:"))

cn.execute("delete from customer where cust_id={}".format(cid))

db.commit()

except Exception as e:

print("Error",e)

def view_rec():

try:

cn.execute("select * from customer")

data=cn.fetchall()

cnt=0

for i in data:

cnt=cnt+1

print("Record:",cnt)

print('~'*50)

print("Customer ID:",i[0])

print("Customer Name:",i[1])

print("City:",i[2])

print("Bill Amount:",i[3])

print("Category:",i[4])

print('~'*50)

except Exception as e:

print("Error",e)

Page 41
while True:

print("MENU\n1. Insert Record\n2. Update Record \n3. Delete Record\n4. Display Record \n5. Exit")

ch=int(input("Enter your choice<1-4>="))

if ch==1:

insert_rec()

elif ch==2:

update_rec()

elif ch==3:

delete_rec()

elif ch==4:

view_rec()

elif ch==5:

break

else:

print("Wrong option selected")

Output:

Page 42
Page 43
4. Modify the above program and display the customer details based on the following menu:

1. Display customer details by city

2. Display customer details by bill amount

3. Display customer details by name

4. Display customer details by category

Page 44
import mysql.connector as ms

db=ms.connect(host="localhost",user="root",passwd="root",database='mydb')

cn=db.cursor()

def byCity():

try:

city=input("Enter city to search:")

cn.execute("select * from customer where city='{}'".format(city))

data=cn.fetchall()

if data!=[]:

cnt=0

for i in data:

cnt=cnt+1

print('~'*100)

print("Record:",cnt)

print('~'*100)

print("Customer ID:",i[0])

print("Customer Name:",i[1])

print("City:",i[2])

print("Bill Amount:",i[3])

print("Category:",i[4])

else:

print("No records found for city ", city)

except Exception as e:

print("Error",e)

def byBillAmt():

try:

Page 45
ba=input("Enter the bill amount:")

cn.execute("select * from customer where bill_amt={}".format(ba))

data=cn.fetchall()

if data!=[]:

cnt=0

for i in data:

cnt=cnt+1

print('~'*100)

print("Record:",cnt)

print('~'*100)

print("Customer ID:",i[0])

print("Customer Name:",i[1])

print("City:",i[2])

print("Bill Amount:",i[3])

print("Category:",i[4])

else:

print("No records found for bill amount ", ba)

except Exception as e:

print("Error",e)

def byName():

try:

name=input("Enter the name:")

cn.execute("select * from customer where cname='{}'".format(name))

data=cn.fetchall()

if data!=[]:

cnt=0

for i in data:

Page 46
cnt=cnt+1

print('~'*100)

print("Record:",cnt)

print('~'*100)

print("Customer ID:",i[0])

print("Customer Name:",i[1])

print("City:",i[2])

print("Bill Amount:",i[3])

print("Category:",i[4])

else:

print("No records found for ", name)

except Exception as e:

print("Error",e)

def byCat():

try:

cat=input("Enter the cat:")

cn.execute("select * from customer where category='{}'".format(cat))

data=cn.fetchall()

if data!=[]:

cnt=0

for i in data:

cnt=cnt+1

print('~'*100)

print("Record:",cnt)

print('~'*100)

print("Customer ID:",i[0])

print("Customer Name:",i[1])

Page 47
print("City:",i[2])

print("Bill Amount:",i[3])

print("Category:",i[4])

else:

print("No records found for category ", cat)

except Exception as e:

print("Error",e)

while True:

print('''

MENU

1.Display customer details by city

2.Display customer details by bill amount

3.Display customer details by name

4.Display customer details by category

5.Exit

''')

ch=int(input("Enter your choice<1-4>="))

if ch==1:

byCity()

elif ch==2:

byBillAmt()

elif ch==3:

byName()

elif ch==4:

byCat()

elif ch==5:

Page 48
break

else:

print("Wrong option selected")

Output:

Page 49
Page 50

You might also like