Python系モジュールのpymysqlはMySQLデータベースを操作します

目次

1.pymysqlをインストールする

2、データベースに接続する

3. データベースの操作

3.1 クエリ

3.2アップデート

3.3 ループによる一括更新


 Pythonシリーズ記事の学習記録: 

Windows環境へのPythonシリーズのインストールと設定

Pythonシリーズの変数と演算子

Python シリーズの判断とサイクル - ブログ - CSDN ブログ

Python シリーズの文字列とリスト - 自宅でトラクターを運転するブログ - CSDN ブログ

Pythonシリーズのファイル操作と機能

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_pa​​cket
 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シリーズの変数と演算子

Python シリーズの判断とサイクル - ブログ - CSDN ブログ

Python シリーズの文字列とリスト - 自宅でトラクターを運転するブログ - CSDN ブログ

Pythonシリーズのファイル操作と機能

Python系モジュールの標準ライブラリOSを詳しく解説 - プログラマーが求めた

Python系モジュールの標準ライブラリについて詳しく解説 - プログラマー募集

Python系モジュールの標準ライブラリjsonを詳しく解説 - プログラマー募集

Python系モジュールの標準ライブラリshutilの詳細解説 - プログラマー募集


参考:

python - データベース操作の詳しい説明 PyMysql - プログラマー募集

おすすめ

転載: blog.csdn.net/qq_35995514/article/details/130984339