【python】进阶--->MySQL数据库(五)

发布时间:2024年01月16日

python与mysql数据库

pymysql模块(pip安装)

一、连接数据库

conn = pymysql.connect()

connect方法参数说明:
host : 主机(127.0.0.1)(字符串)
port : 端口号3306
user : 用户名root(字符串)
passwd : 密码(字符串格式)
db : 连接的数据库名(字符串)
charset : 连接的编码(字符串)

connect对象的常用方法:
cursor() : 创建游标
commit() : 提交事务
rollback() : 回滚事务
close() : 关闭数据库连接

二、创建游标对象

cur = connect.cursor()

cursor() : 返回的游标对象,查询语句中的结果保存在元组中.
cursor(pymysql.cursors.DictCursor) : 查询语句中的结果保存在字典中.

三、通过游标对象操作数据库

execute() : 执行sql语句
fetchone() : 从查询结果中获取一行数据
fetchmany(n) :从查询结果中获取n行数据
fetchall() : 从查询结果中获取所有数据
rowcount() : 返回数据行数或者影响行数

注意:

  1. 主键和外键对于表格来说是一种约束,并不是必须的,但是有比没有要好.
  2. 当你进行分组查询时,如果表中没有主键字段,将无法获取除分组查询的字段外其他的其他,当你没有主键约束想要获取其他字段会报完整性错误.
  3. 外键约束,约束表中的数据不能随意删除,当外键字段所关联的表中存在数据,那么这个外键字段对应的数据将不能删除.

示例

import pymysql
 
# 1.连接数据库
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    passwd='123456',
    db='day16',
    charset='utf8'
)
# 2.创建游标
# cur = conn.cursor()  # 查询的结果存放在元组中
cur = conn.cursor(pymysql.cursors.DictCursor)
 
# 3.执行sql语句
 
# 查询
# sql = '''SELECT emp.`eid`, emp.`ename`, emp.`salary`,
#     job.`jname`, job.`description`
#     FROM emp, job
#     WHERE emp.`job_id`=job.`jid`;'''
#
# cur.execute(sql)
# # print(cur.fetchone())  # 获取查询结果中的一行
# # print(cur.fetchmany(3))  # 获取查询结果中的三行
# r = cur.fetchall()  # [{}, {}, {}]
# for i in r:
#     print(i)
 
 
# 增加数据
# sql = '''insert into test values(40, 50)'''
# cur.execute(sql)
# conn.commit()  # 往数据库提交操作
# print('成功插入%s数据' % cur.rowcount)
 
# 删除数据
# sql = '''delete from test where dep_id=40'''
# cur.execute(sql)
# conn.commit()
# print('成功删除%s条数据' % cur.rowcount)
 
# 修改数据
# sql = 'update test set num=8 where dep_id=30;'
# cur.execute(sql)
# conn.commit()
# print('成功修改了%s行数据' % cur.rowcount)
 
 
# 事物回滚
sql1 = 'update test set num=10 where dep_id=30;'
sql2 = 'update test set num=2 where dep_id=20;'
sql3 = 'create table test(tid int, tname varchar(20))'
# 执行try分支中所有的代码
# 一旦报错则运行except中的代码
# 如果没有任何错误则运行else的代码
try:
    cur.execute(sql1)
    cur.execute(sql2)
    cur.execute(sql3)
except:
    # 如果事务中所有的sql语句执行正确则需要手动提交commit
    # 任何一条执行报错,提交rollback
    # 将所有的数据库操作语言历史记录全部清空
    conn.rollback()
    print('事物处理失败')
else:
    conn.commit()
    print('事物处理成功:' % cur.rowcount)

关于Python_mysql数据库(五)的介绍今天就到这里啦~~~~
关注我,带你领略Python的风采~😍😍😍

文章来源:https://blog.csdn.net/m0_75141643/article/details/135550535
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。