1. 程式人生 > 實用技巧 >使用python操作資料庫

使用python操作資料庫

使用第三方庫pymysql對資料庫進行操作(可使用命令python -m pip install pymysql進行安裝)

import pymysql#引用pymysql庫
#配置資料庫引數進行連線,其中host,port,user,password是必須要傳入的引數
my_cnt = pymysql.connect(host='localhost',
port=3306,
user='root',
password='123456',
database='test',
charset='utf8')
my_data = my_cnt.cursor()#建立用於執行查詢的新遊標
my_data.execute('select * from test.user')#傳入sql查詢語句
my_cnt.commit()#提交執行
get_data = my_data.fetchall()#執行成功就遍歷結果的每行資料,以元組返回
my_cnt.close()#關閉資料庫連線
print(get_data)
如要遠端訪問資料庫,需要開啟資料庫遠端訪問許可權:

1.使用命令列登入MySQL
2.輸入命令flush privileges;重新整理許可權
3.再輸入命令GRANT ALL PRIVILEGES ON *(資料庫).*(表) TO 'root'@'%' IDENTIFIED BY '123456';
4.再次輸入命令flush privileges;重新整理許可權

封裝:
class MysqlConnect:
# 初始化類物件,接收引數:資料庫地址、介面、使用者名稱、密碼、資料庫名、字符集,連線資料庫
def __init__(self,host='localhost',port=3306,username=None,password=None,database='mysql',charset='utf8'):
self._host = host
self._port = port
self._user = username
self._password = password
self._database = database
self._charset = charset
# 連線資料庫
try:
self._my_cnt = pymysql.connect(host=self._host,
port=self._port,
user=self._user,
password=self._password,
database=self._database,
charset=self._charset)
# 連線失敗報錯
except Exception:
raise Exception("Database connect fail, check the value of host, user, password, database and port")
#定義方法接收引數sql,執行sql語句進行資料庫操作
def msq_sql(self,sql):
self._my_data = self._my_cnt.cursor()#建立用於執行查詢的新遊標
try:
self._my_data.execute(sql)#傳入sql語句
self._my_cnt.commit()#提交執行
except Exception:#執行失敗報錯
raise Exception('ERROR 1064 (42000): You have an error in your SQL syntax; '
'check the manual that corresponds to your MySQL server '
'version for the right syntax to use near \'',sql,'\' at line 1')
else:
get_data = self._my_data.fetchall()#執行成功就遍歷結果的每行資料,以元組形式返回
return get_data
finally:
self._my_cnt.close()#關閉資料庫連線
if __name__ == '__main__':#程式碼入口,防止外部呼叫類物件時其它程式碼造成影響
mct=MysqlConnect(username='root',password='123456,',database='test')#例項化類,傳入資料庫引數
print(mct.msq_sql('select * from test.user'))