importpymysql
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...