1. 程式人生 > >python 對 mysql 的操作

python 對 mysql 的操作

01.連線mysql並讀取資料

#匯入模組
import pymysql
import json
#第一步:連線到mysql資料庫
conn = pymysql.connect(host='localhost',user='root',password='123456',db='mycommodity',charset="utf8")

#第二步:建立遊標物件
cursor = conn.cursor()   #cursor當前的程式到資料之間連線管道

#第三步:組裝sql語句
sql = 'select * from commodity'
# sql = "select c_id,c_name,c_inprice from commodity where c_inprice>(select avg(c_inprice) from commodity where c_type=(select ct_id from commoditytype where ct_name='玩具'))"

#第四步:執行sql語句
cursor.execute(sql)

#第五步:處理結果集
#獲取一條資料
# one = cursor.fetchone()
# print(one)
#獲取多條資料
# many = cursor.fetchmany(3)
# print(many)
#獲取所有資料
all = cursor.fetchall()
for each in all:
    print(json.dumps(each, ensure_ascii=False))
    # print(type(each),each)
fields = cursor.description
# print(fields)
head = []
for field in fields:
    head.append(field[0])
print(head)

#第六步:關閉所有的連線
#關閉遊標
cursor.close()
#關閉資料庫
conn.close()

02.insert資料

#匯入模組
import pymysql

#第一步:連線到mysql資料庫
conn = pymysql.connect(host='localhost',user='root',password='123456',db='mycommodity',charset="utf8")

#第二 步:建立遊標物件
cursor = conn.cursor()   #cursor當前的程式到資料之間連線管道

# #第三步:組裝sql語句
sql = "INSERT INTO `commodity` VALUES (null, '電腦桌', '北京', '6', '100', '200', '200')"
  
#第四步:執行sql語句
cursor.execute(sql)

# !!!!!!!資料提交 commit()  ,不提交資料庫沒有資訊
conn.commit()

#第五步:處理結果集

#第六步:關閉所有的連線
#關閉遊標
cursor.close()
#關閉資料庫
conn.close()

03.自定義函式操作資料庫

# 匯入模組
import pymysql
# 定義連線到mysql資料庫的函式,返回連線物件
def getCon(db_name):
    conn = pymysql.connect(host='localhost', user='root', password='123456', db=db_name, charset="utf8")
    return conn

# 定義新增資料函式
def insertData(db_name,table_name,data):
	# 第一步:連線到資料庫
    conn = getCon(db_name)
    # 第二步:建立遊標物件
    cursor = conn.cursor()  # cursor當前的程式到資料之間連線管道
    # 第三步:組裝sql語句
    sql = 'insert into '+ table_name +' values'+ data
	# 第四步:執行sql語句
    cursor.execute(sql)
    # 提交sql語句執行操作
    conn.commit()
    print("成功添加了{}條資料".format(cursor.rowcount))
    # 關閉連線
    cursor.close()
    conn.close()

data1 = (0, '書桌', '南京', '6', '50', '100', '100')
insertData('mycommodity','commodity',str(data1))

04.修改資料

# 匯入模組
import pymysql
# 定義連線到mysql資料庫的函式,返回連線物件
def getCon(db_name):
    conn = pymysql.connect(host='localhost', user='root', password='123456', db=db_name, charset="utf8")
    return conn

# 修改資料
def updateData(db_name,table_name,conditions):
	# 第一步:連線到資料庫
    conn = getCon(db_name)
    # 第二步:建立遊標物件
    cursor = conn.cursor()  # cursor當前的程式到資料之間連線管道
    # 第三步:組裝sql語句
    sql = 'update '+ table_name +conditions
    print(sql)
    cursor.execute(sql)
    # 提交sql語句執行操作
    conn.commit()
    print("成功更新了{}條資料".format(cursor.rowcount))
    # 關閉連線
    cursor.close()
    conn.close()

# 定義 update 的條件
condition = " set c_name = '大桌字' where c_id=70"
updateData('mycommodity','commodity',condition)