MySQLをPythonから弄る
Sponsored Links
皆さんこんにちは
お元気ですか。私は元気です。
さて、今まで掲載していた記事では全てConsoleから弄っていたのですが、
プログラムできないと不便でございます。
MySQLをプログラムから弄ることができます。さて、必要なパッケージをpipを使ってインストールします。
インストール
pip install mysql-python
実際の例
まずは、実際の例を見て行きましょう。
#coding:utf-8 import MySQLdb """ データベースに接続する """ connector = MySQLdb.connect(host="localhost", db="tests", user="wwww", passwd="xxxx", charset="utf8") """ テーブルを作る """ cursor = connector.cursor() sql = "CREATE TABLE test_table(id INT NOT NULL,content TEXT)" cursor.execute(sql) """ データベースに情報を格納する """ sql = "INSERT INTO test_table VALUES(1,'python')" cursor.execute(sql) data = (2,"C") statement = "INSERT INTO test_table VALUE(%s, %s)" cursor.execute(statement,data) dataset = [ (3, "Java"), (4, "C++"), (5, "Ruby"), ] statement = "INSERT INTO test_table VALUES(%s, %s)" cursor.executemany(statement, dataset) """ データベースに格納したデータを取得する。 """ cursor.execute("select * from test_table") result = cursor.fetchall() for row in result: print row """ テーブルを廃棄する """ cursor.execute("DROP TABLE test_table")
基本的にカーソルを取得して、
sql = "CREATE TABLE test_table(id INT NOT NULL,content TEXT)"
cursor.execute(sql)
sql文を作って、実行すれば問題ありません。DROP TABLEとかも問題なく動作します。
レコードを挿入
レコードの挿入ですが、prepared statementみたいな使い方をすれば以下のようにできます。
data = (2,"C") statement = "INSERT INTO test_table VALUE(%s, %s)" cursor.execute(statement,data)
複数まとめてでコミットする場合は
dataset = [ (3, "Java"), (4, "C++"), (5, "Ruby"), ] statement = "INSERT INTO test_table VALUES(%s, %s)" cursor.executemany(statement, dataset)
SELECTの結果を取得する
cursor.execute("select * from test_table") result = cursor.fetchall() for row in result: print row
fetchall()で結果を取得することができます。それをfor文で回して結果を取得しています。