ホームページ  >  記事  >  バックエンド開発  >  PythonでMySQLデータベースを操作する具体的な方法

PythonでMySQLデータベースを操作する具体的な方法

WBOY
WBOYオリジナル
2016-06-16 08:46:241027ブラウズ

コードをコピー コードは次のとおりです:

MySQLdb をインポート

try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)
cur=conn.cursor()
cur.execute('select * from user')
cur.close()
conn.close()
MySQLdb.Error を除く、e:
print "Mysql エラー %d: %s" % (e.args[0], e.args[1])

データベース、ホスト名、ユーザー名、パスワードの変更には注意してください。

データの挿入、バッチでのデータの挿入、およびデータの更新の例を簡単に示します。

コードをコピー コードは次のとおりです:

import MySQLdb

try:
conn= MySQLdb.connect (host='localhost',user='root',passwd='root',port=3306)
cur=conn.cursor()

cur.execute('データベースを作成する if存在しません python ')
conn.select_db('python')
cur.execute('create table test(id int,info varchar(20))'​​)

value=[1, 'こんにちは、ローレン ']
cur.execute('テスト値(%s,%s)に挿入',value)

値=[]
for i in range(20):
値 .append((i,'hi rollen'+str(i)))

cur.executemany('テスト値 (%s,%s) に挿入',values)

cur .execute('update test set info="I am rollen" where id=3')

conn.commit()
cur.close()
conn.close()

MySQLdb.Error を除く,e:
print "Mysql エラー %d: %s" % (e.args[0], e.args[1])

トランザクションをコミットするには conn.commit() が必要であることに注意してください。そうしないと、データを実際に挿入することができません。

実行後、MySQL データベースの結果は図のようになりません。

コードをコピー コードは次のとおりです:

import MySQLdb

try:
conn= MySQLdb.connect (host='localhost',user='root',passwd='root',port=3306)
cur=conn.cursor()

conn.select_db('python')

count=cur.execute('select * from test')
print '%s 行のレコードがあります' % count

result=cur.fetchone()
print result
print 'ID: %s info %s' % result

results=cur.fetchmany(5)
for r in results:
print r

print '== '*10
cur.scroll(0,mode='absolute')

results=cur.fetchall()
for r in results:
print r[1]


conn.commit()
cur.close()
conn.close()

MySQLdb.Error を除く、e:
print "Mysql エラー%d: %s" % (e.args[0], e.args[1])

長すぎるので結果は掲載しません。

中国語の文字はクエリ後に正しく表示されますが、データベース内では文字化けします。インターネットで検索したところ、

という 1 つの属性で実行できることがわかりました。

Python コード内

conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python') 属性を追加します:
次のように変更します:
conn = MySQLdb 。 Connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')
文字セットはデータベースのエンコーディングと同じである必要があります。データベース gb2312 の場合は、charset='gb2312' と書き込みます。

よく使用される関数は以下に掲載されています:

この接続オブジェクトは、トランザクション操作、標準メソッド
commit() commit
rollback() rollback

のサポートも提供します。

コマンドを実行するためにカーソルによって使用されるメソッド:
callproc(self, procname, args): ストアド プロシージャの実行に使用されます。受け取ったパラメータはストアド プロシージャ名とパラメータ リストで、戻り値は影響を受けるストアド プロシージャの数です。 rows
execute(self, query, args): 単一の SQL ステートメントを実行します。受け取ったパラメーターは、SQL ステートメント自体と使用されたパラメーターのリストです。戻り値は、影響を受ける rows
executemany(self, query) です。 、args): ヘッズアップ SQL ステートメントを実行しますが、パラメーター リスト内のパラメーターを繰り返し実行します。戻り値は影響を受ける行の数です
nextset (self): 次の結果セットに移動します

戻り値を受け取るためにカーソルによって使用されるメソッド:
fetchall(self): すべての戻り結果行を受信します。
fetchmany(self, size=None): size の値が次の場合、戻り値の結果行を受け取ります。返される結果行の数より大きい場合は、cursor.arraysize データが返されます。
fetchone(self): 1 つの結果行を返します。
scroll(self, value, mode='relative'): ポインタを移動します。特定の 1 行。mode='relative' の場合、値バーを現在の行から移動します。mode='absolute' の場合、値バーを結果セットの最初の行から移動します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。