E71でPython-MySQLdbでCRUD の変更点
Top / E71でPython-MySQLdbでCRUD
- 追加された行はこの色です。
- 削除された行はこの色です。
- E71でPython-MySQLdbでCRUD へ行く。
- E71でPython-MySQLdbでCRUD の差分を削除
*E71でPython-MySQLdbでCRUD [#n0ecfa2a] タイトルの日本語がおかしいですが、Python-MySQLdbでCRUDやってみた記録です。 ※CRUD:Create、Read、Update、Deleteの略 参照(select文)は[[E71でPython-MySQLdbの動作確認]]でやってますんで、更新系を中心にやってみます。 ***Insert文 [#h926334d] 早速やってみました。MySQLへの接続は前回と同様です。&br; Python 2.2.2 (#0, Nov 7 2008, 14:24:30) [C] on symbian_s60 Type "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> import MySQLdb >>> conn = MySQLdb.connect(db="test_db", host="127.0.0.1", user="root",passwd="") >>> >>> cur = conn.cursor() >>> ここまでで、MySQLへの接続、SQL文実行準備が完了!&br; &br; 早速Insert文を発行してみる。&br; >>> cur.execute('''insert into test values ('jiro','pass1')''') 1L &br; insert文は、中でシングルクオートを使うので、「'''」でくるみます。~ 発行した結果、「1L」って出力されているので、なんか成功したっぽい。~ 本当に入っているか、selectしてみる。&br; >>> cur.execute('select * from test') >>> 1L >>> rows = cur.fetchall() >>> for row in rows: ... print row[0],row[1] ... jiro pass1 >>> &br; うん、ちゃんと入ってる。じゃあ、ロールバックしてみよう! &br; >>> conn.rollback() >>> &br; ちゃんとロールバックされているか、確認 &br; >>> cur.execute('select * from test') 1L >>> for row in rows: ... print row[0],row[1] ... jiro pass1 >>> &br; あら?ロールバックされていない・・・~ もしかして、デフォルトでオートコミット??~ &br; MySQLuiから確認しても、レコードは挿入されてる。 &br; ってことは、デフォルトでオートコミットなのね笑。 &br; ※MySQLのオートコミットについては[[E71でのMySQLのオートコミット無効化について]]で調べてます。 ***update文、delete文 [#xdb9c42f] updateもdeleteも、使い方はinsertと同じです。 >>> conn = MySQLdb.connect(db="test_db", host="127.0.0.1", user="testuser") >>> >>> cur = conn.cursor() >>> >>> cur.execute('select * from test') ←1 2L >>> >>> rows = cur.fetchall() >>> >>> for row in rows: ... print row[0],row[1] ... jiro jiropass saburo sabupass ←2 >>> >>> cur.execute('''update test set user='satoru' where user='saburo' ''') ←3 1L >>> cur.execute('select * from test') 2L >>> >>> rows = cur.fetchall() >>> >>> for row in rows: ... print row[0] jiro satoru ←4 >>> >>> cur.execute('''delete from test where user='satoru' ''') ←5 1L >>> >>> cur.execute('select * from test') 1L >>> >>> rows = cur.fetchall() >>> >>> for row in rows: ... print row[0] jiro ←6 >>> >>> cur.close <bound method Cursor.close of <MySQLdb.cursors.Cursor object at 0x174c8d0>> >>> conn.close <built-in method close of Connection object at 0x726430> >>> 各行の解説 +事前データの確認用select文 +2行結果が返ってきて、その2行目をupdate、delete対象とする +update文を発行 +2行目がsatoruにupdateされていることを確認 +delete文を発行 +deleteされていることを確認 ***感想 [#w3cae393] とりあえず、python-MySQLの疎通は完了ということで。 しかし、pythonのコンソールって、ちょっと動かしたいときにすごい便利ですね~