最近在用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("關閉光標和數據庫連接 成功~"