#ææåä½å¤§èµ#
PyMySQLæ¯ä¸ä¸ªç¨äºPythonç纯Python MySQL客æ·ç«¯åºï¼å®å®ç°äºPEP 249 Pythonæ°æ®åºAPIè§èï¼å¹¶æä¾äºå¯¹MySQLæ°æ®åºçè¿æ¥åæä½åè½ã
代ç 示ä¾ï¼
è¿æ¥å°MySQLæ°æ®åºï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢è¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡å¸¦åæ°çSQLæ¥è¯¢è¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡å¸¦åæ°çSQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users WHERE age > %s"
cursor.execute(sql, (18,))
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæå ¥è¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæå
¥è¯å¥
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.execute(sql, ('John', 25))
# æ交äºå¡
conn.commit()
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ´æ°è¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ´æ°è¯å¥
sql = "UPDATE users SET age = %s WHERE id = %s"
cursor.execute(sql, (30, 1))
# æ交äºå¡
conn.commit()
# å
³éè¿æ¥
conn.close()
æ§è¡SQLå é¤è¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLå é¤è¯å¥
sql = "DELETE FROM users WHERE id = %s"
cursor.execute(sql, (1,))
# æ交äºå¡
conn.commit()
# å
³éè¿æ¥
conn.close()
è·åæåæå ¥çèªå¢IDï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæå
¥è¯å¥
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.execute(sql, ('John', 25))
# è·åæåæå
¥çèªå¢ID
last_insert_id = cursor.lastrowid
# æ交äºå¡
conn.commit()
# å
³éè¿æ¥
conn.close()
# æå°æåæå
¥çèªå¢ID
print(last_insert_id)
使ç¨äºå¡å¤çï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å¼å§äºå¡
conn.begin()
try:
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLè¯å¥
sql1 = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.execute(sql1, ('John', 25))
sql2 = "UPDATE users SET age = %s WHERE id = %s"
cursor.execute(sql2, (30, 1))
# æ交äºå¡
conn.commit()
except:
# åæ»äºå¡
conn.rollback()
# å
³éè¿æ¥
conn.close()
æ§è¡å¤æ¡SQLè¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡å¤æ¡SQLè¯å¥
sql = """
INSERT INTO users (name, age) VALUES ('John', 25);
UPDATE users SET age = 30 WHERE id = 1;
"""
cursor.execute(sql)
# æ交äºå¡
conn.commit()
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶å页ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥å¹¶å页
sql = "SELECT * FROM users LIMIT %s, %s"
cursor.execute(sql, (0, 10))
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨åå ¸ç±»åè·åæ¥è¯¢ç»æï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', cursorclass=pymysql.cursors.DictCursor)
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡åå¨è¿ç¨ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡åå¨è¿ç¨
cursor.callproc('get_users')
# è·åè¾åºåæ°å¼
output_param = cursor.fetchone()
print(output_param)
# å
³éè¿æ¥
conn.close()
æ§è¡äºå¡ä¸çå¤ä¸ªSQLè¯å¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
try:
# å¼å§äºå¡
conn.begin()
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLè¯å¥
sql1 = "INSERT INTO users (name, age) VALUES ('John', 25)"
cursor.execute(sql1)
sql2 = "UPDATE users SET age = 30 WHERE id = 1"
cursor.execute(sql2)
# æ交äºå¡
conn.commit()
except:
# åæ»äºå¡
conn.rollback()
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åå段åï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åå段å
column_names = [desc[0] for desc in cursor.description]
print(column_names)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçè¡æ°ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçè¡æ°
num_rows = cursor.rowcount
print(num_rows)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçåæ°ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçåæ°
num_columns = len(cursor.description)
print(num_columns)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨è¿æ¥æ± è¿è¡æ°æ®åºè¿æ¥ï¼
import pymysql
from DBUtils.PooledDB import PooledDB
# å建è¿æ¥æ±
pool = PooledDB(pymysql, host='localhost', user='root', password='password', database='mydb')
# ä»è¿æ¥æ± è·åè¿æ¥
conn = pool.connection()
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨äºå¡ç®¡çå¨è¿è¡æ°æ®åºè¿æ¥ï¼
import pymysql
from pymysql import err
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å¼å§äºå¡
conn.begin()
# å建游æ 对象
cursor = conn.cursor()
try:
# æ§è¡SQLè¯å¥
sql1 = "INSERT INTO users (name, age) VALUES ('John', 25)"
cursor.execute(sql1)
sql2 = "UPDATE users SET age = 30 WHERE id = 1"
cursor.execute(sql2)
# æ交äºå¡
conn.commit()
except err as e:
# åæ»äºå¡
conn.rollback()
# å
³éè¿æ¥
conn.close()
使ç¨withè¯å¥è¿è¡æ°æ®åºè¿æ¥ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
with pymysql.connect(host='localhost', user='root', password='password', database='mydb') as conn:
# å建游æ 对象
with conn.cursor() as cursor:
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
使ç¨è¿æ¥æ± è¿è¡æ°æ®åºè¿æ¥å¹¶è®¾ç½®è¿æ¥æ± 大å°ï¼
import pymysql
from DBUtils.PooledDB import PooledDB
# å建è¿æ¥æ±
pool = PooledDB(pymysql, host='localhost', user='root', password='password', database='mydb', maxconnections=10)
# ä»è¿æ¥æ± è·åè¿æ¥
conn = pool.connection()
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
设置å符éï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', charset='utf8mb4')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
设置èªå¨æ交模å¼ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', autocommit=True)
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæå
¥è¯å¥
sql = "INSERT INTO users (name, age) VALUES ('John', 25)"
cursor.execute(sql)
# å
³éè¿æ¥
conn.close()
è®¾ç½®è¶ æ¶æ¶é´ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', connect_timeout=10)
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨fetchone()æ¹æ³è·åæ¥è¯¢ç»æçä¸è¡æ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçä¸è¡æ°æ®
row = cursor.fetchone()
# æå°ç»æ
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨fetchmany()æ¹æ³è·åæ¥è¯¢ç»æçå¤è¡æ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçå¤è¡æ°æ®
rows = cursor.fetchmany(5)
# æå°ç»æ
for row in rows:
print(row)
# å
³éè¿æ¥
conn.close()
使ç¨scroll()æ¹æ³æ»å¨æµè§æ¥è¯¢ç»æï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# æ»å¨æµè§æ¥è¯¢ç»æ
cursor.scroll(2, mode='absolute') # ç»å¯¹ä½ç½®
row = cursor.fetchone()
print(row)
cursor.scroll(-1, mode='relative') # ç¸å¯¹ä½ç½®
row = cursor.fetchone()
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçåååè¡æ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åå段å
column_names = [desc[0] for desc in cursor.description]
print(column_names)
# è·åæ¥è¯¢ç»æ
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçåå ¸ç±»åæ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', cursorclass=pymysql.cursors.DictCursor)
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçåå
¸ç±»åæ°æ®
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æççæå¨ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æççæå¨
results = cursor.fetchall()
# çæå¨å¾ªç¯æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçå ç»ç±»åæ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçå
ç»ç±»åæ°æ®
results = cursor.fetchall()
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçå表类åæ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor()
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# è·åæ¥è¯¢ç»æçå表类åæ°æ®
results = list(cursor.fetchall())
# æå°ç»æ
for row in results:
print(row)
# å
³éè¿æ¥
conn.close()
æ§è¡SQLæ¥è¯¢å¹¶è·åæ¥è¯¢ç»æçéåç±»åæ°æ®ï¼
import pymysql
# å建æ°æ®åºè¿æ¥
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb')
# å建游æ 对象
cursor = conn.cursor(pymysql.cursors.DictCursor)
# æ§è¡SQLæ¥è¯¢è¯å¥
sql = "SELECT * FROM users"
cursor.execute(sql)
# å
³éè¿æ¥
conn.close()
mysqlå ¶ä»æä½å¯åèï¼
mysql8å®å ¨åºçº¿åå®å ¨ä¼å
mysql8.0å®è£ ãé¨ç½²åä¼å
Shellèæ¬æ¥å®ç°MySQLæå¡çå®æ¶å¥åº·æ§æ£æ¥
shellèæ¬å®ç°mysqlæ°æ®åºæ件åæ¥å¿å¤ä»½
ææ¯å¹²è´§|MySQL 8ç´¢å¼ä¼åãæ¥è¯¢ä¼åã表设计ä¼ååé ç½®ä¼å
Ansibleå®ç°ç产ç¯å¢ä¸é®å¼Linux+Nginx+MySQL+Tomcatä¼ä¸çº§æ¶æ
Python MySQL驱å¨æ¨¡åmysql-connector-python常è§ç¨æ³