ホームページ > バックエンド開発 > Python チュートリアル > Pythonのデータベース操作(テーブル作成・データ挿入・データ取得)の共通関数の使い方を詳しく解説

Pythonのデータベース操作(テーブル作成・データ挿入・データ取得)の共通関数の使い方を詳しく解説

WBOY
リリース: 2016-06-16 08:45:56
オリジナル
1367 人が閲覧しました

例 1. MYSQL バージョンを取得する

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

# -*- コーディング: UTF-8 -*-
#Python 用に MYSQL DB をインストール
mdb として MySQLdb をインポート
con = None
try:
#mysql に接続する方法: connect('ip','user','password','dbname ')
con = mdb.connect('localhost', 'root',
'root', 'test');
#すべてのクエリは con
cur に接続されたモジュール カーソル上で実行されます= con.cursor()
#クエリを実行します
cur.execute("SELECT VERSION()")
#単一の結果である前のクエリの結果を取得します
data = cur .fetchone( )
print "データベース バージョン: %s " % data
finally:
if con:
#何があっても接続を閉じることを忘れないでください
con.close()

実行結果:
データベースバージョン:5.5.25

例 2、テーブルの作成とデータの挿入

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

# -*- コーディング: UTF-8 -*-
import MySQLdb as mdb
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 ('ジャック・ロンドン')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES ('ライオン・フォイヒトヴァンガー')")
cur.execute("作家(名前)の値に挿入('エミール・ゾラ')")
cur.execute("作家(名前)の値に挿入('トルーマン・カポーティ) ')" )

例 3、Python は slect を使用して mysql データを取得し、走査します

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

# -*- コーディング: UTF-8 -*-
import MySQLdb as mdb
import sys
#mysql に接続し、接続されたオブジェクトを取得します
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#それでも、最初のステップはクエリを実行するための接続されたカーソル オブジェクトを取得することです
cur = con.cursor()
#他の言語のクエリ関数と同様に、execute は実行ですPython のクエリ関数
cur.execute("SELECT * FROM Writers")
#fetchall 関数を使用して結果セット (多次元タプル) を行に格納します
rows = cur.fetchall()
#Traverse in sequence 結果セットでは、各要素がテーブル内のレコードであることがわかり、行内の行のタプル
として表示されます:
print row

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

実行結果:
(1L, 'Jack London')
(2L、「オノーレ・ド・バルザック」)
(3L、「ライオン・フォイヒトヴァンガー」)
(4L、「エミール・ゾラ」)
(5L、「トルーマン・カポーティ」)

例 4. ディクショナリ カーソルを使用して結果セットを取得します (テーブルのフィールド名を使用して値にアクセスできます)

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

# -*- コーディング: UTF-8 -*-
# 出典: Crazy Ant のブログの概要 www.server110.com
import MySQLdb as mdb
import sys
#mysql クエリのリンク オブジェクトを取得
con = mdb.connect('localhost', ' root' , 'root', 'test')
with con:
#接続上の辞書カーソルを取得します。取得方法に注意してください。
#各カーソルは実際にはカーソルのサブクラスです
cur = con.cursor(mdb.cursors.DictCursor)
#実行文は変更されません
cur.execute("SELECT * FROM Writers")
#データの取得方法は変更されません
rows = cur.fetchall( )
#データのトラバースは変更されません (以前よりも直接的です)
for rows in rows:
#ここでは、キーと値のペアのメソッドを使用してデータを取得できますキー名別
print "%s %s" % (row["Id"], row["Name"])

例 5、単一テーブルのフィールド名と情報を取得する方法

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

# -*- コーディング: UTF-8 -*-
# 出典: Crazy Ant のブログ www.server110.com 概要
mdb として MySQLdb をインポート
import sys
#Getデータベースのリンク オブジェクト
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])
行内の行:
#Print results
print "%2s %3s" % row

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

実行結果: cur.description: (('Id', 3, 1, 11 , 11, 0, 0), ('名前', 253, 17, 25, 25, 0, 1))
ID 名
1 ジャック・ロンドン
2 オノレ・ド・バルザック
3 ライオン・フォイヒトヴァンガー
4 エミール・ゾラ
5 トルーマン・カポーティ


例 6. プリペアド ステートメントを使用してクエリを実行する (より安全で便利です)

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

# -*- コーディング: 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()
#これは、アセンブル可能な SQL ステートメントを記述することで実行できることがわかります。
cur.execute("UPDATE Writers SET Name = % s WHERE Id = %s",
("Guy de Maupasant", "4"))
#cur.rowcount を使用して影響を受ける行数を取得します
print "更新された行数: %d " % cur .rowcount

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

更新された行数: 1
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート