最近在用Python, 尝试了一下用py操控MySQL,以下的Python代码,基本上每行都有注释,说一下为什么需要用Python连接Mysql:比如用Python从网络上获取了数据后,需要写入到数据库, 那么就需要用到python写代码将数据插入到Mysql中去,到后面,数据获取完毕,还可以用Python发送邮件,告知某人获取到的数据行数, 什么时间点获取的等等信息,当然还有很多其他的情况都可以用到。
Python Version:3.7.0
Mysql Verion: 8.0.12
Python连接Mysql模组:pymysql
在MySQL生成的表:
Python代码:
#### 第一次连接MYSQL
# 引入pymysql
import pymysql
# 定义与mysql的连接参数(主机/端口/用户名/密码/数据库名称/字符串)
connect = pymysql.connect(host = 'localhost', port = 3306, user = 'root',
password = 'root', db = 'pa', charset = 'utf8mb4')
# 生成游标对象
cur = connect.cursor()
print(cur)
# - 获取光标成功,接下对mysql进行操作
# Start to create a table in db pa
try:
create_table_sql = 'create table if not exists pa.py01( id int , name varchar(100));'
# 执行SQL语句
cur.execute(create_table_sql)
except Exception as e:
print("建表失败:" + e + "!!!")
else:
print("建表成功~")
# start to insert data to table
try:
insert_data_sql = 'insert into pa.py01 values(1,"张三"),(2,"ls"),(3,"王五");'
cur.execute(insert_data_sql)
except Exception as e:
print("插入数据 失败:" + e + "!!!")
else:
print("插入数据 成功~")
# 如果插入数据的SQL执行成功, 那么直接提交数据,如果不提交,数据是看不到的
connect.commit()
print("提交数据 成功~")
print("n")
try:
select_data_sql = 'select * from pa.py01 limit 0,10;'
cur.execute(select_data_sql)
except Exception as e:
print("查询数据 失败:" + e + "!!!")
print("n")
else:
# 通过fetchall方法获得全部数据
data = cur.fetchall()
for i in data:
print(i)
print("n")
print("查询数据 成功")
cur.close()
connect.close()
print("关闭光标和数据库连接 成功~"