python3の使用はCRUDを実装pymysql

推奨読書:PyMySQL学ぶためにあなたを取るMySQLとPymysqlを

説明リンク

ネイティブステートメントの操作

挿入CRUD文、削除、更新、選択が付属していたいわゆるネイティブのMySQL声明。のは、例のpython3を使用してみましょう。一般的な使用pymsqlモジュール用のデータベースへのpython3のリンクで。

サードパーティのライブラリのインストール
pip install pymysql
复制代码
データベースへのリンクを作成します。

私たちは、前提のMySQLデータベースを構成し、かつpymysqlモジュールにインストールされています。その後、我々は次のサンプルコードを参照してください、pymsqlをインポートする必要があります。

conn = pymysql.connect(host='localhost', 
port=3306, user='root', 
passwd='1234', db='user', charset='utf8mb4')#声明mysql连接对象
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#查询结果以字典的形式
cursor.execute(sql语句字符串)#执行sql语句
conn.close()#关闭链接
复制代码
トランザクション処理

削除データはこれを避けるために、欠落データが得られ、挿入されていない前に、トランザクションのメカニズムは、我々は論理削除を持っている場合、データの整合性を確保し、私たちが失敗した場合、挿入中に、データを挿入することができます事態の削除は、我々は、上記の操作が成功し提出している、またはロールバックする場合は何事もなかったかのように、統一されたプロセスを使用するために使用されます。以下の文言を使用してコード

try:
   cursor.execute(sql)
   conn.commit()
except:
   conn.rollback()
复制代码
ダイナミック挿入データ

着信辞書は動的に変更することができます。

例えば、我々はユーザーと呼ばれる、このようなテーブルを持っている、非常に始まり、次の3つのフィールドIDを保存する必要があり、名前、年齢、その後私たちは、次の表と辞書の名前を構築することができます

D = { 'ID': '1001'、 '名称': 'zhangsan'、 '年齢': '17'}  

tables='user'

d={'id':'1001','name':'zhangsan','age':'17'}  
 
tables='user'
keys=','.join(d.key())
values=','.join(['%s']*len(d))
sql=f'INSERT INTO {table}({keys})VALUES({values})'
try:
   if cursor.execute(sql,tuple(d.values())):
                  print('ok')
                  conn.commit()
except:
     print('no')
     conn.rollback()
conn.close()
复制代码

今、私たちは、挿入操作を完了しているが、時には我々は、次の文を参照してくださいまず、それが存在しない場合に行う方法を挿入し、主キーの存在が細かいです必要

動的に更新されたデータを挿入します
INSERT INTO user(id,name,age) VALUES(%s,%s,%s) ON DUPLICATE KEY UPDATE id=%s,name=%s,age=%s
ON DUPLICATE KEY UPDATE 
复制代码

あなたは、次の目標を達成することができます。

データベースにレコードを挿入します。

データ/ UNIQUE KEYの主キー値がすでにテーブルに存在する場合、更新操作が行われる、すなわち、UPDATE操作の裏面。

そうでない場合は、新しいレコードを挿入します。

その後、我々は上にコードの全体の並べ替えを行います。次のように

data_dic={'id':'1001','name':'zhangsan','age':'17'}  
 
tables = 'name'
keys = ','.join(data_dic.keys())
values = ','.join(['%s'] * len(data_dic))
sql =f'INSERT INTO {tables}({keys})VALUES({values}) ON DUPLICATE KEY UPDATE '
update = ','.join([f"{k}={v}" for k,v in data_dic.items()])
sql += update
try:
   if cursor.execute(sql,tuple(d.values())):
                  print('ok')
                  conn.commit()
except:
     print('no')
     conn.rollback()
conn.close()
复制代码
質問

比較的単純なクエリを選択し使用。以下のコードで直接見て

sql='select * from user limit 1,10'
cursor.excute(sql)
one=cursor.fetchone()
while one:
   one=cursor.fetchone()  
#推荐使用while循环配合fetchone读取所有数据,随用随取,效率高。
复制代码
文を削除します。

delete文と文を削除したが、直後に有効にするためにコミットします。

tale='user'
id='id=123'#可以直接把条件作为字符串传过来。
sql=f'delete from {table} where {id}'
try:
    cursor.execute(sql)
    conn.commit()
except:
    conn.rollback()
conn.close()
复制代码

ます。https://juejin.im/post/5d0af5a76fb9a07ef161880fで再現

おすすめ

転載: blog.csdn.net/weixin_34216107/article/details/93179231