用pycharm操作MySQL------pymysql模块的安装/使用方法

pymysql安装

sudo pip3 install pymysql

pymysql使用流程

  1. 建立数据库连接(db = pymysql.connect(…))
  2. 创建游标对象(cur = db.cursor())
  3. 游标方法: cur.execute(“insert …”)
  4. 提交到数据库或者获取数据 : db.commit()/db.fetchall()
  5. 关闭游标对象 :cur.close()
  6. 断开数据库连接 :db.close()
"""
mysql.py
pymysql 数据库操作流程
"""
import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='123456',
                     database='stu',
                     charset='utf8')

# 生产游标对象 (操作数据库执行sql语句获取结果的对象)
cur = db.cursor()

# 利用游标对象执行各种sql语句
# 读操作 --》 fetch
# 写操作 --》 commit  rollback

# 关闭游标和数据库
cur.close()
db.close()

常用函数

db = pymysql.connect(参数列表)

host :主机地址,本地 localhost
port :端口号,默认3306
user :用户名
password :密码
database :库
charset :编码方式,推荐使用 utf8

数据库连接对象(db)的方法

cur = db.cursor() 返回游标对象,用于执行具体SQL命令
db.commit() 提交到数据库执行
db.rollback() 回滚,用于当commit()出错是回复到原来的数据形态
db.close() 关闭连接

游标对象(cur)的方法

cur.execute(sql命令,[列表]) 执行SQL命令
cur.executemany(sql命令,[data]) 根据数据列表项多次执行SQL命令,一般用于写操作。
cur.fetchone() 获取查询结果集的第一条数据,查找到返回一个元组否则返回None
cur.fetchmany(n) 获取前n条查找到的记录,返回结果为元组嵌套元组, ((记录1),(记录2))。
cur.fetchall() 获取所有查找到的记录,返回结果形式同上。
cur.close() 关闭游标对象

"""
mysql.py
pymysql 数据库读操作
"""
import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='123456',
                     database='stu',
                     charset='utf8')

# 生产游标对象 (操作数据库执行sql语句获取结果的对象)
cur = db.cursor()

# 利用游标对象执行读操作 select语句
# 读操作 --》 fetch
name = input("Name:")

# 组合sql语句
# sql="select name,hobby from interest where name='%s';"%name
# print(sql)
# cur.execute(sql)

# 通过execute第二个参数为sql语句传递参量
sql="select name,age from cls where age>%s or sex=%s;"
cur.execute(sql,[17,'m'])

# 遍历游标对象获取查询记录
# for i in cur:
#     print(i)

# 获取一个查询结果
# print(cur.fetchone())

# 获取多个查询结果
# print(cur.fetchmany(2))

# 获取所有查询结果
print(cur.fetchall())

# 关闭游标和数据库
cur.close()
db.close()

"""
mysql.py
pymysql 数据库写操作
"""
import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='123456',
                     database='stu',
                     charset='utf8')

# 生产游标对象 (操作数据库执行sql语句获取结果的对象)
cur = db.cursor()

# 利用游标对象执行写操作
# 写操作 --》 commit  rollback
try:
    # 插入操作
    # sql="insert into cls values (9,'Lily',17,'w','76');"
    # cur.execute(sql)
    # sql = "insert into cls values (%s,%s,%s,%s,%s);"
    # cur.execute(sql,[8,'Ala',18,'w',66])

    # 修改操作
    # sql = "update cls set score=84 where id=3;"
    # cur.execute(sql)

    # 删除操作
    # sql = "delete from cls where id=2;"
    # cur.execute(sql)

    # 通过executemany执行大量的sql语句
    list_ = [(17,1),(18,3),(19,4)]
    sql = "update cls set score=score-5,age=%s where id=%s;"
    # for i in list_:
    #     cur.execute(sql,[i])
    cur.executemany(sql,list_)


    db.commit() # 提交结果 立即刷新缓冲区将数据写入数据库
except Exception as e:
    print(e)
    db.rollback() # 回滚 没有写入数据库的操作召回


# 关闭游标和数据库
cur.close()
db.close()

将一个字典的TXT文档, 通过操作, 加入到一个数据库表中:

import pymysql
import re

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='123456',
                     database='dict',
                     charset='utf8')

# 生产游标对象 (操作数据库执行sql语句获取结果的对象)
cur = db.cursor()

# 插入单词
f = open('dict.txt')
args_list = []
for line in f:
    # 获取单词和解释
    result = re.findall(r"(\S+)\s+(.*)",line)
    args_list.extend(result) # 合并为一个列表
f.close()

sql="insert into words (word,mean) values (%s,%s);"
try:
    cur.executemany(sql,args_list)
    db.commit()
except:
    db.rollback()


# 关闭游标和数据库
cur.close()
db.close()


  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值