python 如何连接MySQL数据库
在连接数据库之前,我们需要使用到一个模块pymysql
,使用pip命令安装该库:
pip install pymysql
还需要开启MySQL服务,在命令行中输入:net start mysql 即可
如果报错,有两种可能:
- mysql没有加入环境变量,加入环境变量再执行下一步即可
- MySQL不在服务列表中,在管理员模式下的命令行中输入
mysqld -install
下面主要实现更删改查:
这个库主要使用SQL命令对数据库进行操作,具体代码如下所示。
import pymysql
# (1)连接数据库
connect = pymysql.connect(
host='localhost',
user='root',
passwd="",
charset="utf8",
autocommit=True# 这里不设置会出现无法插入值的奇怪bug
)
cur = connect.cursor() # 创建游标,用于读取数据
if connect:
print("数据库连接成功!")
# (2)创建数据库
create_db = "CREATE DATABASE IF NOT EXISTS `pdf_info`;"
try:
cur.execute(create_db)
cur.execute("use pdf_info") # 选择数据库
except Exception as e:
print("数据库创建失败:",e)
else:
print("数据库创建成功!")
# (3)创建数据表
create_table = "CREATE TABLE IF NOT EXISTS info (t1 VARCHAR(100),pro_name VARCHAR(100), code VARCHAR(100), num VARCHAR(100),date VARCHAR(100),year VARCHAR(100),month VARCHAR(100),day VARCHAR(100), client_name VARCHAR(100),client_itin VARCHAR(100), seller_name VARCHAR(100),seller_itin VARCHAR(100), car_num VARCHAR(100),car_type VARCHAR(100),total_price VARCHAR(100),price VARCHAR(100),tax_rate VARCHAR(100),tax_price VARCHAR(100),dir VARCHAR(200),path VARCHAR(200),file VARCHAR(200))"
try:
cur.execute(create_table)
except Exception as e:
print("数据表创建失败:",e)
else:
print("数据表创建成功!")
# (4)插入数据
pdfs = []
try:
for file in pdfs:
insert_data = "INSERT INTO `info` VALUES('"+file["t1"]+"','"+file["pro_name"]+"','"+file["code"]+"','"+file["num"]+"','"+file["date"]+"','"+file["year"]+"','"+file["month"]+"','"+file["day"]+"','"+file["client_name"]+"','"+file["client_itin"]+"','"+file["seller_name"]+"','"+file["seller_itin"]+"','"+file["car_num"]+"','"+file["car_type"]+"','"+file["total_price"]+"','"+file["price"]+"','"+file["tax_rate"]+"','"+file["tax_price"]+"','"+file["dir"]+"','"+file["path"]+"','"+file["file"]+"');"
cur.execute(insert_data)
except Exception as e:
print("数据信息插入失败:",e)
else:
print("信息插入成功!")
# (5)查询数据
try:
query_info = "select * from info;"
cur.execute(query_info)
res = cur.fetchall()
except Exception as e:
print("数据表创建失败:",e)
else:
print("数据如下:")
for i in res: print(i)
# (6)关闭数据库连接
cur.close()
connect.close()
网友评论