CommencerCommencer gratuitement

Sélectionner des données depuis 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 l’engine. En effet, la fonction create_engine() que vous avez utilisée auparavant renvoie une instance d’engine, mais elle n’ouvre pas réellement de connexion tant qu’aucune action nécessitant une connexion n’est exécutée, comme une requête.

En utilisant ce que nous venons d’apprendre sur SQL et en appliquant la méthode .execute() sur notre connexion, nous pouvons exécuter une requête SQL brute pour interroger tous les enregistrements de la table census. L’objet renvoyé par la méthode .execute() est un ResultProxy. Sur ce ResultProxy, nous pouvons ensuite utiliser la méthode .fetchall() pour récupérer nos résultats — c’est-à-dire le ResultSet.

Dans cet exercice, vous allez utiliser une requête SQL traditionnelle. Notez 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 l’exercice suivant, vous passerez à SQLAlchemy et commencerez à en comprendre les avantages. Lancez-vous !

Cet exercice fait partie du cours

Introduction aux bases de données en Python

Afficher le cours

Instructions

  • Utilisez la méthode .connect() de engine pour créer une connexion.
  • Écrivez 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() puis .fetchall() sur connection et stockez le résultat dans results. Rappelez-vous que .execute() vient avant .fetchall() et que stmt doit être passé à .execute().
  • Affichez results.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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