当然,MySQL是什么都不知道的老铁自行百度为妙,哈哈啊!
简而言之,MySQL是一种关系型数据库管理系统,不同的数据内容放到不同的数据表中,不同的表之间可以有联系,对应关系等,也可以没有联系。
对数据的操作无非CURD(增删改查),一般在shell命令行中操作难免乏味,你知道吗?还可以在pycharm界面呢?把SQL语句封装成类,使用时直接调用,用python的面向对象的思想解决问题,那不是一般的舒服。
看代码!!!
先把各种语句封装成类:
#导入类库
import pymysql
#创建类,对操作数据库的方法(sql语句)进行封装
class MySql():
def __init__(self,host,user,passwd,dbName):
"""
初始化必要的参数:
:param host: 主机
:param user: 用户
:param passwd: 用户密码
:param dbName: 数据库名
"""
self.host = host
self.user = user
self.passwd = passwd
self.dbName = dbName
def connet(self):
"""
封装函数,连接数据库
self.cursor:创建游标对象
:return:
"""
self.db = pymysql.connect(self.host,self.user,self.passwd,self.dbName)
self.cursor = self.db.cursor()
def close(self):
"""
关闭游标,关闭数据库
:return:
"""
self.cursor.close()
self.db.close()
def get_one(self,sql):
"""
查询数据库中的内容,返回一个对象
:param sql:
:return:
"""
res = None
try:
self.connet()
self.cursor.execute(sql)
res = self.cursor.fetchone()
self.close()
except:
print('查询失败')
return res
def get_all(self,sql):
"""
查询数据库内容,返回所有的数据
:param sql:
:return:
"""
res=()
try:
self.connet()
self.cursor.execute(sql)
res = self.cursor.fetchall()
self.close()
except:
print('查询失败')
return res
def insert(self,sql):
"""
执行插入内容的方法
:param sql:
:return: 调用_edit()方法,对SQL语句的封装
"""
return self._edit(sql)
#更新
def update(self,sql):
return self._edit(sql)
#删除
def delete(self,sql):
return self._edit(sql)
#对执行的SQL语句进行封装
def _edit(self,sql):
count = 0
try:
self.connet()
count = self.cursor.execute(sql)
self.db.commit()
self.close()
except:
print('事物提交失败')
self.db.rollback()
return count
再来看看测试代码:
#导入创建好的类库
from MySQL_fengzhuang import MySql
#创建对象,调用类
s = MySql('localhost','root','caicai','cai')
#调用对象的方法,执行相关的SQL命令
re = s.insert('insert into fruits values(0,"王语嫣",10000)')
res = s.get_all('select * from fruits where money>200')
for row in res:
print(row)
注意:
1.在别处使用时,一定要从文件中导入我们所创建的类;
2.当对数据库进行操作时,比如查询,数据库,数据表要存在(本地连接localhost,连接别人的要输入别人的IP);