PythonでSQLのビューを作成・利用する方法を完全解説!CREATE VIEWを初心者向けにやさしく理解
生徒
「PythonでSQLデータベースを使っているんですが、毎回同じSELECT文を書くのが大変です…」
先生
「それなら、SQLのビューを使うと便利ですよ。よく使う検索結果を保存しておけます。」
生徒
「保存って、テーブルとは違うんですか?」
先生
「はい。ビューはデータそのものではなく、検索方法を覚えておく仕組みです。」
1. SQLのビューとは何か
SQLのビューとは、SELECT文の結果に名前を付けて保存できる仕組みです。実際のデータを持つテーブルとは違い、「この条件でデータを取り出す」というルールだけを記録します。たとえるなら、分厚い本の中で、よく読むページに付けるしおりのような存在です。
2. ビューを使うメリット
ビューを使うと、SQL文が短くなり、読みやすくなります。また、PythonからSQLデータベース操作をする際も、毎回複雑な検索条件を書く必要がなくなります。初心者にとっては、ミスを減らせる点も大きなメリットです。
3. CREATE VIEWの基本構文
ビューはCREATE VIEW文を使って作成します。基本の形はとてもシンプルで、SELECT文に名前を付けるイメージです。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("""
CREATE VIEW user_view AS
SELECT id, name FROM users
""")
conn.commit()
conn.close()
4. 作成したビューをSELECTで利用する
ビューは、テーブルとほぼ同じ感覚でSELECT文から利用できます。PythonでSQLを実行するときも、特別な操作は必要ありません。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("SELECT * FROM user_view")
rows = cur.fetchall()
for row in rows:
print(row)
conn.close()
(1, '山田')
(2, '佐藤')
5. ビューはデータを持たない仕組み
ビュー自体はデータを保存していません。元となるテーブルの内容が変わると、ビューの結果も自動的に変わります。これは、常に最新の情報を確認できるという意味で、とても便利な特徴です。
6. Pythonからビューを作り直す方法
ビューの内容を変更したい場合は、一度削除してから作り直します。DROP VIEW文を使うことで、ビューを安全に消せます。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("DROP VIEW IF EXISTS user_view")
conn.commit()
conn.close()
7. ビューを使うときの注意点
ビューは便利ですが、元のテーブルが削除されると使えなくなります。また、ビューを通してデータを更新できるかどうかは、データベースの種類や定義内容によって異なります。初心者のうちは、参照専用として使う意識を持つと安心です。
8. PythonとSQLビューを組み合わせる利点
PythonでSQLデータベース操作を行う際にビューを使うと、プログラムがすっきりします。データベース側に検索ルールをまとめておくことで、Pythonのコードが読みやすくなり、管理もしやすくなります。これは実務でもよく使われる考え方です。
print("ビューを使うとSQLが読みやすくなります")