ホームページ >バックエンド開発 >Python チュートリアル >Pythonのデータベース操作でよく使われる関数の使い方を詳しく解説
例 1. MYSQL バージョンを取得します
コードは次のとおりです:
# -*-coding: UTF-8 -*-
#Python 用に MYSQL DB をインストールする
import MySQLdb as mdb
con = None
try:
#mysql に接続する メソッド: connect('ip','user','password','dbname')
con = mdb.connect('localhost', 'root',
'root', 'test');
#すべてのクエリ、すべて con に接続されたモジュール カーソル上で実行されます
Cur = con.cursor()
#クエリを実行します
cur.execute("SELECT VERSION()")
#前のクエリの結果を取得します。は 1 つの結果です
data = cur.fetchone()
data = cur. 25
例 2、テーブルを作成してデータを挿入します
コードをコピーする コードは次のとおりです:
# -*- コーディング: UTF- 8 -*-
import sys
#con をグローバル接続として設定con = mdb.connect('localhost', 'root', 'root', 'test');
with con: #接続のカーソルを取得します。カーソルを取得することによってのみ、さまざまな操作を実行できます
cur = con.cursor()
#データテーブルを作成します Writers(id,name)
cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
#以下に5つのデータを挿入します
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur .execute("作家(名前)の値に挿入('バルザックオノレ')")
cur.execute ("作家(名前)の値に挿入('ライオン・フォイヒトヴァンガー')")
cur.execute("作家に挿入(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
例 3、Python は slect を使用して mysql データを取得し、トラバースします
Copyコード コードは次のとおりです:
# -*-coding: UTF-8 -*-
import sys
#mysql に接続し、接続されているオブジェクトを取得しますcon = mdb.connect('localhost' , 'root', 'root', 'test');
with con: #それでも、最初のステップはクエリを実行するために接続されたカーソルオブジェクトを使用します
Cur = con.cursor()
#次と同様他の言語のクエリ関数、execute は Python の実行クエリ関数です
cur.execute("SELECT * FROM Writers")
#Use fetchall 関数は結果セット (多次元タプル) を行に格納します
rows = cur.fetchall( )
#結果セットを順番に走査し、各要素がテーブル内のレコードであり、ROWS の ROW のタプルとして表示されることを確認します。 1L、「ジャック・ロンドン」)
(2L、「オノレ・ド・バルザック」)
(3L、「ライオン・フォイヒトヴァンガー」)
(4L、「エミール・ゾラ」)
(5L、「トルーマン・カポーティ」)
例 4. 使用例 4.辞書カーソルを使用して結果セットを取得します (テーブルのフィールド名を使用して値にアクセスできます)
コードをコピー コードは次のとおりです:
# -*- コーディング: UTF-8 -*-
# 出典: Crazy Ant のブログwww.server110.com まとめとコンパイルMySQLdbをmdbとしてインポート
import sys
#mysqlクエリのリンクオブジェクトを取得します
con = mdb.connect('localhost' , 'root', 'root', 'test')
with con:
#接続上の辞書カーソルを取得します。取得方法に注意してください
#各カーソルは実際にはカーソルのサブクラスです
#実行ステートメントは変更されません
cur.execute("SELECT * FROM Writers")# データの取得方法は変わりません
rows = cur.fetchall()
行内の行:
#ここでは、キーと値のペアを使用できますキー名でデータを取得するメソッド
])
例5、単一テーブルのフィールド名と情報を取得するメソッド
コードをコピー コードは次のとおりです:
# -*- コーディング: UTF-8 -*-
# 出典: Crazy Ant のブログ www.server110.com 概要とコンパイル
import MySQLdb as mdb
import sys
#データベースのリンク オブジェクトを取得する
con = mdb . connect('localhost', 'root', 'root', 'test')
with con:
# 通常のクエリカーソルを取得します
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
# 接続オブジェクトの説明情報を取得します
desc = cur.description
print 'cur.description:',desc
# フィールド名であるヘッダーを出力します
print "%s %3s" % ( desc[0][0], desc[1][0])
行内の行:
.description: (('Id', 3, 1, 11, 11 , 0, 0), ('名前', 253, 17, 25, 25, 0, 1))
ID 名前
2 オノレ・ド・バルザック
3 ライオン・フォイヒトヴァンガー4 エミール・ゾラ
5 トルーマン・カポーティ
例 6. Prepared ステートメントを使用してクエリを実行する (より安全で便利です)
コードをコピーする コードは次のとおりです:
# -*-coding: UTF-8 - *-
# 出典: Crazy Ant のブログ www. server110.com まとめとコンパイル
import sys
con = mdb.connect('localhost', 'root', 'root', 'test') with con:
Cur = con.cursor()
#これは、アセンブル可能な SQL ステートメントを書くことで実行できることがわかります
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Guy de Maupasant", "4"))
#影響を受ける行数を取得するには cur.rowcount を使用します
print "更新された行数: %d" % cur.rowcount
結果:
コードをコピーする コードは次のとおりです:
行数更新日: 1