目次
Pythonシリーズ記事の学習記録:
Windows環境へのPythonシリーズのインストールと設定
Python シリーズの判断とサイクル - ブログ - CSDN ブログ
Python シリーズの文字列とリスト - 自宅でトラクターを運転するブログ - CSDN ブログ
Python系モジュールの標準ライブラリOSを詳しく解説 - プログラマーが求めた
Python系モジュールの標準ライブラリについて詳しく解説 - プログラマー募集
Python系モジュールの標準ライブラリjsonを詳しく解説 - プログラマー募集
Python系モジュールの標準ライブラリshutilの詳細解説 - プログラマー募集
1.pymysqlをインストールする
Pycharm に import pymysql と入力し、プロンプトに従って [インストール] をクリックすると、モジュールがデフォルトの Python インストール ディレクトリの lib ディレクトリにインストールされます。以下は、私がインストールした pymysql モジュールのパスです。
またはピップを使用します
2、データベースに接続する
connect 関数を使用して、接続オブジェクトを作成します。この接続オブジェクトは、データベースのクローズやトランザクションのロールバックなどの操作を提供します。一般的なパラメータは次のとおりです:
ホスト、ユーザー、パスワード、ポート (デフォルトは 3306)、データベース (使用するデータベースの名前)に接続したい)
connect() メソッドのパラメータ
パラメータの説明:
パラメータ |
説明する |
ホスト= |
データベース接続アドレス |
ユーザー= |
データベースのユーザー名 |
パスワード= |
データベースのパスワード |
データベース= |
接続するデータベースの名前 |
ポート=3306 |
接続ポート、デフォルトは 3306 |
文字セット=utf8 |
文字セットを設定します (通常は utf8) |
接続タイムアウト=10 |
接続データベースのタイムアウト時間。通常、デフォルトは 10 秒です。 |
DSN |
データ ソース名。このパラメータはデータベースの依存関係を示します。 |
max_allowed_packet |
16 * 1024 * 1024 |
自動コミット | False 自動コミットのデフォルトは false |
オブジェクトを接続するための一般的な方法:
メソッド名 |
説明する |
カーソル() |
カーソル オブジェクトの取得、DML 操作の実行、ストアド プロシージャの呼び出しなどのデータベースの操作を行います。 |
専念() |
トランザクションをコミットする |
ロールバック() |
トランザクションのロールバック |
近い() |
データベース接続を閉じる |
カーソル カーソル オブジェクトの一般的なメソッド
メソッド名 |
説明する |
実行(クエリ) |
SQL ステートメントやデータベース コマンドなどのデータベース操作を実行します。 |
実行多く(クエリ、パラメータ) |
バッチ操作の場合: バッチ更新 |
フェッチョーネ() |
クエリ結果セット内の次のレコードを取得します |
フェッチメニー(サイズ) |
クエリ結果セット内の指定された数のレコードを取得します。サイズのデフォルトは 1 です。 |
フェッチオール() |
クエリ結果セット内のすべてのレコードを取得します |
nextset() |
次に利用可能な結果セットにスキップします |
近い() |
現在のカーソルオブジェクトを閉じる |
3. データベースの操作
3.1 クエリ
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
# 查询SQL
selectSQL = """
SELECT SiteId,SiteName from site_all_info where SiteId ='%s';
""" % siteId
try:
# 执行sql语句,也可执行数据库命令
curses.execute(selectSQL)
# 所有结果
result = curses.fetchall()
print(type(result))
print(result)
except Exception as e:
db.rollback() # 回滚
print("查询失败", e)
finally:
curses.close() # 关闭当前游标
db.close() # 关闭数据库连接
検索結果:
追加、削除、変更にはトランザクションを送信する操作が必要ですが、クエリにはトランザクションを送信する必要はありませんが、クエリをループする場合はトランザクションを送信する必要があり、そうしないと結果が重複します。
3.2アップデート
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"
# 查询SQL
selectSQL = """
update site_all_info set sitename = '%s' where SiteId ='%s';
""" % (siteName, siteId)
try:
# 执行sql语句,也可执行数据库命令
curses.execute(selectSQL)
# 增删改,必须执行事务
db.commit()
# 所有结果
result = curses.fetchall()
print(type(result))
print(result)
except Exception as e:
db.rollback() # 回滚
print("查询失败", e)
finally:
curses.close() # 关闭当前游标
db.close() # 关闭数据库连接
更新が成功したかどうかを問い合わせる
3.3 ループによる一括更新
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"
table_name = "site_all_info"
update_list = ['Ahczlcc_P00001S00004', 'Ahczlcc_P00001S00005']
update_condition_list = ['北餐饮门', '北大门']
for i in range(len(update_list)):
# 查询SQL
selectSQL = """
update %s set sitename = '%s' where SiteId ='%s';
""" % (table_name, update_condition_list[i], update_list[i])
print(table_name, update_condition_list[i], update_list[i])
try:
# 执行sql语句
curses.execute(selectSQL)
# 执行事务
db.commit()
except Exception as e:
db.rollback()
print(e)
curses.close()
db.close()
実行結果の比較:
Pythonシリーズ記事の学習記録:
Windows環境へのPythonシリーズのインストールと設定
Python シリーズの判断とサイクル - ブログ - CSDN ブログ
Python シリーズの文字列とリスト - 自宅でトラクターを運転するブログ - CSDN ブログ
Python系モジュールの標準ライブラリOSを詳しく解説 - プログラマーが求めた
Python系モジュールの標準ライブラリについて詳しく解説 - プログラマー募集
Python系モジュールの標準ライブラリjsonを詳しく解説 - プログラマー募集
Python系モジュールの標準ライブラリshutilの詳細解説 - プログラマー募集
参考: