python 基础之 数据库操作篇
python 操作mysql 方法讲解:
- 安装模块:pymysql pip install pymysql
- 启动mysql数据库
- 连接数据库:connect(),返回一个对象
-
con = pymysql.connect(user,passwd,port,host,db,charset) user,数据库用户 passwd,数据库登录密码 host,数据库服务器地址 db,要连接的database port,端口号,默认为3306 charset,字符集 connect返回对象常用的方法 cursor(),创建游标 commit(),提交事务 rollback(),回滚事务 close(),关闭数据库连接
- 创建游标:cur = con.cursor(),返回游标对象,查询语句的结果保存在元组中 cur = con.cursor(pymysql.cursors.DictCursor),查询语句的结果保存在字典中·
- 操作数据库:通过游标调用execute()方法执行SQL语句 fetchone(),从查询结果中获取1行数据 fetchmany(n),从查询结果中获取n行数据 fetchall(),从查询结果中获取所有数据
- 关闭连接 关闭游标:cur.close() 关闭数据库连接:con.close()
例:
import pymysql
# 连接数据库
con = pymysql.connect(user=root,passwd=123456,
host=47.92.203.151,db=atm,
port=3306,charset=utf8)
# 创建游标
cur = con.cursor(pymysql.cursors.DictCursor)
#
acc = input(账号:)
# pwd = input(密码:)
# name = input(姓名:)
# bal = input(余额:)
# sql = f"insert into accounts(account,passwd,name,balance) values({acc},md5({pwd}),{name},{bal});"
sql = fselect * from accounts where account="{acc}";
n = cur.execute(sql) # 执行SQL语句
# fetchone(),从查询结果中获取1行数据
# fetchmany(n),从查询结果中获取n行数据
# fetchall(),从查询结果中获取所有数据
print(n)
print(cur.fetchone())
con.commit() # 提交事务
# 关闭
cur.close() # 关闭游标
con.close() # 关闭数据库连接
常用方法整理:
import pymysql
class Mysql:
def con_db(self, user, pwd, host, db, port=3306):
# 连接数据库
con = pymysql.connect(user=user, passwd=pwd,
host=host, db=db,
port=port)
# 创建游标
cur = con.cursor(pymysql.cursors.DictCursor)
return con, cur
def dql(self, cur, sql):
cur.execute(sql)
res = cur.fetchall() # 获取所有查询结果,查询结果为空返回(),不为空返回[{xx:yy}]
return res
def dml(self, con, cur, sql):
cur.execute(sql)
con.commit() # 所有SQL执行完成后,提交事务
def close(self, con, cur):
cur.close()
con.close()
# 删除数据库数据
def drop_table(self, user, pwd, host, db, port, sql):
con, cur = self.con_db(user=user, pwd=pwd, host=host, db=db, port=port)
self.dml(con, cur, sql)
self.close(con, cur)
def search_info(self, user, pwd, host, db, port, sql):
"""
数据库查询方法
:param user:数据库用户名
:param pwd: 数据库密码
:param host: 数据库主机地址
:param db: 数据库工作簿
:param port: 端口
:param sql: 查询语句
:return:
"""
con, cur = self.con_db(user, pwd, host, db, port)
res = self.dql(cur, sql)
self.close(con, cur)
return res
下一篇:
数据库设计—图书管理数据库系统设计
