1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶデータベース入門

Connected

演習

テーブルからのデータ選択:生の SQL

動画で見たとおり、データベース内のデータにアクセスして操作するには、まずエンジンに対して .connect() メソッドを使って接続を確立する必要があります。これは、これまでに使った create_engine() 関数がエンジンのインスタンスを返すだけで、クエリのように接続を必要とする処理が呼び出されるまで、実際の接続は開かれないためです。

先ほど学んだ SQL を使い、接続に対して .execute() メソッドを適用することで、生の SQL クエリを用いて census テーブルの全レコードを取得できます。.execute() メソッドが返すオブジェクトは ResultProxy です。この ResultProxy に対して .fetchall() メソッドを使うと、結果、つまり ResultSet を取得できます。

この演習では、従来の SQL クエリを使います。生の SQL でクエリを実行する場合は、テーブルをデータベース内で直接クエリすることに注意してください。特に、リフレクションの手順は不要です。

次の演習では、SQLAlchemy に進み、その利点を理解していきます。さっそく始めましょう!

指示

100 XP
  • engine の .connect() メソッドを使って接続を作成します。
  • census からすべての列を取得する SQL 文を作成して stmt に保存します。SQL 文は文字列である必要があります。
  • connection に対して .execute() と .fetchall() を使用し、結果を results に保存します。.execute() が .fetchall() より先であること、そして .execute() に stmt を渡すことを忘れないでください。
  • results を出力します。