python pymysqlを使用してMySQLおよびプレースホルダの問題を操作
19112 ワード
文書ディレクトリ pycharm操作MySQL SQL文作成(プレースホルダの適用) pycharm操作MySQL
python 3では、主にpymysqlを使用してMySQL操作を行い、基本的な操作手順を簡単に記録します.操作フローは一般的に3つのステップに分けられます.データベース接続を確立します.2.操作(クエリー、挿入、更新、削除など)3.接続を閉じてここに直接コードを貼り付けて、関数の形式で述べました:
操作を実行する際、カーソルメソッド:cursor.Excute()はSQL操作を実行します.
SQL文作成(プレースホルダの適用)
実行の鍵はSQL文の作成です.これらにはいくつかの方法があります.完全なSQL文、 を直接呼び出します.は、プレースホルダを使用してパラメータを渡す.ここでは、整数、文字列にかかわらず、プレースホルダは%sであり、引用符を付ける必要はありません. sql文でプレースホルダを使用して、完全なSQL を構成します.パラメータ代替 ディクショナリタイプ転送変数.ここで、プレースホルダのkeysが転送ディクショナリkeysに含まれることを保証する .
参照元:python 3操作MySQLデータベースPython接続MySQLデータベースsql文実行時のパラメータの問題
python 3では、主にpymysqlを使用してMySQL操作を行い、基本的な操作手順を簡単に記録します.操作フローは一般的に3つのステップに分けられます.データベース接続を確立します.2.操作(クエリー、挿入、更新、削除など)3.接続を閉じてここに直接コードを貼り付けて、関数の形式で述べました:
import pymysql
#
def connect():
conn = pymysql.connect(host='localhost',
port=3306,
user='root',
password='root',
database='njust',
charset='utf8')
#
cursor = conn.cursor()
return {"conn": conn, "cursor": cursor
操作を実行する際、カーソルメソッド:cursor.Excute()はSQL操作を実行します.
# 1、
def select_sql(table):
connection = connect()
conn, cursor = connection['conn'], connection['cursor']
sql = "select * from %s" % table
try:
cursor.execute(sql)
results = cursor.fetchall()
print(results)
except Exception as e:
raise e
finally:
cursor.close()
conn.close()
#
def insert_sql(persons_values):
connection = connect()
conn, cursor = connection['conn'], connection['cursor']
keys = ", ".join(persons_values.keys())
qmark = ", ".join(["%s"] * len(persons_values))
sql_insert = "insert into persons(%s) values (%s)" % (keys, qmark)
print(sql_insert)
try:
cursor.execute(sql_insert, list(persons_values.values()))
conn.commit()
print(" ")
except Exception as e:
print(e)
conn.rollback()
print(" ")
finally:
cursor.close()
conn.close()
#
def insert_sql2(message):
connection = connect()
conn, cursor = connection['conn'], connection['cursor']
sql_insert = "insert into persons(ID, LastName, FirstName) " \
"values (%(ID)s, %(LastName)s, %(FirstName)s)"
try:
cursor.execute(sql_insert, message)
conn.commit()
print(" ")
except Exception as e:
print(e)
conn.rollback()
print(" ")
finally:
cursor.close()
conn.close()
#
def update_sql():
connection = connect()
conn, cursor = connection['conn'], connection['cursor']
sql_update = "update persons set birthday=%s where ID=%s"
try:
cursor.execute(sql_update, ('2001/7/5', 3))
conn.commit()
print(' ')
except Exception as e:
print(' ', e)
conn.rollback()
finally:
cursor.close()
conn.close()
pass
#
def delete_sql(lastname):
connection = connect()
conn, cursor = connection['conn'], connection['cursor']
sql_delete = "delete from persons where LastName=%s"
try:
cursor.execute(sql_delete, lastname)
conn.commit()
print(' ')
except Exception as e:
print(' ', e)
conn.rollback()
finally:
cursor.close()
conn.close()
pass
SQL文作成(プレースホルダの適用)
実行の鍵はSQL文の作成です.これらにはいくつかの方法があります.
sql_select = "select * from tablename"
cursor.execute(sql_select)
tabel = 'persons'
sql = "select * from %s" % table
cursor.execute(sql)
tabel = 'persons'
sql = "select * from %s"
cursor.execute(sql, table)
# 1 ,execute() list tuple
sql_update = "update persons set birthday=%s where ID=%s"
cursor.execute(sql_update, ('2001/7/5', 3))
# %s %( keyname)s
sql_insert = "insert into persons(ID, LastName, FirstName) " \
"values (%(ID)s, %(LastName)s, %(FirstName)s)"
message = {
"ID": 7,
"LastName": "Jone",
"FirstName": "Bob",
}
cursor.execute(sql_insert, message)
参照元:python 3操作MySQLデータベースPython接続MySQLデータベースsql文実行時のパラメータの問題