欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3操作MySQL数据库

程序员文章站 2023-09-28 21:58:05
在Python3中操作MySQL数据库 在Python3中使用mysql数据库需要安装pymysql库 操作MySQL 导包 第一步:打开数据库连接 第二步:创建游标 第三步:操作数据库 1、创建表 2、查询数据 1. Python查询Mysql使用 fetchone() 方法获取单条数据, 使用f ......

在python3中操作mysql数据库

在python3中使用mysql数据库需要安装pymysql库

pip install pymysql

操作mysql

导包

import pymysql

第一步:打开数据库连接

db = pymysql.connect(host="数据库地址", 
                     user="用户名", 
                     password="密码", 
                     port="端口", 
                     database="数据库名", 
                     charset='utf8')

第二步:创建游标

cursor = db.cursor()

第三步:操作数据库

1、创建表

# 如果数据表已经存在使用execute()方法删除表。
cursor.execute("drop table if exists employee")

# 创建数据表sql语句
sql = """create table employee (
         first_name  char(20) not null,
         last_name  char(20),
         age int,  
         sex char(1),
         income float )"""

cursor.execute(sql)

2、查询数据

  1. python查询mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
  2. fetchone(): 该收全部的返回结果行.
  3. rowcount: 这是方法获取下一个查询结果集。结果集是一个对象
  4. fetchall():接一个只读属性,并返回执行execute()方法后影响的行数。
# sql 查询语句
sql = "select * from employee where income > {}".format(1000)
try:
    # 执行sql语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        fname = row[0]
        lname = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        # 打印结果
        print("fname={},lname={},age={},sex={},income={}".format(fname, lname, age, sex, income))

except:
    print("error: unable to fecth data")

3、添加数据

# sql 插入语句
sql = """insert into employee(first_name,
         last_name, age, sex, income)
         values ('mac', 'mohan', 20, 'm', 2000)"""
try:
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

4、修改数据

# sql 更新语句
sql = "update employee set age = age + 1 where sex = '{}'".format('m')
try:
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

5、删除数据

# sql 刪除语句
sql = "delete from employee where age > {}".format(20)
try:
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

第四步:关闭游标,数据库连接

cursor.close()
db.close()