- 今回は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アプリ作るぞー!!!!