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
下一篇:
数据库设计—图书管理数据库系统设计