python工具之myql資料庫操作

2022-01-29 16:18:25 字數 3111 閱讀 7195

import

pymysql

import

config

'''1.0 簡單封裝

1.1 新增了insert_id屬性,返回insert時返回的主鍵

1.2 新增了column屬性,返回查詢的column

1.3 新增乙個insert

1.4 新增了乙個insertlist支援批量新增

'''class

db:

'''資料庫操作類

attributes:

transactionflag:是否開啟事務

insert_id:insert時返回的主鍵

'''def

__init__

(self):

'''insert_id:insert時返回的主鍵

'''self.insert_id =0

self.column =none

def__init__(self, transactionflag=false):

'''transactionflag:是否開啟事務

insert_id:insert時返回的主鍵

'''self.insert_id =0

self.column =none

self.transflag =transactionflag

self.conn = pymysql.connect(host=config.host, port=config.port, user=config.user,

passwd=config.passwd, db=config.db, charset='

utf8')

defclose():

'''關閉連線

'''self.conn.close()

def execsql(self, sql, param=none):

'''執行增刪改語句,返回影響的行數

sql:要執行的sql

param:sql是的引數,預設值為none

'''cursor =self.conn.cursor()

if param ==none:

a =cursor.execute(sql)

else

: a =cursor.execute(sql, param)

self.insert_id =cursor.lastrowid

self.column =cursor.description

if self.transflag ==false:

self.commit()

return

a

def query(self, sql, param=none):

'''執行查詢語句

sql:要執行的sql

param:sql是的引數,預設值為none

'''cursor =self.conn.cursor(pymysql.cursors.dictcursor)

if param ==none:

cursor.execute(sql)

else

: cursor.execute(sql, param)

ret =cursor.fetchall()

self.column =cursor.description

cursor.close()

return

ret

def queryone(self, sql, param=none):

'''執行查詢語句

sql:要執行的sql

param:sql是的引數,預設值為none

'''cursor =self.conn.cursor(pymysql.cursors.dictcursor)

if param ==none:

cursor.execute(sql)

else

: cursor.execute(sql, param)

ret =cursor.fetchone()

cursor.close()

return

ret

definsert(self, table, keyvalue):

'''以鍵值對的方式新增資料,簡化insert

'''keylist =

valuelist =

for key, value in

keyvalue.items():

"'%s'

" %value)

sql = "

insert into %s(%s) values(%s)

" %(

table, ',

'.join(keylist), ","

.join(valuelist))

return

self.execsql(sql)

definsertlist(self, table, keyvaluelist):

'''以鍵值對的方式新增資料,簡化insert

'''keylist =

first =keyvaluelist[0]

for key, value in

first.items():

sql = "

insert into %s(%s) values

" %(

table, ',

'.join(keylist))

valuelist =

for kv in

keyvaluelist:

vlist =

for k in

keylist:

"'%s'

" %kv[k])"(

" + '

,'.join(vlist) + ")"

) sql = sql + ","

.join(valuelist)

return

self.execsql(sql)

defcommit(self):

self.conn.commit()

defrollback(self):

self.conn.rollback()

myql資料整理

mysql有三種鎖的級別 頁級 表級 行級。myisam和memory儲存引擎採用的是表級鎖 table level locking bdb儲存引擎採用的是頁面鎖 page level locking 但也支援表級鎖 innodb儲存引擎既支援行級鎖 row level locking 也支援表級鎖...

myql導資料庫

如mysql 安裝在c 盤,mysql資料庫的使用者名稱是root,密碼是123456,資料庫名是database name,在d 盤根目錄下面存放備份資料庫,備份資料庫名字為backup20070713.sql。備份資料庫 mysqldump uroot p123456 database name...

Python資料分析工具之matplotlib

能將資料進行視覺化,更直觀的呈現 使資料更加客觀 更具說服力 python 2d 繪圖領域使用最廣泛的套件 usr bin python coding utf 8 author acker date 2020 10 31 import matplotlib.pyplot as plt,matplot...