常用第三方库 pymysql
pymysql 概述
pymysql 安装
- 使用 pip 安装:pip install pymysql
- 使用 Pycharm 界面安装
pymysql 连接数据库
- host:MySQL 服务器地址
- user:用户名
- password:密码
- database:数据库名称
- charset:编码方式,推荐使用 utf8mb4
- 完成后必须关闭数据库连接
import pymysql
# 简历数据库链接
conn = pymysql.connect(host='106.53.104.31',
user='root',
password='123456',
database='demo',
charset='utf8mb4')
# 关闭数据库链接
conn.close()
封装获取连接的函数
pymysql 入门实例
- 获取连接对象
** 打开
** 关闭
- 获取游标对象
** 执行SQL
** 查询记录
from .sql_conf import get_conn
def test_demo():
# 打开连接
conn = get_conn()
# 获取游标
couser = conn.cursor()
# 执行SQL
couser.execute('SELECT VERSION();')
# 获取单挑结果
version = couser.fetchone()
print(version)
# 关闭连接
conn.close()
pymysql 数据库操作
CRUD 操作
创建表
from . import get_conn
def test_demo():
# 打开连接
conn = get_conn()
# 获取游标
couser = conn.cursor()
# SQL 语句
sql = """
CREATE TABLE 'testcase'(
'id' int(11) NOT NULL AUTO_INCHEMENT,
'title' varchar(255) COLLATE utf8_bin NOT NULL,
'expect' varchar(255) COLLATE utf8_bin NOT NULL,
'owner' varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
"""
# 执行SQL
couser.execute(sql)
# 关闭连接
conn.close()
插入记录
查询记录
方法 |
注释 |
fetchone() |
获取单条记录 |
fetchmant(n) |
获取 n 条记录 |
fetchall() |
获取所有结果记录 |
from SQL.sql_conf import get_conn
import sys
def test_select():
conn = get_conn()
curser = conn.cursor()
sql = """SELECT * FROM testcase;"""
# 捕获异常
try:
# 执行sql
curser.execute(sql)
# 获取查询一条结果
record = curser.fetchone()
# 获取查询一3条结果
record2 = curser.fetchmany(3)
# 获取所有查询结果
record3 = curser.fetchall()
return {record}, {record2}, {record3}
except Exception as e:
# 打印执行的错误信息
print(sys.exc_info())
finally:
# 关闭数据库连接
conn.close()
更新记录
from SQL.sql_conf import get_conn
def test_update():
conn = get_conn()
curser = conn.cursor()
sql = """UPDATE testcase SET id=4,title='S11全球总决赛',expect='冠军',owner='EDG';"""
try:
# 执行sql
curser.execute(sql)
# 提交事务
conn.commit()
except:
# 事务回滚
conn.rollback()
finally:
# 关闭数据库连接
conn.close()
删除记录
from SQL.sql_conf import get_conn
def test_delete():
conn = get_conn()
curser = conn.cursor()
sql = """DEKETE FROM testcase WHERE id=4;"""
try:
# 执行sql
curser.execute(sql)
# 提交事务
conn.commit()
except:
# 事务回滚
conn.rollback()
finally:
# 关闭数据库连接
conn.close()
执行事务
- 提交:commit
- 回滚:rollback
- try-catch-finally
from SQL.sql_conf import get_conn
def test_inset():
conn = get_conn()
curser = conn.cursor()
sql = """INSERT INTO testcase (id,title,expect,owner) VALUES (1,'S11全球总决赛','冠军','EDG');"""
try:
# 执行sql
curser.execute(sql)
# 提交事务
conn.commit()
except:
# 事务回滚
conn.rollback()
finally:
# 关闭数据库连接
conn.close()