Semaine 7

This commit is contained in:
gauvainboiche
2026-03-20 21:26:23 +01:00
parent 74d0c3f75b
commit 606e43e53f
69 changed files with 2343 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
import os
from dotenv import load_dotenv
from mysql.connector import Error, connect, errorcode
load_dotenv()
db_host = os.environ.get("DB_HOST")
db_user = os.environ.get("DB_USER")
db_password = os.environ.get("DB_PASSWORD")
db_name = os.environ.get("DB_NAME")
try:
connection = connect(
host= db_host,
user= db_user,
password= db_password,
database= db_name
)
cursor = connection.cursor()
### Exemple 1 : commande
# cursor.execute("SELECT * FROM employee LIMIT 5")
# results = cursor.fetchone()
# print(results)
# ### Exemple 2 : requête complète comme variable
# query = """
# CREATE TABLE IF NOT EXISTS movies (
# id INT AUTO_INCREMENT PRIMARY KEY,
# title VARCHAR(100),
# release_year YEAR(4),
# genre VARCHAR(100),
# collection_in_mil DECIMAL(4,1)
# )
# """
# cursor.execute(query)
# # CIUD : Create, Insert, Update, Delete => Commit
# connection.commit()
### Exemple 3 : multiple requête
insert_query = """
INSERT INTO movies (title, release_year, genre, collection_in_mil)
VALUES
("Forrest Gump", 1994, "Drama", 330.2),
("INception", 2010, "Aventure", 293.7),
("Titanic", 1995, "Drama", 530.4)
"""
create_query = """
CREATE TABLE IF NOT EXISTS reviewers (
id INT AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(100),
lastname VARCHAR(100)
)
"""
insert_query_2 = """
INSERT INTO reviewers (firstname, lastname)
VALUES (%s, %s)
"""
reviewers = [
("Jean", "FAIBLE"),
("Alain", "TERIEUR"),
("Tabatha", "CLOISON"),
("Ahmed", "BIEN")
]
cursor.execute(insert_query)
cursor.execute(create_query)
cursor.executemany(insert_query_2, reviewers)
connection.commit()
cursor.execute("SELECT * FROM movies")
# lire un par un
resultat = cursor.fetchone()
print(resultat)
while resultat is not None:
print(resultat)
resultat = cursor.fetchone()
# utilisation de lot
cursor.execute("SELECT * FROM movies")
batch = cursor.fetchmany(size= 4)
while batch:
print("----")
for row in batch:
print(row)
batch = cursor.fetchmany(4)
# Out of Memory
insert_movies_query = """
INSERT INTO movies (title, release_year, genre, collection_in_mil)
VALUES (%s, %s, %s, %s)
"""
with open("movies.csv", "r") as fichier:
reader = csv.reader(fichier)
next(reader)
except Error as error:
match error.errno:
case errorcode.ER_ACCESS_DENIED_ERROR:
print("Accès refusé. Vérifier USER et PASSWORD")
case errorcode.ER_BAD_DB_ERROR:
print("BDD n'existe pas")
case _:
print(f"Erreur {error}")
finally:
if cursor is not None:
cursor.close()
if connection is not None and connection.is_connected():
connection.close()