今回の講義はデータベースです。
また難しそうな内容ですね~。
冒頭SQLという単語が出てきます。
すこし聞いたことあるわぁ~ぐらいの
単語ですが、今西先生が解説してくれます。
SQLとはデータベースを操作するための言語
のようなものらしいです。
実際には このデータ追加してくださいとか
このデータが欲しいですとかなど
命令文を書いていく感じらしいです。
SQLを扱う言語はいろいろあって、
- MySQL
- MongoDB
- OracleDB
- SQLite3
などがあるみたいです。
その中でもこの講義では
SQLite3を使用して講義を進めていくそうです。
特徴としては一つのデータベースを一つのファイル
として扱うみたいです。
他の言語はどうなのか知らないので
現状ではふ~ん程度で理解しときます(笑)
とりあえずはGoogle Drive内のサンプルファイルを
使用するためにDriveにマウントします。
マウントする方法についてはこちらをご参照ください。
Python 無料で独習 020 ファイルの読み書き
で使用するファイルですが、今西先生はすでにアップロードして
あるファイルを使用しますが、ファイルはなんでもいいとの
ことですので私は前回の講義でも使用しました
をつかって講義を進めていきます。
まずは空のデータベースを定義します。
そしてsqlite3 のメゾット connect を使いデータベースにアクセスします。
import sqlite3
import pandas as pd
df = pd.read_csv('/content/sample_data/california_housing_test.csv')
db_name = 'sample.db'
conn = sqlite3.connect(db_name)
conn
<sqlite3.Connection at 0x7f3dd91ed650>
実際に実行して、Google Driveのファイルを更新して
見てみるとsample.dbというファイルが作成されています。
そして、dfに代入したデータフレームをデータベースに入れていきます。
df.to_sql(テーブル名,conn,if_exists='replace')
データベースのテーブルとはエクセルでいうところの
シートのようなものらしいです。
connはさきほどのコネクションしたファイルを意味します。
if_exists='replace'とはもし同じ名前のテーブルが存在したら置き換える
という意味らしいです。
df.to_sql('housing',conn,if_exists='replace')
このあと
というコードを書きますが今回の講義では深堀しないらしいです。
sqlの命令文を書く上で必要なものとだけ今は理解しておきます。
SELECTでデーターを抽出
* アスタリスクで全ての
FROM housing housingというテーブルから
このコードで先ほど作った命令を実行(execute)します。
query = 'SELECT * FROM housing'
c.execute(query)
実際にデータを抽出したので、
そこから一行だけデータを取り出します。
ただ普通に表示するとみにくくなるので、
データごとに改行して見やすくする為に
とします。
これでキレイな形でデータを表示させることができます。
最後に
そしてデータベースを閉じます。
データベースに関しては
接続命令をして、
データを入力する命令をして、
なんとか理解する事が出来ました。
今西先生、今日も有難うございます。
c.fetchone()
c.fetchall()
for row in c.execute(query):
print(row)
conn.close()
コメント