- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour récupérer des données à l'intérieur d'une base de données, on va utiliser cette commande.Donc la commande SELECT, on va dire ce qu'on veut récupérer à l'intérieur de quelle table.
00:00:09 :Donc on va dire qu'on veut récupérer tout, dans ce cas-ci, avec l'astérisque, à l'intérieur de la table employée.On peut également mettre des spécifications après, avec le mot WHERE,qui nous permet de spécifier que dans ce cas-ci, on ne veut récupérer que les employés qui ont un prénom qui est égal à Pierre.
00:00:24 :Si je lance mon script Python dans le terminal, le script s'exécute et il ne se passe rien.Puisque là, on a exécuté notre commande SQL, mais il va falloir par la suite récupérer ces données.
00:00:34 :Pour récupérer les données, on utilise la commande FETCH ALL.Donc là encore, sur le curseur, et ça, ça va nous permettre de récupérer les données dans une variable.
00:00:43 :Donc je vais ensuite printer ces données et on va avoir, quand je lance le script Python,une liste qui contient des topoles.Donc dans chaque topole, on a les colonnes qui constituent notre tableau.
00:00:54 :Donc on a la première colonne avec le prénom et la deuxième colonne avec le nom.Ici, on ne récupère que les employés qui ont un prénom qui est égal à Pierre,puisqu'on l'a spécifié ici, après l'instruction WHERE.
00:01:05 :Donc on spécifie ici qu'on veut chercher Pierre.Ça ici, on pourrait le remplacer avec un dictionnaire, c'est-à-dire qu'à la place,on pourrait mettre les deux points et prénom.
00:01:14 :Et comme on l'a fait dans les parties précédentes, faire un dictionnaire ici,qui est égal à une clé qui s'appelle prénom, puisqu'on a spécifié ici deux points prénom.
00:01:22 :On pourrait l'appeler n'importe quoi d'autre, mais là je l'ai appelé prénom.On n'a pas rapport avec cette valeur ici, c'est bien important de le comprendre.
00:01:29 :Ici, je pourrais mettre A et là A, et ça fonctionnerait de la même façon.Donc ce qu'il nous faut ici, c'est uniquement la clé du dictionnaire.
00:01:36 :Donc je vais mettre A ici, qui est égal à Pierre,et je vais passer ce dictionnaire par la suite en deuxième argument.Donc je passe mon dictionnaire D, et si j'exécute le script,je vais avoir exactement la même chose qu'auparavant,c'est-à-dire les deux employés qui ont comme prénom Pierre.
00:01:50 :Donc FetchAll, ça nous permet de récupérer toutes les informationsqui sont récupérées avec cette instruction SQL.Si je veux, je peux également récupérer tout ce qu'il y a à l'intérieur de ma base de donnéessans spécifier de WHERE ici.
00:02:02 :Donc juste SELECT asterisque FROM employees.J'exécute, et là je vais me retrouver avec tous les employés dans ma base de données.Donc on a une liste qui contient quatre tuples.
00:02:12 :Cette méthode FetchAll, elle permet de récupérer tout ce qui est sélectionnépar notre requête SQL ici.Ça, en fait, ça va être ce qu'on appelle un générateur.
00:02:21 :Le générateur, une fois qu'on va avoir récupéré les données de la requête,il va être épuisé, c'est-à-dire qu'on ne peut pas le refaire une deuxième fois.
00:02:28 :Le curseur ici, c'est un peu comme quand on était en train de travaillersur des fichiers dans une partie précédente.Quand on avait lu un fichier, le curseur se retrouvait à la fin du fichieret on ne pouvait pas relire le fichier une nouvelle fois.
00:02:40 :Il fallait replacer le curseur au début du fichier pour pouvoir relire ce fichier.C'est un peu pareil avec les bases de données.Si je copie-colle ce texte ici et que j'exécute mon script par la suite,vous allez voir que la première fois, on a bien tous les employéset la deuxième fois, on a une liste vide puisqu'on ne peut pas exécuter
00:02:57 :plusieurs fois un FetchAll sur une seule requête SQL.Ce qu'il va falloir faire ici, c'est refaire une requête,donc recopier tout ça ici avant de refaire un FetchAll.
00:03:07 :Là, j'ai à chaque fois ma requête avec Executeet ensuite, sur cette requête, je peux récupérer les données.De la même façon, on va avoir la méthode FetchOne.
00:03:16 :FetchOne va nous permettre de récupérer les éléments 1 à 1.Donc si j'exécute ma requête ici, je vais avoir uniquementle premier employé de ma base de données.
00:03:25 :Je peux répéter cette méthode puisque j'ai 4 employés dans ma base de données.Je pourrais avoir une première variable qui s'appelle premier,une deuxième variable deuxième, etc.
00:03:35 :et le répéter jusqu'à ce que j'épuise cette requête.Là, j'ai 4 employés, donc je peux faire 4 variables.Je vais faire une variable troisième iciet je vais les printer à chaque fois et une variable quatrième ici.
00:03:47 :De la même façon, on va exécuter 4 fois le FetchOne.Ça va récupérer les 4 employés dans notre base de données dans 4 variables différentes.
00:03:58 :Donc là, on a bien les 4 employés.Si par contre, à la suite de ça, j'essaie de récupérer un 5e employé,donc 5e ici, là encore avec FetchOne,cette fois-ci, il n'y aura plus rien dans mon Select.
00:04:11 :Dans ma requête ici, il n'y aura plus rien puisqu'on a épuisé notre générateuravec les 4 premières itérations.J'exécute mon script et on voit bien que dans ma variable 5e, il y a None.
00:04:22 :Il faut faire bien attention avec ça.Pareil, si je mets les deux, si je fais un C.FetchAll au débutpour récupérer toutes les données, comme ceci,et que par la suite, je veux récupérer uniquement le premieren faisant 1er égale FetchOne, ça ne va pas marcher.
00:04:37 :Puisqu'au début avec le FetchAll, on aura épuisé cette requêteet donc par la suite, il n'y aura plus rien dans la requêteet donc le FetchOne ne va rien retourner.
00:04:45 :Si j'exécute ce fichier, on a None qui est contenu dans notre variable 1er.Par contre, si je print données,c'est la première fois qu'on fait un FetchAll,donc on va tout simplement récupérer toutes les donnéesqui ont été récupérées par le Select.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.