pymysql操作MySQL数据库(一)

pymysql 是 Python 中用于连接 MySQL 数据库并执行操作的库。

一、操作流程

  1. 连接数据库。需要获取数据库的相关配置信息
db_info = {
    'host':'127.0.0.1', # 数据库的IP地址
    'port':3306, # 端口号
    'user':'root', # 数据库的连接账户
    'password':'123456', # 账户对应的密码
    'database':'world'
}
  1. 通过配置信息来实现对数据库的连接操作
conn = pymysql.connect(**db_info)
  1. 创建游标,用于获取sql的执行记录, 创建一个游标,并指定返回结果为字典类型
# 第一种方式
# 创建游标
cursor = conn.cursor()

# 第二种方式:并指定返回结果为字典类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  1. 数据库的相关操作,即编写sql语言
sql = 'select * from city'
sql = 'select * from city where CountryCode="AFG"'

增删改: 其实就是对数据库已有的数据进行修改的特性,在实操中都是需要进行二次确认的 conn.commit():
是对事务进行确认提交的操作,可以让修改生效,一般会放在最后面 conn.rollback(): 回滚操作,撤回之前的修改操作

  1. 调用sql执行
cursor.execute(sql)
  1. 获取执行结果
获取本次sql执行的所有结果
result = curses.fetchall()
for i in result:
    print(i)

只获取一条结果
result = curses.fetchone()
print(result)


 指定获取数据记录条数
result = curses.fetchmany(3)
print(result)


ses.fetchone()
print(result)

基于第一行向前前移
curses.scroll(2,'absolute')
result = curses.fetchone()
print(result)
  1. 数据库关闭操作。包括游标的关闭以及数据库本身的连接关闭
curses.close()
conn.close()

完整代码演示:

import pymysql

# 创建配置信息
db_info = {
    'host':"127.0.0.1",
    'port':3306,
    'user':'root',
    'password':'123456',
    'database':'school'
}

# 连接数据库
conn = pymysql.connect(**db_info)

# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 定义sql语句
sql = 'select * from student'

# 调用sql语句
cursor.execute(sql)

# 输出sql执行的全部结果
result = cursor.fetchall()
for i in result:
     print(i)

# 获取单条结果
result1 = cursor.fetchone()
print(result1)

# 获取指定多少条的记录
result2 = cursor.fetchmany(3)  # 列表的形式输出
print(result2)

# 数据库关闭
cursor.close()
conn.close()

二、操作两个数据库表

  1. 获取 table1 内容
# 对 表1 进行操作
sql1 = 'select * from student'
# 调用sql语句
cursor.execute(sql1)
# 获取结果
result1 = cursor.fetchall()
for row in result1:
    print(row)
  1. 获取 table2 内容
# 获取 表2 进行操作
sql2 = 'select * from subject'
# 调用sql语句
cursor.execute(sql2)
# 获取结果
result2 = cursor.fetchall()
for row in result2:
    print(row)

其实就是对数据库已有的数据进行修改的特性,在实操中都是需要进行二次确认的
注意:
conn.commit():是对事务进行确认提交的操作,可以让修改生效,一般会放在最后面

insert_sql1 = 'insert into student values (1013,123456,"张三",1,4,"13700001111","广东广州","1990-01-01 00:00:00","text111@qq.com","123456196001011243")'
cursor.execute(insert_sql1)
conn.commit()

update_sql1 = "update student set gradeid=5 where studentno=1013"
cursor.execute(update_sql1)
conn.commit()

del_sql1 = 'delete from student where studentno=1013 '
cursor.execute(del_sql1)
conn.commit()

连接两个数据库

inner_sql = "select * from student inner join subject on student.gradeid=subject.gradeid"
cursor.execute(inner_sql)
conn.commit()
result = cursor.fetchall()
for row in result:
    print(row)

三、通过配置信息来操作

1、编写conf.ini

[TESTS_ENV]
HOST = 127.0.0.1  # 地址
PORT = 3306  # 端口号
USER = root  # 用户账户
PASSWORD = 123 # 账户密码
DATABASE = school # 数据库名称

2、编写conf.py

import configparser
import pathlib


def sql_conf(env):
    conf = configparser.ConfigParser() # 创建一个 ConfigParser 对象,并将其赋值给变量 conf
    # pathlib.Path(__file__).parents.resolve() 获取的是当前脚本文件自身的绝对路径。
    # parents[0] 获取该路径的父目录
    file = pathlib.Path(__file__).parents[0].resolve() / 'mysql_conf.ini' 
    conf.read(file)
    values = dict(conf.items(env))
    # 因为读取配置文件获取的内容都是str类型,而port需要int类型。所以需要提前做数据的转型
    for key in values.keys():
        if key == 'port':
            values[key] = int(values[key])  # 将原有值转为int类型
    return values

3、编写sql.py

import pymysql

from sql数据库.read_conf import sql_conf
# 基于配置信息
print(sql_conf('TESTS_ENV'))
# 基于配置信息来实现对数据库的连接操作
conn = pymysql.connect(**sql_conf('TESTS_ENV'))

# 创建游标:用于获取sql的执行结果记录
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 将数据结果以dict类型来进行返回

sql = 'select * from student'

cursor.execute(sql)

result = cursor.fetchall()
for row in result:
    print(row)

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyMySQL是Python操作MySQL数据库的一个库,可以通过它来连接MySQL数据库,执行SQL语句,获取查询结果等操作。以下是使用PyMySQL操作MySQL数据库的基本步骤: 1. 安装PyMySQL库 在终端或命令行中输入以下命令来安装PyMySQL库: ``` pip install pymysql ``` 2. 连接MySQL数据库 使用pymysql.connect()方法来连接MySQL数据库。需要指定主机名、用户名、密码、数据库名等参数。示例代码如下: ``` import pymysql #连接MySQL数据库 conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb', charset='utf8') ``` 3. 执行SQL语句 使用cursor()方法获取游标对象,然后使用execute()方法来执行SQL语句。示例代码如下: ``` #获取游标对象 cursor = conn.cursor() #执行SQL语句 sql = 'SELECT * FROM students' cursor.execute(sql) ``` 4. 获取查询结果 使用fetchall()方法获取查询结果。示例代码如下: ``` #获取查询结果 result = cursor.fetchall() #打印查询结果 for row in result: print(row) ``` 5. 关闭数据库连接 使用close()方法关闭数据库连接。示例代码如下: ``` #关闭数据库连接 conn.close() ``` 完整示例代码: ``` import pymysql #连接MySQL数据库 conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb', charset='utf8') #获取游标对象 cursor = conn.cursor() #执行SQL语句 sql = 'SELECT * FROM students' cursor.execute(sql) #获取查询结果 result = cursor.fetchall() #打印查询结果 for row in result: print(row) #关闭数据库连接 conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值