連接mysql的包有好幾個常用的植袍,下面用的是mysql-connector叭披。
安裝:pip install mysql-connector-python
增刪改查示例:
import mysql.connector
from mysql.connector import Error
try:
connection = mysql.connector.connect(host='localhost',
database='test',
user='test',
password='test', pool_size=5, autocommit=False)
if connection.is_connected():
db_Info = connection.get_server_info()
print("Connected to MySQL database... MySQL Server version on ", db_Info)
cursor = connection.cursor()
cursor.execute("select database();")
record = cursor.fetchone()
print("Your connected to - ", record)
cursor.close()
# insert
def insert_demo():
sql_insert_query = f""" INSERT INTO `press`
(`title`, `code`, `id`) VALUES ('Scott','2018', 52)"""
cursor = connection.cursor()
result = cursor.execute(sql_insert_query)
# dynamic parameter
sql_insert_query = """ INSERT INTO `press`
(`title`, `code`, `id`) VALUES (%s,%s,%s)"""
insert_tuple = ('Scott', '2018', 53)
result = cursor.execute(sql_insert_query, insert_tuple)
# insert many
insert_tuples = [('Scott', '2018', 54),
('Scott', '2018', 55)]
# used executemany to insert 3 rows
result = cursor.executemany(sql_insert_query, insert_tuples)
print("Record inserted successfully into python_users table")
cursor.close()
insert_demo()
# select
def select_demo():
id_limit = 40
sql_select_Query = f"select * from press where id > {id_limit}"
cursor = connection.cursor()
cursor.execute(sql_select_Query)
records = cursor.fetchall()
print("Total number of rows in python_developers is - ", cursor.rowcount)
print("Printing each row's column values")
for row in records:
print("title = ", row[0], )
print("code = ", row[1])
print("id = ", row[2])
cursor.close()
# Update single record now
def update_demo():
cursor = connection.cursor()
sql_update_query = """Update press set code = 2019 where id = 55"""
cursor.execute(sql_update_query)
connection.commit()
print("Record Updated successfully ")
cursor.close()
# delete
def delete_demo():
# Delete record now
cursor = connection.cursor()
sql_delete_query = """delete from press where id = 53"""
cursor.execute(sql_delete_query)
connection.commit()
except Error as e:
connection.rollback() # MyISAM doesn't support transaction, it won't work fot that type database
print("Error while connecting to MySQL", e)
finally:
# closing database connection.
if (connection.is_connected()):
cursor.close()
connection.close()
print("MySQL connection is closed")
注意mysql的MyISAM引擎不支持事務(wù),用python來對MyISAM引擎的表執(zhí)行回滾操作不會報錯耘擂,只是沒有效果蓖租。