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 principaux types de bases de données qui peuvent ê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. Il y a quatre opérations de base qui 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 à l'aide de 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 GUI. Dans cet article, nous discuterons des bases de données et vous montrerons comment interagir avec eux 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 lorsque la table est créée. Par exemple, si nous voulons stocker des données sur les étudiants dans une base de données relationnelle, nous créerons un tableau d'étudiants et définirons le schéma du tableau, qui pourrait inclure le nom, le numéro d'inscription, la note, etc. de chaque étudiant. Après avoir créé le schéma, nous stockons les données dans les rangées de la table. Il est important de noter que nous ne pouvons pas stocker des données qui ne sont pas définies dans le schéma. Dans cet exemple, l'étudiant de grade A reçu à un examen ne peut pas être stocké dans le tableau 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:

  • Mariadb
  • Mysql
  • serveur SQL
  • Postgresql
  • Oracle

Bases de données non relationnelles (NOSQL)

Comme discuté 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 qui sont é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 stockons 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 dans Python.

ubuntu @ ubuntu: ~ $ sudo pip3 installer mysql-connector-python

ou

ubuntu @ ubuntu: ~ $ sudo pip instally mysql-connector-python

Création d'une base de données

Avant de créer une base de données, nous devons nous connecter avec MySQL Server à l'aide de Python. Le mysql.Le module de connecteur propose la méthode Connect () pour aider à établir une connexion avec MySQL à l'aide de Python.

>>> Importer Mysql.connecteur
// remplace par vos propres informations d'identification IP et serveur
>>> SQL = MySQL.connecteur.connecter(
… Hôte = 'localhost',
… 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 à l'aide de Python. Maintenant, nous allons exécuter une requête SQL sur MySQL Server en utilisant la méthode EXECUTE () à partir du MySQL.module de connecteur.

>>> Cursor = SQL.le curseur()
>>> query = '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éer une table

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

>>> sql_db = mysql.connecteur.connecter(
… Hôte = 'localhost',
… Utilisateur = 'root',
… Mot de passe = '12345',
… Base de données = 'Demo_DB'
…)

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

>>> Query = "Create Table Students (Name Varchar (64), ID int, Grade int, dob Date)";
>>> curseur.exécuter l'ordre);

La commande ci-dessus créera un tableau nommé des étudiants dans la base de données Demo_DB; Nous ne pouvons insérer qu'un nom, une carte d'identité, une note et une date de naissance dans le tableau, tel que défini dans le schéma.

Insérer des lignes dans une table

Maintenant que nous avons créé un tableau, nous insérerons un élève dans ce tableau. Nous allons créer une requête, puis utiliser la méthode EXECUTE () pour exécuter la requête sur MySQL Server à l'aide de Python.

>>> query = 'insérer dans les étudiants (nom, id, grade, dob) valeurs («John», 1, 3, «2020-7-04»)'
>>> curseur.exécuter l'ordre)
>>> SQL_DB.commettre()

Cette requête ajoutera un élève 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 ne seront appliquées à la base de données que si vous exécutez SQL_DB.commit () après avoir appliqué des modifications.

Sélection des lignes à partir d'un tableau

L'instruction SELECT dans MySQL est utilisée pour renvoyer les données d'un tableau. 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 pour afficher tous les étudiants

>>> query = 'select * des étudiants'
>>> curseur.exécuter l'ordre)
>>> résultat = curseur.fetchall ()
>>> pour x dans le résultat:
… Imprimer (x)
('John', 1, 3, Datetime.Date (2020, 7, 4))

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

>>> query = 'select * des étudiants où grade = 4'
>>> curseur.exécuter l'ordre)
>>> résultat = curseur.fetchall ()
>>> pour x dans le résultat:
… Imprimer (x)

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

Mise à jour d'une ligne

Dans cette section, nous vous montrerons comment mettre à jour les données des élèves dans une table MySQL à l'aide de Python. Nous utiliserons l'instruction de mise à jour avec les instructions où et définirons dans MySQL pour mettre à jour les données des étudiants spécifiques. L'instruction où 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 = 'metter à jour les étudiants set name = "mark" où id = 4'
>>> curseur.exécuter l'ordre)
>>> SQL_DB.commettre()

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

>>> query = 'select * des étudiants où id = 4'
>>> curseur.exécuter l'ordre)
>>> pour x dans le curseur:
… Imprimer (x)
(«Mark», 4, 4, Datetime.Date (2020, 7, 15))

Maintenant, nous pouvons voir que le nom de l'élève avec ID 4 a été changé pour Mark.

Suppression d'une ligne

Nous pouvons supprimer une ligne de la table en appliquant l'instruction Delete dans MySQL à l'aide de Python. Nous utiliserons une déclaration de suppression avec une déclaration où supprimer les étudiants spécifiques de la table.

>>> query = 'supprimer des étudiants où id = 2'
>>> curseur.exécuter l'ordre)
>>> SQL_DB.commettre()

Maintenant, nous pouvons retourner tous les élèves de la table à l'aide de l'instruction SELECT.

>>> query = 'select * des étudiants'
>>> curseur.exécuter l'ordre)
>>> pour x dans le curseur:
… Imprimer (x)
('John', 1, 3, Datetime.Date (2020, 7, 4))
('John', 3, 3, Datetime.Date (2020, 7, 8))
(«Mark», 4, 4, Datetime.Date (2020, 7, 15))

Nous pouvons voir que le tableau ne contient pas d'élève avec une pièce d'identité de 2, car nous avons retiré l'élève de la table.

Laisser tomber 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 ().

>>> Cursor = SQL_DB.le curseur()
>>> query = 'Drop Table Students'
>>> curseur.exécuter l'ordre)

Le code ci-dessus supprimera le tableau nommé des étudiants lorsqu'il est exécuté dans 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 à l'aide de Python. Ensuite, nous appliquerons les opérations CRUD à une base de données NoSQL appelée MongoDB

Effectuer des opérations CRUD à MongoDB

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

ubuntu @ ubuntu: ~ $ sudo pip install pymongo

ou

ubuntu @ ubuntu: ~ $ sudo pip3 installer 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 des actions, nous devons nous connecter à la base de données MongoDB.

>>> Importer Pymongo
>>> client = pymongo.Mongoclient ('mongodb: // localhost: 27017 /')

Après être connecté à la base de données, 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à, cette commande est ignorée.

Création d'une collection

Maintenant que nous avons créé une base de données, nous créerons une collection nommée des é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 avant de saisir des 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 un 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 ID.

>>> data =
… "Nom": "John",
… "Grade": 3,
… "Dob": "2020-04-03"

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

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

>>> data =
… "Nom": "Mark",
… "niveau 4,
… "Dob": "2020-04-09",
… "Âge": 8

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

Nous pouvons voir que cette commande ne lance 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'ID de «John», nous pouvons exécuter la requête suivante:

>>> résultat = col.trouver ("name": "John", "_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.trouver()
>>> 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 de mise à jour_one () et de mise à jour_many () pour mettre à jour les documents dans une collection. Les deux méthodes prennent deux arguments: le premier définit le document à changer, et le second définit les nouvelles valeurs. Maintenant, nous allons changer la note de la «marque» de l'étudiant.

>>> query = "name": "mark"
>>> valeur = "$ set": "grade": 5
>>> col.Update_one (requête, valeur)
>>> pour x en col.trouver():
… 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

Suppression d'un document

Le module Pymongo à 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».

>>> query = "name": "John"
>>> col.Delete_one (requête)
>>> pour x en col.trouver():
… Imprimer (x)
'_id': ObjectID ('5f8f061ccb12c01f7420656f'), 'name': 'mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'Âge': 8

Laisser tomber une collection

Nous pouvons laisser tomber une collection dans MongoDB en utilisant la méthode Drop () du module Pymongo à Python. Tout d'abord, nous devons nous connecter à la base de données; Ensuite, 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 à l'aide de la méthode Drop (). Le code suivant abandonnera les étudiants.

>>> Importer Pymongo
>>> client = pymongo.Mongoclient ('mongodb: // localhost: 27017 /')
>>> db = client ['Demo_db']
>>> col = db ['étudiants "]
>>> col.goutte()

Conclusion

La connaissance des bases de données est essentielle si vous souhaitez faire une application Web. Presque tous les langues 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 les 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.