Trong phần này, chúng ta sẽ cùng nhau viết một hàm xóa tên sinh viên khỏi bảng SinhVien.
Chúng ta sẽ sử dụng lệnh DELETE để viết hàm xóa Hàm sẽ có tên là deleteById().Đây là hàm deleteById()
def deleteById(self, mycursor):
tiep_tuc = "Y"
while tiep_tuc == "Y":
idSV = input("Nhap ID cua sinh vien muon xoa: ")
try:
sql = "DELETE FROM SinhVien WHERE ID = %s"
val = (idSV,)
mycursor.execute(sql,val)
except Error as error:
print(error)
tiep_tuc = input("Tiep tuc ? Y/N ")
Chúng ta sẽ thêm hàm vào class QuanLySinhVienSQL() như sau
from SinhVienSQL import SinhVienSQL
import mysql.connector
from mysql.connector import Error
class QuanLySinhVienSQL:
# nhapSinhVien(self):
#print("Hello")
def mydbConnection(self, host_name, user_name, user_password):
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password
)
print("Connection to MySQL DB successful")
except Error as e:
print(f"The error '{e}' occurred")
return connection
def taoCSDL(self, mycursor):
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()
database_exists = False
for database in databases:
if 'mydatabase' in database:
database_exists = True
break
if database_exists:
print("Database Ton Tai")
else:
print("Database Khong Ton Tai")
mycursor.execute("CREATE DATABASE sinhviendatabase")
def taoBang(self, mycursor):
# Kiem tra table co ton tai hay khong
mycursor.execute("USE sinhviendatabase")
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()
table_exists = False
for (table,) in tables:
if ('sinhvien',) in tables:
print("Table Ton Tai!!")
table_exists = True
break
if table_exists:
print("Table Ton Tai")
else:
print("Table Khong Ton Tai")
mycursor.execute(
"CREATE TABLE SinhVien (id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, ten VARCHAR(255), gioitinh VARCHAR(100), diachi VARCHAR(255), nganhhoc VARCHAR(100))")
def nhapSinhVien(self, mycursor):
tiep_tuc = "Y"
while tiep_tuc == "Y":
tenSV = input("Nhap Ho va Ten cua sinh vien: ")
gioitinhSV = input("Nhap Gioi Tinh sinh vien: ")
diachiSV = input("Nhap Dia Chi cua sinh vien: ")
nganhhocSV = input("Nhap Nganh Hoc sinh vien: ")
try:
sql = "INSERT INTO SinhVien (ten, gioitinh, diachi, nganhhoc) VALUES (%s, %s, %s, %s)"
val = (tenSV, gioitinhSV, diachiSV, nganhhocSV)
mycursor.execute(sql, val)
except Error as error:
print(error)
tiep_tuc = input("Tiep tuc ? Y/N ")
def showSinhVien(self, mycursor):
try:
mycursor.execute("SELECT * FROM SinhVien")
row = mycursor.fetchone()
while row is not None:
print(row)
row = mycursor.fetchone()
except Error as e:
print(e)
def deleteById(self, mycursor):
tiep_tuc = "Y"
while tiep_tuc == "Y":
idSV = input("Nhap ID cua sinh vien muon xoa: ")
try:
sql = "DELETE FROM SinhVien WHERE ID = %s"
val = (idSV,)
mycursor.execute(sql,val)
except Error as error:
print(error)
tiep_tuc = input("Tiep tuc ? Y/N ")
Để thực thi hàm deleteById() chúng ta cần gọi nó trong file MainSQL.py như sau
import mysql.connector
from QuanLySinhVienSQL import QuanLySinhVienSQL
# khởi tạo một đối tượng QuanLySinhVienSQL để quản lý sinh viên
qlsv = QuanLySinhVienSQL()
mydb = qlsv.mydbConnection("localhost", "root", "password của bạn")
mycursor = mydb.cursor()
qlsv.taoCSDL(mycursor)
qlsv.taoBang(mycursor)
while (1 == 1):
print("***********************MENU***********")
print("** 1. Them sinh vien. **")
print("** 2. Cap nhat thong tin sinh vien bang ID **")
print("** 3. Xoa sinh vien theo ID. **")
print("** 4. Tim kiem sinh vien theo ten. **")
print("** 5. Hien thi danh sach sinh vien. **")
print("** 6. Tim kiem sinh vien theo ID. **")
print("** 0. Thoat **")
print("**************************************")
key = int(input("Nhap tuy chon de bat dau chương trinh: "))
if (key == 1):
qlsv.nhapSinhVien(mycursor)
mydb.commit()
print("\nThem sinh vien thanh cong!")
elif (key == 2):
print("\nCap nhat sinh vien thanh cong!")
elif (key == 3):
qlsv.deleteById(mycursor)
mydb.commit()
print("\nXoa sinh vien thanh cong!")
elif (key == 4):
print("\nKet qua tim kiem!")
elif (key == 5):
qlsv.showSinhVien(mycursor)
print("\nDanh sach sinh vien!")
elif (key == 6):
print("\nTim kiem sinh vien theo ID!")
elif (key == 0):
print("\nDa thoat khoi chương trinh thanh cong!")
break
else:
print("\nKhong co chuc nang nay!")
Bấm Run để chạy MainSQL.py, chúng ta đã có thể xóa một record bất kỳ bằng cách cung cấp cho chương trình ID của sinh viên.
Không có nhận xét nào:
Đăng nhận xét