先允許博主吐槽一下:python確實做什麼比java簡單的多,java操作數據庫要下載對應的jar包,而且寫的語句不僅又臭又長(相比python而言)而且難以理解。本文講一下python 如何調用mysql數據庫的:
正文
(一)在cmd窗口中敲 pip install pymysql,安裝這個第三方庫。
(二)直接碼上(創增刪改查)
1.創建表
import pymysql
# 打開數據庫連接(ip,用戶名,密碼,數據庫實例)
db = pymysql.connect("localhost", "root", "root", "mp")
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
cursor.execute("Drop table if exists AA")
#使用預處理語句創建表
sql = """
create table AA(
id int primary key,
Income float,
sname varchar(10)
)
"""
cursor.execute(sql)
print("創建成功!!!")
cursor.close()
2.增加數據
import pymysql
# 打開數據庫連接(ip,用戶名,密碼,數據庫實例)
db = pymysql.connect("localhost", "root", "root", "mp")
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
# sql = """
# insert into aa values (2,1.1,"wdwd")
# """
sql = " insert into aa values (%s,%s, '%s' )" % (5,2.1,'oio')
try:
#執行sql
cursor.execute(sql)
#提交到數據庫執行
db.commit()
print("操作成功!!!")
except:
#如果發生錯誤則回滾
db.rollback()
print("添加失敗,已經回滾!")
#關閉數據庫
cursor.close()
3.查詢數據
import pymysql
# 打開數據庫連接(ip,用戶名,密碼,數據庫實例)
db = pymysql.connect("localhost", "root", "root", "mp")
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
#SQl查詢語句
sql = "select *from aa where id >= %s" % (3)
try:
#執行sql語句
cursor.execute(sql)
#獲取所有記錄列表
results = cursor.fetchall()
for row in results:
id = row[0]
Income = row[1]
sname = row[2]
print(" id=%s,Income=%s,sname=%s " % (id,Income,sname) )
except:
print("Error: unable to fetch data")
#關閉數據庫鏈接
db.close()
4.修改數據
import pymysql
# 打開數據庫連接(ip,用戶名,密碼,數據庫實例)
db = pymysql.connect("localhost", "root", "root", "mp")
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
#SQL更新語句
sql = "Update aa set id=99 where sname = '%s'" % ("oio")
try:
#執行SQL語句
cursor.execute(sql)
#提交到數據
db.commit()
print("修改成功!!!")
except:
#發生錯誤時回滾
db.rollback()
print("操作失敗,且已經回滾了")
# 關閉數據庫連接
db.close()
5.刪除數據
import pymysql
# 打開數據庫連接(ip,用戶名,密碼,數據庫實例)
db = pymysql.connect("localhost", "root", "root", "mp")
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
#SQL刪除語句
sql = "delete from aa where id = %s " % (3)
try:
#執行SQL語句
cursor.execute(sql)
#提交到數據
db.commit()
print("刪除成功!!!")
except:
#發生錯誤時回滾
db.rollback()
print("操作失敗,且已經回滾了")
# 關閉數據庫連接
db.close()