CommencezCommencez gratuitement

Sélectionner des données d'une table : SQL brut

Comme vous l'avez vu dans la vidéo, pour accéder aux données de la base et les manipuler, il faut d'abord établir une connexion en appelant la méthode .connect() sur le moteur. En effet, la fonction create_engine() que vous avez utilisée plus tôt retourne une instance de moteur, mais elle n'ouvre pas réellement de connexion tant qu'une action qui en a besoin (comme une requête) n'est pas exécutée.

En utilisant ce que nous venons de voir sur SQL et en appelant la méthode .execute() sur notre connexion, nous pouvons lancer une requête SQL brute pour récupérer tous les enregistrements de la table census. L'objet retourné par .execute() est un ResultProxy. Sur ce ResultProxy, on peut ensuite utiliser la méthode .fetchall() pour obtenir nos résultats — c'est‑à‑dire le ResultSet.

Dans cet exercice, vous allez utiliser une requête SQL traditionnelle. Remarquez que lorsque vous exécutez une requête en SQL brut, vous interrogez la table directement dans la base de données. En particulier, aucune étape de réflexion n'est nécessaire.

Dans le prochain exercice, vous passerez à SQLAlchemy et commencerez à en comprendre les avantages. À vous de jouer !

Cette activité fait partie du cours

Introduction aux bases de données en Python

Voir le cours

Instructions de l’exercice

  • Utilisez la méthode .connect() de engine pour créer une connexion.
  • Rédigez une instruction SQL qui interroge toutes les colonnes de census et stockez‑la dans stmt. Notez que votre instruction SQL doit être une chaîne de caractères.
  • Utilisez les méthodes .execute() et .fetchall() sur connection et stockez le résultat dans results. Rappelez‑vous que .execute() vient avant .fetchall() et que stmt doit être transmis à .execute().
  • Affichez results.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')

# Create a connection on engine
connection = ___

# Build select statement for census table: stmt
stmt = ____

# Execute the statement and fetch the results: results
results = ____

# Print results
print(____)
Modifier et exécuter le code