【記事の目標】
Pythonでデータベースを新規作成し、テーブルを作成してみよう。
【作業手順】
1.SQLiteをインポート
2.データベースを作成しよう
3.テーブルを作成しよう
4.コミットしてみよう
5.テーブルが作成出来ているか確認しよう
1.SQLiteをインポート
標準ライブラリのため、インストールの必要はありません。
以下のようにインポートしましょう。
import sqlite3
これで、SQLiteが利用できるようになりました。
2.データベースを作成しよう
データベースを作成してみましょう。
db_name = 'blog_test'
connect = sqlite3.connect(db_name)
blog_test というデータベースを作成します。
sqlite3.Cnnectionオブジェクトを変数connectに格納しています。
3.テーブルを作成しよう
以下のようなテーブルを作成します。
テーブル名:first_table
カラム1:id (primary key)
カラム2:value
では実際に書いてみましょう。
sql = 'CREATE TABLE IF NOT EXISTS first_table (id INTEGER PRIMARY KEY AUTOINCREMENT, value TEXT)'
cursor = connect.cursor()
cursor.execute(sql)
2行目は sqlite.Cursorオブジェクトを変数cursorに格納しています。
cursorのexecuteに実行したいSQLを渡しましょう。
4.コミットしてみよう
「2.」「3.」とコードを書いてきましたが、これを実行してもテーブルは作成されません。
実行を完了させるために、コミットを行いましょう。
connect.commit()
connect.close()
これで、データベースを作成して、テーブルが作成されます。
main.py と同じ階層に blog_test というデータベースファイルが作成されています。
でも、本当にデータベースやテーブルが作成されたか、いまいちわかりませんね。
次のステップで作成できているか確認しましょう。
5.テーブルが作成出来ているか確認しよう
確認するために、先ほど記載していたコードは一度削除かコメントアウトしましょう。
まずは、インポートとデータベースの作成ですね。
import sqlite3
db_name = 'blog_test'
connect = sqlite3.connect(db_name)
さっき作っていたのにまた同じコードで大丈夫なの?
と思った方もいると思いますが、すでに存在しているデータベース名の場合は新しく作成されずに、存在しているデータベースにアクセスされます。
では、抽出用のSQLを書いていきましょう。
今回はテーブルが出来ているかを確認したいため、テーブルの一覧を取得するSQLを実行していきましょう。
sql = 'SELECT * from sqlite_master WHERE TYPE="table"'
cursor = connect.cursor()
cursor.execute(sql)
これで、データベースにあるテーブルの一覧が取得できます。
本当に取得出来ているかを確認するためにコンソールに出力してみましょう。
for row in cursor.fetchall():
print(row)
cursor.fetchall() で、実行したSELECT文の取得結果が全て取得できます。
最後にConnectionをcloseしましょう。
connect.close()
実行すると以下のようにテーブル一覧が出力されます。
今回作成した、first_table が出来ていることが確認できました。
今回は、テーブルの作成まで実施しました。
初めて触れる方だと、SQL文が難しく感じてしまうと思います。
特にpythonと関係ないのでSQLについてはさらっと流していますが、別の記事でSQL文について触りだけでも説明しようかと考えています。
記事を書いていて、テーブルの作成だけで結構多いなと感じてしまったため、データの登録や参照については次回触れようと思います。