一 配置环境
pip3 install pymysql
如果pip安装了插件,但pycharm中无法导入
pycharm->File->Settings->Project Interpreter->设置
二 python 连接mysql 过程
三 连接mysql
(1)需要创建一个connection对象,目的:用来跟数据库进行连接
conn = pymysql.connect(host=‘localhost’,user=‘username’,password='password,database=‘DBname’,charset=‘utf8’)
conn 自带事务
(2)参数详解
host:MySQL服务器地址,用来连接MySQL主机,本机是‘localhost’
port:MySQL服务器的端口号,默认3306
user:连接的用户名
passwd:连接密码
database:数据库名称(用来选择要连接哪个数据库)
charset:通信采用的编码方式
(3)创建一个游标cursor数据库交互对象,目的:用来执行SQL语句并获得结果(从数据库取得数据)
(4)关闭连接:在使用完时候要关闭连接 使用close()
先关闭cursor: cur.close()
再关闭connection:conn.close()
(5)cur = conn.cursor(cursor=pymysql.cursors.DictCursor) 获取的内容以字典的方式展示
四 操作mysql
(1)查询
import pymysql
conn = pymysql.connect(host='hostname',
user='username',
password='password',
database='DBname',
charset='utf8')
cur = conn.cursor()
sql='''
select * from tableName;
'''
cur.execute(sql)
result = cur.fetchall()
cur.close()
conn.close()
(2)修改
import pymysql
conn = pymysql.connect(host='hostname',
user='username',
password='password',
database='DBname',
charset='utf8')
cur = conn.cursor()
sql='''
update tableName set 字段=新值 where 条件;
'''
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
(3)新增
import pymysql
conn = pymysql.connect(host='hostname',
user='username',
password='password',
database='DBname',
charset='utf8')
cur = conn.cursor()
sql='''
insert into tableName values(值1,值2...);
'''
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
(4)删除
import pymysql
conn = pymysql.connect(host='hostname',
user='username',
password='password',
database='DBname',
charset='utf8')
cur = conn.cursor()
sql='''
delete from tableName where 条件;
'''
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
# 注意不要用字符串格式化的方式拼接sql语句
# sql = '''
# insert into admin(username, pwd, mobile) values("wupeiqi", "qweasd", "13812345678")
# '''
# cur.execute(sql)
# sql = '''
# insert into admin(username, pwd, mobile) values(%s, %s, %s)
# '''
# cur.execute(sql, ['王五', 'zxcasd', '13812345678'])
sql = '''
insert into admin(username, pwd, mobile) values(%(n1)s, %(n2)s, %(n3)s)
'''
cur.execute(sql, {'n1':'甄嬛', 'n2':'zxcasd', 'n3':'13812345678'})
五 封装一个连接mysql的类
(1)使用init函数 创建mysql的连接,使用del函数释放连接
(2)使用传参的方式灵活的执行mysql命令
(3)执行sql命令时注意发生异常,需要捕获,灵活使用try…except…