Semaine 7
This commit is contained in:
115
Semaine_07/Jour_03/python/connector/main.py
Normal file
115
Semaine_07/Jour_03/python/connector/main.py
Normal 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()
|
||||
Reference in New Issue
Block a user