Python

Opérations CRUD vers les bases de données SQL et NoSQL à l'aide de Python

Opérations CRUD vers les bases de données SQL et NoSQL à l'aide de Python
Il existe deux grands types de bases de données pouvant être utilisées avec une application : les bases de données relationnelles (SQL) et les bases de données non relationnelles (NoSQL). Les deux sont largement utilisés, mais en sélectionner un dépend du type de données qui seront stockées. Quatre opérations de base peuvent être effectuées sur les bases de données : créer, lire, mettre à jour et supprimer (CRUD).

Nous pouvons interagir avec les bases de données en utilisant n'importe quel langage de programmation, ou nous pouvons utiliser un logiciel qui nous permet d'interagir avec la base de données à l'aide d'une interface graphique. Dans cet article, nous allons discuter des bases de données et vous montrer comment interagir avec elles en utilisant le langage de programmation Python.

Bases de données relationnelles (SQL)

Les bases de données relationnelles (SQL) sont différentes des bases de données non relationnelles (NoSQL) en termes de schéma. Un schéma est un modèle qui définit la structure des données que vous allez stocker. Dans les bases de données relationnelles, nous créons des tables pour stocker des données. Le schéma d'une table est défini lors de la création de la table. Par exemple, si nous voulons stocker des données sur les étudiants dans une base de données relationnelle, nous allons créer une table d'étudiants et définir le schéma de la table, qui peut inclure le nom, le numéro d'inscription, la note, etc. de chaque élève. Après avoir créé le schéma, nous allons stocker les données dans les lignes du tableau. Il est important de noter que nous ne pouvons pas stocker de données qui ne sont pas définies dans le schéma. Dans cet exemple, la note qu'un étudiant a reçue à un examen ne peut pas être stockée dans la table car nous n'avons pas défini de colonne pour ces données dans le schéma.

La liste suivante comprend quelques bases de données relationnelles populaires :

Bases de données non relationnelles (NoSQL)

Comme indiqué ci-dessus, les bases de données non relationnelles n'ont pas de schéma défini. Les bases de données non relationnelles ont des collections au lieu de tables, et ces collections contiennent des documents équivalents aux lignes d'une base de données relationnelle. Par exemple, si nous voulons créer une base de données non relationnelle pour stocker les données des étudiants, nous pouvons créer une collection d'utilisateurs et, dans cette collection, nous stockerons un document pour chaque étudiant. Ces documents n'ont pas de schéma défini, et vous pouvez stocker tout ce que vous voulez pour chaque étudiant.

Effectuer des opérations CRUD dans MySQL

Maintenant, nous allons vous montrer comment interagir avec MySQL en utilisant Python.

Installation du pilote MySQL pour Python

Pour interagir avec MySQL en utilisant Python, nous devons d'abord installer le pilote MySQL en Python.

[email protected]:~$ sudo pip3 install mysql-connector-python

ou alors

[email protected]:~$ sudo pip install mysql-connector-python

Création d'une base de données

Avant de créer une base de données, nous devons nous connecter au serveur MySQL en utilisant Python. le mysql.Le module de connecteur propose la méthode connect() pour aider à établir une connexion avec MySQL en utilisant Python.

>>> importer mysql.connecteur
//Remplacez par votre propre adresse IP et vos identifiants de serveur
>>> sql = mysql.connecteur.relier(
… hôte='hôte local',
… utilisateur='root',
… mot de passe='12345'
… )
>>> imprimer (sql)

Ce message montre que nous avons réussi à créer une connexion avec une base de données MySQL en utilisant Python. Maintenant, nous allons exécuter une requête SQL sur le serveur MySQL en utilisant la méthode execute() du mysql.module de connexion.

>>> curseur = sql.le curseur()
>>> requête = 'CRÉER UNE BASE DE DONNÉES demo_db'
>>> curseur.exécuter l'ordre)

Le code ci-dessus créera une base de données nommée demo_db dans MySQL.

Création d'un tableau

Maintenant que nous avons créé une base de données, nous allons créer une nouvelle table nommée étudiants. Pour créer une table, nous devons nous connecter à la base de données.

>>> sql_db = mysql.connecteur.relier(
… hôte='hôte local',
… utilisateur='root',
… mot de passe='12345',
… base de données='demo_db'
… )

Après connexion à la base de données, nous utiliserons la méthode execute() pour exécuter une requête SQL afin de créer une table avec un schéma.

>>> query = "CREATE TABLE student(name VARCHAR(64), id INT, grade INT, dob DATE)" ;
>>> curseur.exécuter l'ordre);

La commande ci-dessus créera une table nommée étudiants dans la base de données demo_db ; nous ne pouvons insérer qu'un nom, un identifiant, un grade et une date de naissance dans la table, comme défini dans le schéma.

Insérer des lignes dans un tableau

Maintenant que nous avons créé un tableau, nous allons insérer un étudiant dans ce tableau. Nous allons créer une requête, puis utiliser la méthode execute() pour exécuter la requête sur le serveur MySQL à l'aide de Python.

>>> requête = 'INSERT INTO student(name, id, grade, dob) VALUES("John", 1, 3, "2020-7-04")'
>>> curseur.exécuter l'ordre)
>>> sql_db.s'engager()

Cette requête ajoutera un étudiant avec les données définies dans la requête dans la table. Nous pouvons ajouter des étudiants supplémentaires à la table de la même manière.

REMARQUE : les modifications seront appliquées à la base de données uniquement si vous exécutez sql_db.commit() après avoir appliqué les modifications.

Sélection de lignes dans une table

L'instruction SELECT dans MySQL est utilisée pour renvoyer les données d'une table. Nous utiliserons la méthode execute() pour exécuter une requête, puis nous utiliserons la méthode fetchall() pour obtenir une liste de tous les étudiants. Ensuite, nous pouvons utiliser une boucle for pour afficher tous les étudiants

>>> requête = 'SELECT * FROM étudiants'
>>> curseur.exécuter l'ordre)
>>> résultat = curseur.chercher ()
>>> pour x dans le résultat :
… imprimer(x)
("Jean", 1, 3, dateheure.date(2020, 7, 4))

Nous pouvons voir que seules les données d'un seul élève sont renvoyées, car nous n'avons qu'un seul élève dans le tableau. Nous pouvons utiliser l'instruction WHERE dans MySQL avec l'instruction SELECT pour spécifier des contraintes. Par exemple, si nous voulons renvoyer les élèves de 4e année uniquement, nous pouvons utiliser la requête suivante :

>>> requête = 'SELECT * FROM étudiants WHERE note = 4'
>>> curseur.exécuter l'ordre)
>>> résultat = curseur.chercher ()
>>> pour x dans le résultat :
… imprimer(x)

Le code ci-dessus ne récupérera que les élèves de la 4e année.

Mettre à jour une ligne

Dans cette section, nous allons vous montrer comment mettre à jour les données des étudiants dans une table MySQL à l'aide de Python. Nous utiliserons l'instruction UPDATE avec les instructions WHERE et SET dans MySQL pour mettre à jour les données d'étudiants spécifiques. L'instruction WHERE est utilisée pour déterminer quelles lignes seront mises à jour, et l'instruction SET est utilisée pour définir les valeurs utilisées pour la mise à jour.

>>> query = 'UPDATE student SET name="Mark" WHERE id = 4'
>>> curseur.exécuter l'ordre)
>>> sql_db.s'engager()

Maintenant, nous allons essayer de lire les données des étudiants à partir de la table en utilisant l'instruction SELECT.

>>> query = 'SELECT * FROM étudiants WHERE id=4'
>>> curseur.exécuter l'ordre)
>>> pour x dans le curseur :
… imprimer(x)
('Marque', 4, 4, dateheure.date(2020, 7, 15))

Maintenant, nous pouvons voir que le nom de l'étudiant avec l'identifiant 4 a été changé en Mark.

Supprimer une ligne

Nous pouvons supprimer une ligne de la table en appliquant l'instruction DELETE dans MySQL à l'aide de Python. Nous utiliserons une instruction DELETE avec une instruction WHERE pour supprimer des étudiants spécifiques de la table.

>>> requête = 'DELETE FROM étudiants WHERE id=2'
>>> curseur.exécuter l'ordre)
>>> sql_db.s'engager()

Maintenant, nous pouvons retourner tous les étudiants de la table en utilisant l'instruction SELECT.

>>> requête = 'SELECT * FROM étudiants'
>>> curseur.exécuter l'ordre)
>>> pour x dans le curseur :
… imprimer(x)
("Jean", 1, 3, dateheure.date(2020, 7, 4))
("Jean", 3, 3, dateheure.date(2020, 7, 8))
('Marque', 4, 4, dateheure.date(2020, 7, 15))

Nous pouvons voir que la table ne contient pas d'étudiant avec un identifiant de 2, car nous avons supprimé l'étudiant de la table.

Supprimer une table

le mysql.le module de connecteur peut également être utilisé pour déposer une table. Nous pouvons exécuter une instruction DROP dans MySQL en utilisant la méthode execute().

>>> curseur = sql_db.le curseur()
>>> requête = 'DROP TABLE étudiants'
>>> curseur.exécuter l'ordre)

Le code ci-dessus supprimera le tableau nommé étudiants lorsqu'il sera exécuté en Python.

Cela conclut notre discussion sur les bases de données SQL. Nous vous avons montré comment appliquer différentes requêtes à la base de données MySQL en utilisant Python. Ensuite, nous appliquerons les opérations CRUD à une base de données NoSQL appelée MongoDB

Effectuer des opérations CRUD dans MongoDB

Pour interagir avec MongoDB en utilisant Python, nous devons d'abord installer pymongo, qui est un pilote MongoDB pour Python.

[email protected]:~$ sudo pip install pymongo

ou alors

[email protected]:~$ sudo pip3 install pymongo

Création d'une base de données

Nous pouvons nous connecter à MongoDB en utilisant la méthode MongoClient() du module pymongo dans MongoDB. Avant d'effectuer toute action, nous devons nous connecter à la base de données MongoDB.

>>> importer pymongo
>>> client = pymongo.MongoClient('mongodb://localhost:27017/')

Après s'être connecté au datacase, nous pouvons exécuter la ligne suivante pour créer une nouvelle base de données nommée demo_db.

>>> db = client['demo_db']

Si la base de données existe déjà, alors cette commande est ignorée.

Création d'une collection

Maintenant que nous avons créé une base de données, nous allons créer une collection nommée étudiants dans la base de données nommée.

>>> importer pymongo
>>> client = pymongo.MongoClient('mongodb://localhost:27017/')
>>> db = client['demo_db']
>>> col = db['étudiants']

REMARQUE : MongoDB ne crée pas de collection tant que vous n'y avez pas entré de données. Par conséquent, si vous essayez d'accéder à la collection après avoir exécuté le code ci-dessus, vous constaterez qu'il n'y a rien dans la base de données.

MySQL sans doublure, nous n'avons pas à définir de schéma lorsque nous créons une nouvelle collection, car MongoDB est une base de données non relationnelle.

Insérer un document

Après avoir créé une collection, nous pouvons insérer un document à l'intérieur de la collection. Tout d'abord, nous devons définir un dictionnaire, puis nous pouvons utiliser la méthode insert_one() pour insérer les données définies dans le dictionnaire dans la collection.

REMARQUE : MongoDB crée automatiquement un « _id » unique pour chaque document ; par conséquent, nous n'avons pas besoin de spécifier un identifiant.

>>> données =
… "nom": "Jean",
… "note": 3,
… "dob": "2020-04-03"

>>> résultat = col.insert_one(données)

Dans le document ci-dessus, nous avons inséré le nom, le grade et la date de naissance. Maintenant, nous allons insérer un document dans la collection des étudiants qui a un champ pour l'âge.

>>> données =
… "nom" : "Marc",
… "niveau 4,
… "dob": "2020-04-09",
… "âge" : 8

>>> résultat = col.insert_one(données)

Nous pouvons voir que cette commande ne renvoie pas d'erreur. Parce que MongoDB est une base de données non relationnelle, nous pouvons ajouter toutes les informations que nous voulons dans le document.

Obtenir des documents

Dans cette section, nous utiliserons les méthodes find() et find_one() pour obtenir des données de la base de données. La méthode find() prend deux arguments : le premier est utilisé pour filtrer les documents, et le second est utilisé pour définir les champs du document que nous voulons retourner. Par exemple, si nous voulons obtenir l'identifiant de « John », nous pouvons exécuter la requête suivante :

>>> résultat = col.trouver("nom": "Jean", "_id": 1)
>>> pour x dans le résultat :
… imprimer(x)
'_id' : ObjectId('5f8f0514cb12c01f7420656e')

Alternativement, nous pouvons obtenir tous les documents de la collection en utilisant la requête suivante :

>>> résultat = col.trouve()
>>> pour x dans le résultat :
… imprimer(x)
'_id' : ObjectId('5f8f0514cb12c01f7420656e'), 'name' : 'John', 'grade' : 3, 'dob' : '2020-04-03'
'_id' : ObjectId('5f8f061ccb12c01f7420656f'), 'name' : 'Mark', 'grade' : 4, 'dob' : '2020-04-09', 'age' : 8

Mise à jour des documents

Le module pymongo propose les méthodes update_one() et update_many() pour mettre à jour les documents d'une collection. Les deux méthodes prennent deux arguments : le premier définit le document à modifier et le second définit les nouvelles valeurs. Maintenant, nous allons changer la note de l'étudiant 'Mark'.

>>> requête = "nom": "Marquer"
>>> valeur = "$set": "note": 5
>>> col.update_one(requête, valeur)
>>> pour x en col.trouve():
… imprimer(x)
'_id' : ObjectId('5f8f0514cb12c01f7420656e'), 'name' : 'John', 'grade' : 3, 'dob' : '2020-04-03'
'_id' : ObjectId('5f8f061ccb12c01f7420656f'), 'name' : 'Mark', 'grade' : 5, 'dob' : '2020-04-09', 'age' : 8

Supprimer un document

Le module pymongo en Python a deux méthodes, i.e., delete_one() et delete_many(), pour supprimer des documents. Les deux méthodes prennent un argument qui sélectionne le document à supprimer. Avec le code suivant, nous supprimerons un étudiant nommé 'John'.

>>> requête = "nom": "Jean"
>>> col.delete_one(requête)
>>> pour x en col.trouve():
… imprimer(x)
'_id' : ObjectId('5f8f061ccb12c01f7420656f'), 'name' : 'Mark', 'id' : 2, 'grade' : 5, 'dob' : '2020-04-09', 'age' : 8

Suppression d'une collection

On peut déposer une collection dans MongoDB en utilisant la méthode drop() du module pymongo en Python. Tout d'abord, nous devons nous connecter à la base de données ; puis, nous sélectionnons la base de données qui contient la collection que nous voulons supprimer. Après avoir sélectionné la collection dans la base de données, nous pouvons supprimer la collection en utilisant la méthode drop(). Le code suivant supprimera les étudiants.

>>> importer pymongo
>>> client = pymongo.MongoClient('mongodb://localhost:27017/')
>>> db = client['demo_db']
>>> col = db['étudiants']
>>> col.tomber()

Conclusion

La connaissance des bases de données est indispensable si vous souhaitez faire une application web. Presque tous les langages de programmation ont des frameworks et des bibliothèques pour le développement web backend. Python peut être utilisé dans le développement Web backend, et nous pouvons donc interagir avec des bases de données à l'aide de Python tout en travaillant avec des frameworks backend Python. Dans cet article, nous vous avons montré comment interagir avec les bases de données MongoDB et MySQL en utilisant des opérations CRUD simples écrites en Python.

Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...