python操作数据库及并封装数据库函数
目录
python操作数据库及并封装数据库函数
一、前提
1.pyton连接数据库需要先安装pymysql模块:
2.安装完成后导入pymysql模块:
二、python操作数据库主要步骤:
三、常用操作方法
1.cursor():使用当前连接创建并返回游标
2.commit():提交当前事务,如果数据库脚本对数据库做了修改那么必须要做提交动作:如update,insert
3.rollback():回滚当前事务
4.close():关闭当前连接
5. execute 执行数据库查询或命令,将结果从数据库获取到客户端
6. fetchone():获取结果集的下一行
7.fetchmany():获取结果集的下几行
8.fetchall():获取结果集中剩下的所有行
9. rowcount:最近一次的execute返回数据的行数或受影响的行数
四、数据库操作
1.引入函数:import pymysql
2.连接数据库:connect
3.创建一个游标对象cursor()
4.执行sql语句execute() 返回的具体数据条数
5.查询数据库数据,返回具体的数据,数据类型是数组(tuple)
6.数据库增,删,改操作,需要提交事务commit()
7.关闭游标
8.关闭数据库
9.整体流程整理:连接数据库-建立游标-增删改查sql-执行sql(与客户端建立连接,execute执行)-如果对数据库存在变更,需要提交事务commit-关闭游标-关闭数据库
五、数据库操作函数的封装
1.通过读取配置文件读取数据库的信息,import configparser
2.实例化,并获取配置文件的值
3.查询,新增数据函数
一、前提
1.pyton连接数据库需要先安装pymysql模块:
pip install pymysql
2.安装完成后导入pymysql模块:
import pymysql
二、python操作数据库主要步骤:
- step1:连接数据库:通过connect函数链接,生成connection的对象
- step2:创建游标对象
- step3:对数据库进行增删改查
- step4:关闭游标
- step5:关闭连接
三、常用操作方法
1.cursor():使用当前连接创建并返回游标
2.commit():提交当前事务,如果数据库脚本对数据库做了修改那么必须要做提交动作:如update,insert
3.rollback():回滚当前事务
4.close():关闭当前连接
5. execute 执行数据库查询或命令,将结果从数据库获取到客户端
6. fetchone():获取结果集的下一行
7.fetchmany():获取结果集的下几行
8.fetchall():获取结果集中剩下的所有行
9. rowcount:最近一次的execute返回数据的行数或受影响的行数
四、数据库操作
1.引入函数:import pymysql
pymysql 操作sql server
cx_oracle:操作oracel
2.连接数据库:connect
conn = pymysql.connect(host="数据库地址",
port=端口,
user=用户,
password=密码,
charset="utf8")
3.创建一个游标对象cursor()
cur = conn.cursor()
4.执行sql语句execute() 返回的具体数据条数
# 第三步:执行sql语句
# sql = "select id from futureloan.member where mobile_phone='13367899876'"
sql = "select * from futureloan.member limit 100"
# 返回的是查询的数据条数
res = cur.execute(sql)
print(res)
5.查询数据库数据,返回具体的数据,数据类型是数组(tuple)
- 获取一条数据fetchone()
# 第四步:获取查询的数据
# 获取一条数据(返回的查询集中的第一条数据,元组类型)
data = cur.fetchone()
print(data)
- 获取查询集合中的所有数据fetchall()
# 获取查询集中的所有数据
datas = cur.fetchall()
print(datas)
6.数据库增,删,改操作,需要提交事务commit()
# 关于增加,删除,修改等相关涉及到数据库中数据变动的sql
# 执行的方式和查询是一样的
# cur.execute(sql)
# 在执行完sql语句之后,要多出一步:commit提交事务
# conn.commit()
7.关闭游标
cur.close()
8.关闭数据库
conn.close()
9.整体流程整理:连接数据库-建立游标-增删改查sql-执行sql(与客户端建立连接,execute执行)-如果对数据库存在变更,需要提交事务commit-关闭游标-关闭数据库
"""
数据库信息
host =
port =
user =
pwd =
"""
import pymysql
# 第一步:连接到数据库
conn = pymysql.connect(host="",
port=,
user="",
password='',
charset="utf8")
# 第二步:创建一个游标对象
cur = conn.cursor()
# 第三步:执行sql语句
# sql = "select id from futureloan.member where mobile_phone='13367899876'"
sql = "select * from futureloan.member limit 100"
# 返回的是查询的数据条数
res = cur.execute(sql)
print(res)
# 第四步:获取查询的数据
# 获取一条数据(返回的查询集中的第一条数据,元组类型)
data = cur.fetchone()
print(data)
# 获取查询集中的所有数据
datas = cur.fetchall()
print(datas)
# 关于增加,删除,修改等相关涉及到数据库中数据变动的sql
# 执行的方式和查询是一样的
# cur.execute(sql)
# 在执行完sql语句之后,要多出一步:commit提交事务
# conn.commit()
# pymysql 操作sql server
# cx_oracle:操作oracel
五、数据库操作函数的封装
1.通过读取配置文件读取数据库的信息,import configparser
2.实例化,并获取配置文件的值
3.查询,新增数据函数
import pymysql
import configparser
class my_db:
"""动作类,获取数据连接,获取ip,端口,账号密码"""
def __init__(self, config_file, db):
# 实例化
config = configparser.ConfigParser()
# 从配置文件中读取数据库服务器ip,账号等
config.read(config_file)
host = config[db]['host']
port = int(config[db]['port'])
user = config[db]['user']
passwd = config[db]['passwd']
# db_name = config[db]['db']
charset = config[db]['charset']
try:
self.dbconn = pymysql.Connect(host=host,
port=port, user=user,
password=passwd,
# database=db,
charset=charset)
except Exception as e:
print("初始化数据库连接失败:%s" % e)
def select_record(self, query):
"""查询数据"""
print("query:%s" % query)
try:
db_cursor = self.dbconn.cursor()
db_cursor.execute(query)
result = db_cursor.fetchall()
return result
except Exception as e:
print("执行数据库查询失败原因:%s" % e)
db_cursor.close()
exit()
def execute_insert(self, query):
"""插入数据"""
print("query:%s" % query)
try:
db_cursor = self.dbconn.cursor()
db_cursor.execute(query)
db_cursor.excute("commit")
return True
# result=db_cursor.fetchall()
# return result
except Exception as e:
print("执行数据库查询失败原因:%s" % e)
db_cursor.execute("rollback") # 回滚当前事务
db_cursor.close()
exit()
def close(self):
self.dbconn.close()
a = my_db(r"D:\python\commalluerjenkins131\config\dbconf.ini", "test")
sql = "select * from futureloan.member limit 100"
b = a.select_record(sql)
print(b)