# -*- coding: utf-8 -*-
# @Time : 2023/5/15 19:50
# @Author : yanfa
# @user : yanfa
# @File : pymysql_.py
# @remark: 常用第三方库 pymysql
""""""
import sys
"""一、pymysql概述
1、python的数据库接口标准是Python DB-API
2、PyMySQL是从python连接到MYSQL数据库服务器的接口
3、PyMySQL的目标是成为MySQL的替代品
4、官方文档:http://pymysql.readthedocs.io/"""
"""二、pymysql安装
1、使用pip安装:pip install pymysql
2、使用pycharm界面安装"""
"""三、pymysql连接数据库
host:服务器地址
user:用户名
password:密码
database:数据库名称
charset:编码方式,推荐使用utf8mb4
"""
# 1、导入包
import pymysql
# 2、建立连接
conn=pymysql.connect(host="主机地址",
user="用户名",
password="密码",
database="数据库名称",
charset="utf8mb4")
# 3、关闭连接
conn.close()
"""封装获取连接的函数"""
def get_conn():
conn=pymysql.connect(host="主机地址",
user="用户名",
password="密码",
database="数据库名称",
charset="utf8mb4")
return conn
"""四、pymysql入门实例
获取连接对象:打开、关闭
获取游标对象:执行sql-execute()、查询记录、关闭游标"""
# def test_demo():
# # 1、获取连接对象
# conn=get_conn()
# # 2、获取游标对象
# cursor=conn.cursor()
# # 3、执行sql
# cursor.execute("select * from table")
# # 4、查询结果
# result1=cursor.fetchone() #获取第一条
# result2=cursor.fetchall() #获取全部
# result3=cursor.fetchmany(10) #获取前10条
# # 5、关闭游标
# cursor.close()
# # 6、关闭连接
# conn.close()
"""五、常用数据库操作
CRUD操作:
1)创建表:
2)插入记录
3)查询记录
4)更新记录
5)删除记录
执行事务:
1)提交:commit
2)回滚:rollback"""
# 5.1 创建表testcase
def test_create():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="create table `testcase`(" \
"`id` int(11) not null auto_increment" \
"`name` varchar(255) collale utf8_bin not null)"
cursor.execute(sql) #执行建表语句
cursor.close() #关闭游标
conn.close() #关闭连接
# 5.2 插入记录
def test_insert():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="insert into testcase (id,name) values('123','yanfa')"
cursor.execute(sql) #执行建表语句
conn.commit() #提交
cursor.close() #关闭游标
conn.close() #关闭连接
# 5.3 执行事务
def test_insert1():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="insert into testcase (id,name) values('123','yanfa')"
try:
cursor.execute(sql)
conn.commit()
except:
conn.rollback()
finally:
cursor.close() # 关闭游标
conn.close()
# 5.4 查询操作
def test_retrieve():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="select * from testcase "
# 捕获异常
try:
cursor.execute(sql)
record=cursor.fetchone()
print(record)
except Exception as e:
print(sys.exc_info()) #打印错误信息
finally:
cursor.close() # 关闭游标
conn.close() # 关闭连接
# 5.5 更新操作
def test_update():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="update testcase set name='lisi' where name='yanfa'"
# 捕获异常
try:
cursor.execute(sql) #执行sql
conn.commit() #提交事务
except:
conn.rollback() # 回滚事务
finally:
cursor.close() # 关闭游标
conn.close() # 关闭连接
# 5.6 删除
def test_delete():
conn=get_conn() #获取连接
cursor=conn.cursor() #获取游标
sql="delete from testcase where name='yanfa'"
# 捕获异常
try:
cursor.execute(sql) #执行sql
conn.commit() #提交事务
except:
conn.rollback() # 回滚事务
finally:
cursor.close() # 关闭游标
conn.close() # 关闭连接