Pythonのデータベース操作(テーブル作成・データ挿入・データ取得)の共通関数の使い方を詳しく解説
例 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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法
