oujood.com

Python MySQL Connector : Créer une table dans MySQL en utilisant Python

Une table de données est un ensemble de données organisées sous forme de lignes et de colonnes. La table est présente dans une base de données.
Les lignes sont également appelées tuples.
Les colonnes sont appelées les attributs de la table.
Avant de créer une table dans notre base de données, nous devons créer une base de données. Pour ce faire, reportez-vous à Python : MySQL Créer une base de données.

chercher |

Python MySQL - Comment créer une table de donnes ?

L'instruction CREATE TABLE est utilisée pour créer des tables dans la base de données MYSQL.

Dans cette instruction, vous devez spécifier le nom de la table et définir le nom et le type de données de chaque colonne.

La syntaxe pour créer une table dans une base de données MySQL est la suivante:

CREATE TABLE nom_table(
	colonne1 type de données,
	colonne2 type de données,
	colonne3 type de données, 
	 .....
	colonneN type de données,
)

Créer une table dans MySQL en utilisant python

La méthode nommée execute() ( appelée sur l'objet curseur) accepte deux variables :

1. Une valeur String représentant la requête à exécuter.
2. Un paramètre optionnel args qui peut être un tuple ou, une liste ou, un dictionnaire, représentant les paramètres de la requête (le nom et le type de données de chaque colonne).

Une fois qu'une connexion à la base de données est établie, vous pouvez créer des tables en passant la requête CREATE TABLE à la méthode execute().

En bref, pour créer une table en utilisant python :

Importez le module mysql.connector.
Créer un objet de connexion en utilisant la méthode mysql.connector.connect(), en lui passant comme paramètres le nom d'utilisateur, le mot de passe, le serveur hôte ( par défaut : localhost) et la base de données.
Créez un objet curseur en invoquant la méthode cursor() sur l'objet de connexion créé ci-dessus.
En fin, exécutez l'instruction CREATE TABLE en la passant comme paramètre à la méthode execute().

L'exemple suivant crée une table nommée Employee dans la base de données oujood_py.

  Copier le code

# Importation des module nécessaires
import mysql.connector

# Créer une connexion à la base de données
# Assurez-vous de préciser le nom de la base 
# de données lorsque vous créez la connexion.
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)

# préparation d'un objet curseur
curseurObjet = conn.cursor()

#Creation de la  table EMPLOYEE
requete ='''CREATE TABLE EMPLOYEE(
    MATRICULE INT NOT NULL,
    PRENOM CHAR(20)  NOT NULL,
    Nom CHAR(20), 
    AGE INT(11),
    SEXE CHAR(8),
    REVENU FLOAT
)'''

curseurObjet.execute(requete)

# Se deconnecter de la base de données
conn.close()
Si le ce code est exécuté sans générer d’erreur, votre table est créée.

Si la table existe ce code génére une erreur

Types de données SQL

Les types de données sont utilisés pour définir le type de données qui seront stockées dans la colonne de la table. Les différents types de données sont :

Numérique (exemple INT FLOAT)
Caractère/Chaîne (exemple CHAR)
Date/heure.
Caractère/Chaîne de caractères Unicode
Binaire

Outre les types de données susmentionnés, il existe divers autres types de données dans MySQL, notamment les types de données CLOB, BLOB, JSON et XML.

Vérifier l'existence d'une table

Vous pouvez vérifier si une table existe en listant toutes les tables de votre base de données avec l'instruction "SHOW TABLES" :
Exemple : Renvoie une liste des bases de données de votre système :

  Copier le code

# Importation des module nécessaires
import mysql.connector

#Créer une connexion à la base de données
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)


curseurObjet = conn.cursor()

curseurObjet.execute("SHOW TABLES")

#Afficher la listes des tables de
# la base de données oujood_py
for x in curseurObjet :
  print(x)

conn.close()

Comment éviter l’erreur ; Table 'nom_table' already exists

Lorsque vous tenter de créer une table qui existe déjà dans votre base de données, une erreur est générée.

Pour éviter cette erreur trois méthodes :

1. Utiliser l’instruction ( ‘‘'CREATE TABLE IF NOT EXISTS `NOM_table` )
Exemple:

  Copier le code

# Importation des module nécessaires
import mysql.connector

#Créer une connexion à la base de données
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)

# préparation d'un objet curseur
curseurObjet = conn.cursor()



#Creation de la  table EMPLOYEE
requete ='''CREATE TABLE IF NOT EXISTS  EMPLOYEE(
    MATRICULE INT NOT NULL,
    PRENOM CHAR(20)  NOT NULL,
    Nom CHAR(20), 
    AGE INT(11),
    SEXE CHAR(8),
    REVENU FLOAT
)'''

curseurObjet.execute(requete)

conn.close()
Ce code créera la table si elle n'éxiste pas et ne générera pas d'erreur si la table existe.
Si la table existe ce code ne fait rien tout simplement.

2. Utilisation de la gestion des exception try

Exemple:

  Copier le code

# Importation des module nécessaires
import mysql.connector

#Créer une connexion à la base de données
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)

# préparation d'un objet curseur
curseurObjet = conn.cursor()



#Creation de la  table EMPLOYEE
requete ='''CREATE TABLE EMPLOYEE(
    MATRICULE INT NOT NULL,
    PRENOM CHAR(20)  NOT NULL,
    Nom CHAR(20), 
    AGE INT(11),
    SEXE CHAR(8),
    REVENU FLOAT
)'''
try :
    curseurObjet.execute(requete)
    print( "Table créée avec succès")
except :
    print( "la table existe, elle n'a pas été créée")
    
conn.close()

3. Supprimer la table s’elle existe puis la recréer en utilisant l’instruction:
("DROP TABLE IF EXISTS Nom_table")
Exemple:

  Copier le code

# Importation des module nécessaires
import mysql.connector

#Créer une connexion à la base de données
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)

# préparation d'un objet curseur
curseurObjet = conn.cursor()

#Suppression de la table EMPLOYEE si elle existe déjà.
curseurObjet.execute("DROP TABLE IF EXISTS EMPLOYEE")

#Creation de la  table EMPLOYEE
requete ='''CREATE TABLE EMPLOYEE(
    MATRICULE INT NOT NULL,
    PRENOM CHAR(20)  NOT NULL,
    Nom CHAR(20), 
    AGE INT(11),
    SEXE CHAR(8),
    REVENU FLOAT
)'''

curseurObjet.execute(requete)

Clé primaire et auto incrimentation

-Lorsque vous créez une table, vous devez également créer une colonne avec une clé unique pour chaque enregistrement. Qu'on appele clé primaire (PRIMARY KEY)

Une clé primaire est la ou les colonnes qui contiennent des valeurs permettant d'identifier de manière unique chaque ligne d'une table. Une table de base de données doit avoir une clé primaire pour permettre d'insérer, de mettre à jour, de restaurer ou de supprimer des données dans une table de base de données sans se tromper vue qu'elle est unique.

L'auto-incrémentassions permet de générer automatiquement un numéro unique lorsqu'un nouvel enregistrement est inséré dans une table.
En général, il s'agit du champ de la clé primaire que l'on souhaite créer automatiquement à chaque fois qu'un nouvel enregistrement est inséré.

-Nous utilisons l'instruction "INT AUTO_INCREMENT PRIMARY KEY" qui va insérer un numéro unique pour chaque enregistrement.
Exemple:

  Copier le code

# Importation des module nécessaires
import mysql.connector

#Créer une connexion à la base de données
conn = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "193Mill$",
database="oujood_py"
)

# préparation d'un objet curseur
curseurObjet = conn.cursor()

#Suppression de la table EMPLOYEE si elle existe déjà.
curseurObjet.execute("DROP TABLE IF EXISTS EMPLOYEE")

#Creation de la  table EMPLOYEE
requete ='''CREATE TABLE EMPLOYEE(
    MATRICULE INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    PRENOM CHAR(20)  NOT NULL,
    Nom CHAR(20), 
    AGE INT(11),
    SEXE CHAR(8),
    REVENU FLOAT
)'''

curseurObjet.execute(requete)


Voir aussi nos tutoriel :

Balise figure

Spécifie autonome le contenu

Balise meta données meta

Définit les méta données d'un document HTML

cryptocurrency bitcoin BTC Bitcoin BTC

Tout savoir sur Bitcoin.