HiiHahWIKI - making some notes for... -
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_...
Type "copyright", "credits" or "license" for more inform...
(InteractiveConsole)
>>> import MySQLdb
>>> conn = MySQLdb.connect(db="test_db", host="127.0.0.1...
>>>
>>> cur = conn.cursor()
>>>
ここまでで、MySQLへの接続、SQL文実行準備が完了!&br;
&br;
早速Insert文を発行してみる。&br;
>>> cur.execute('''insert into test values ('jiro','pass...
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...
>>>
>>> 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 u...
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' ...
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 ob...
>>> 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のコンソールって、ちょっと動かしたいときに...
終了行:
*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_...
Type "copyright", "credits" or "license" for more inform...
(InteractiveConsole)
>>> import MySQLdb
>>> conn = MySQLdb.connect(db="test_db", host="127.0.0.1...
>>>
>>> cur = conn.cursor()
>>>
ここまでで、MySQLへの接続、SQL文実行準備が完了!&br;
&br;
早速Insert文を発行してみる。&br;
>>> cur.execute('''insert into test values ('jiro','pass...
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...
>>>
>>> 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 u...
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' ...
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 ob...
>>> 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のコンソールって、ちょっと動かしたいときに...
ページ名: