Esercizi Eliminazione MySQL Python
Codegrind Team•Jul 10 2024
Qua trovate 10 esercizi sulla gestione dell’eliminazione di dati in un database MySQL utilizzando le librerie Python mysql-connector-python
e pymysql
. Gli esercizi includono sia approcci sequenziali che orientati agli oggetti (OOP), e si concentrano esclusivamente sull’eliminazione dei dati.
Esercizio 1: Eliminazione Singola con mysql-connector-python (Sequenziale)
Eliminare un singolo record da una tabella utilizzando mysql-connector-python.
import mysql.connector
def delete_single_data():
connection = mysql.connector.connect(host='localhost', user='user', password='password', database='testdb')
cursor = connection.cursor()
query = "DELETE FROM employees WHERE employee_id = %s"
employee_id = (1,)
cursor.execute(query, employee_id)
connection.commit()
print("Record eliminato con successo")
cursor.close()
connection.close()
delete_single_data()
Esercizio 2: Eliminazione Multipla con PyMySQL (OOP)
Eliminare più record contemporaneamente da una tabella utilizzando PyMySQL e OOP.
import pymysql
class Database:
def __init__(self):
self.connection = pymysql.connect(host='localhost', user='user', password='password', database='testdb')
def delete_multiple_data(self):
with self.connection.cursor() as cursor:
query = "DELETE FROM employees WHERE position = %s"
position = ("Intern",)
cursor.execute(query, position)
self.connection.commit()
print(f"{cursor.rowcount} record eliminati con successo")
def close(self):
self.connection.close()
db = Database()
db.delete_multiple_data()
db.close()
Esercizio 3: Eliminazione Condizionata con PyMySQL (Sequenziale)
Scrivere uno script per eliminare record con condizioni specifiche usando PyMySQL.
import pymysql
def delete_conditional_records():
connection = pymysql.connect(host='localhost', user='user', password='password', database='testdb')
cursor = connection.cursor()
query = "DELETE FROM products WHERE price < %s"
price = (50,)
cursor.execute(query, price)
connection.commit()
print(f"{cursor.rowcount} prodotti eliminati con successo")
cursor.close()
connection.close()
delete_conditional_records()
Esercizio 4: Eliminazione Tutto con mysql-connector-python (OOP)
Utilizzare mysql-connector-python per eliminare tutti i record da una tabella in modalità OOP.
import mysql.connector
class CompleteDeleteDatabase:
def __init__(self):
self.connection = mysql.connector.connect(host='localhost', user='user', password='password', database='testdb')
def delete_all(self, table_name):
cursor = self.connection.cursor()
query = f"DELETE FROM {table_name}"
cursor.execute(query)
self.connection.commit()
print(f"Tutti i record dalla tabella {table_name} sono stati eliminati")
cursor.close()
def close(self):
self.connection.close()
db = CompleteDeleteDatabase()
db.delete_all('temporary_data')
db.close()
Esercizio 5: Eliminazione Specifica con mysql-connector-python (Sequenziale)
Eliminare record specificando una condizione complessa con mysql-connector-python.
import mysql.connector
def delete_specific_records():
connection = mysql.connector.connect(host='localhost', user='user', password='password', database='testdb')
cursor = connection.cursor()
query = "DELETE FROM orders WHERE order_date < %s AND status = %s"
data = ("2022-01-01", "Pending")
cursor.execute(query, data)
connection.commit()
print(f"{cursor.rowcount} ordini eliminati con successo")
cursor.close()
connection.close()
delete_specific_records()
Esercizio 6: Eliminazione Multipla con mysql-connector-python (OOP)
Utilizzare mysql-connector-python per eliminare più record in modalità OOP.
import mysql.connector
class ProductDatabase:
def __init__(self):
self.connection = mysql.connector.connect(host='localhost', user='user', password='password', database='testdb')
def delete_products(self):
cursor = self.connection.cursor()
cursor.execute("DELETE FROM products WHERE quantity = 0")
self.connection.commit()
print(f"{cursor.rowcount} prodotti senza stock eliminati con successo")
cursor.close()
def close(self):
self.connection.close()
db = ProductDatabase()
db.delete_products()
db.close()
Esercizio 7: Eliminazione Aggregata con PyMySQL (Sequenziale)
Scrivere uno script per eseguire una eliminazione basata su un'aggregazione (es. DELETE WHERE id IN ...) usando PyMySQL.
import pymysql
def delete_aggregate_data():
connection = pymysql.connect(host='localhost', user='user', password='password', database='testdb')
cursor = connection.cursor()
subquery = "SELECT employee_id FROM employees WHERE hire_date < %s"
hire_date = ("2015-01-01",)
query = f"DELETE FROM employees WHERE employee_id IN ({subquery})"
cursor.execute(query, hire_date)
connection.commit()
print(f"{cursor.rowcount} dipendenti assunti prima del 2015 eliminati con successo")
cursor.close()
connection.close()
delete_aggregate_data()
Esercizio 8: Eliminazione Singola con PyMySQL (OOP)
Creare una classe per eliminare un singolo record da una tabella usando PyMySQL.
import pymysql
class UserDatabase:
def __init__(self):
self.connection = pymysql.connect(host='localhost', user='user', password='password', database='testdb')
def delete_user(self, user_id):
with self.connection.cursor() as cursor:
cursor.execute("DELETE FROM users WHERE user_id = %s", (user_id,))
self.connection.commit()
print("Utente eliminato con successo")
def close(self):
self.connection.close()
db = UserDatabase()
db.delete_user(3)
db.close()
Esercizio 9: Eliminazione Dettagliata con mysql-connector-python (Sequenziale)
Eliminare dettagli da una tabella filtrando i risultati in base a una condizione specifica usando mysql-connector-python.
import mysql.connector
def delete_detailed_records():
connection = mysql.connector.connect(host='localhost', user='user', password='password', database='testdb')
cursor = connection.cursor()
query = "DELETE FROM projects WHERE end_date IS NULL"
cursor.execute(query)
connection.commit()
print(f"{cursor.rowcount} progetti senza data di fine eliminati con successo")
cursor.close()
connection.close()
delete_detailed_records()
Esercizio 10: Eliminazione Completa con PyMySQL (OOP)
Creare una classe che elimina tutte le informazioni da una tabella specifica utilizzando PyMySQL.
import pymysql
class
CompleteDeleteDatabase:
def __init__(self):
self.connection = pymysql.connect(host='localhost', user='user', password='password', database='testdb')
def delete_all(self, table_name):
with self.connection.cursor() as cursor:
query = f"DELETE FROM {table_name}"
cursor.execute(query)
self.connection.commit()
print(f"Tutti i record dalla tabella {table_name} sono stati eliminati")
def close(self):
self.connection.close()
db = CompleteDeleteDatabase()
db.delete_all('temporary_logs')
db.close()