- 今回はFlaskと騙りながら全くFlaskに触らん
項目
- pythonからdbを開く
- phpMyAdminでdbを作成
- dbからデータを取り出してみる
1.pythonからdbを開く
- phpMyAdminの中の
mydbと言うデータベースの中に、playersというテーブルがあるとする↓
python
import pymysql
print("動いてる")
connection = pymysql.connect(
host="localhost",
db="mydb",
user="root",
password="",
charset="utf8",
cursorclass=pymysql.cursors.DictCursor
)
sql = "SELECT * FROM players"
cursor = connection.cursor()
cursor.execute(sql)
players = cursor.fetchall()
cursor.close()
connection.close()
for player in players:
print(player["name"])
(ちょっと長くて読みにくい)
- これでplayersに入ってる
nameカラム(列)をprintしている -
import pymysqlでpython内でMySQLを使える様にして... -
connection = pymysql.connect()でconnectionにSQLへの接続情報を入れてるぽい
-
host="localhost"でMySQLを動かす環境を決めている(自分のpcならローカル、AWSとかのサーバでも良い)
入れるのはホスト名とか調べれば出てくる気がする -
db="mydb"でそのMySQLの中のdbを選択し -
user="root"でルートユーザがMySQLに接続しますよと -
password="",charset="utf8",パスワードは無し、文字コードはutf-8で読み込んでね -
cursorclass=pymysql.cursors.DictCursorでDictionary形式で読み込める様になっている、Dictionary形式については調べてくれ!
-
sql = "SELECT * FROM players"でsqlという変数の中に実行したいSQLを入れて -
cursor = connection.cursor()で、connectionに入れた接続情報を.cursor()によってcursorに入れて... -
cursor.execute(sql)の.execute(sql)で、cursorに入った接続情報によって接続されたdb内でsqlに入ったコマンドを実行する -
cursor.close()、connection.close()この辺はなんか動かしてたのを閉じてる - その後は読み込んだ情報を
playerに入れて、その中のnameってkey(Dictionary形式的な意味で)がついたデータをprintしている
ターミナル
$ cd <作業ファイルがあるディレクトリ名>
$ python <作業ディレクトリ名>
でターミナルとかに実行結果が正常に出れば完了
2.phpMyAdminでdbを作成
- インストールとかは省く、いつか書くかもしれない
- 普通にこうすればOK
- 文字コードは
utf8 general ciが良いらしいが果たして...
3.dbからデータを取り出してみる
sql
-- 全てのデータを取り出す
SELECT * FROM players;
-- 一部のカラムだけ取得する
SELECT name, level FROM players;
-- 一部の行だけ取得する
SELECT * FROM players WHERE level >= 7;
-- 複数の条件を組み合わせる
SELECT * FROM players WHERE level >= 7 AND job_id <> 6;
--条件指定とカラム選択を組み合わせる
SELECT name, level FROM players WHERE level >= 7;
-
全てのデータを取り出すについて
-
SELECT *により全てのカラムを指定し(*で全部ってなるよ) -
FROM players;で、「どこから?」「playersから」と言っている
-
-
一部のカラムだけ取得するについて
-
SELECTの後にカラム名を入れる事で取り出すカラムが選択可能(ここではnameとlevel)
-
-
一部の行だけ取得するについて
-
FROM ~~の後にWHEREと条件式を入れる事で、任意の行が取り出せる -
WHEREはANDやORを使って複数の条件式を適用出来る
-
使える条件式一覧
a = b
a < b
a > b
a <= b
a >= b
a <> b -- aとbが違うということ
4.終わりに
- そろそろAWS借りたり環境整えたりでWEBアプリ作るぞー!!!!