首先要安裝Python和MySQL的連接工具

下載地址如下:
https://pypi.python.org/pypi/PyMySQL
https://github.com/PyMySQL/PyMySQL
腳本如下:
#coding = utf-8
import pymysql
import os
#連接數據庫
connection = pymysql.connect(host = 'localhost',user= 'root',password='123456',db='testonecard',port=3306,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
# 通過cursor創建游標
cursor = connection.cursor()
# 創建sql 語句,並執行
sql = "update cert_card_consume SET real_payment_amount =300 where real_payment_amount =200"
cursor.execute(sql)
#提交sql
connection.commit()
注:
無論使用什么的工具或庫,都需要連接數據庫,
host為數據庫的主機IP地址,
port為MySQL的默認端口號,
user為數據的用戶名,
password為數據庫的登錄密碼,
db為數據庫的名稱。
charset:使用的字符集(一般是gb2312)
cursor = db.cursor() 其實就是用來獲得python執行Mysql命令的方法,也就是
我們所說的操作游標
cursor()方法創建數據庫游標。
execute()方法執行SQL語句。
commit()將數據庫的操作真正的提交到數據。
接下來的操作就是數據庫的查詢了。
fetchone() 用於查詢單條數據。
fetchall() 用於查詢多條數據。
close() 最后不要忘記了關閉數據連接。
代碼如下:
#coding = utf-8
import pymysql
import os
#連接數據庫
connection = pymysql.connect(host = 'localhost',user= 'root',password='123456',db='testonecard',
port=3306,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
# 通過cursor創建游標
cursor = connection.cursor()
# 創建sql 語句,並執行
sql = "select consume_seq_no,real_payment_amount from cert_card_consume where card_id = '1292687' "
cursor.execute(sql)
#查詢數據庫單條數據
result = cursor.fetchone()
print(result)
print("-----華麗分割線---------")
sql1 ="select consume_seq_no,real_payment_amount from cert_card_consume where card_id = '1292687' "
cursor.execute(sql1)
#查詢數據庫多條數據
result1 = cursor.fetchall()
for data in result1:
print(data)
#提交sql
connection.commit()
#關閉數據連接
connection.close()
難點處理1:通過游標查詢出第一條記錄的卡號,然后再通過sql查詢出該卡號范圍的卡號總數
# 通過cursor創建游標
cursor = connection.cursor()
sql1 = "select card_no from base_card where apply_status=1 and card_status=1 ORDER BY import_time asc "
cursor.execute(sql1)
# 查詢數據庫多條數據 注:查詢的結果為字典數據類型集合
result = cursor.fetchone()
card_no1 = result.get("card_no")
print(card_no1)
card_no2 =str(int(card_no1)+100)
print(card_no2)
#查詢出對應的卡號數量
sql2 = "select count(card_no) from base_card where apply_status=1 and card_status=1 and card_no BETWEEN 'card_no1' and 'card_no2'"
cursor.execute(sql2)
result = cursor.fetchone()
num = result.get("count(card_no)")
print(num)
注:引用卡號card_no1和card_no2變量時,應該加上引號
難點處理2:同時查詢出多條數據時,通過for循環會是一個字典,要是要獲取列表中的數據通過執行一下語句:
for data in result1:
print(data)
test = data.get("card_no")
print(test)
