PyMySQL 模块应用

1、准备一个数据库,以mariadb为例:

[root@localhost ~]# yum -y install gcc
[root@localhost ~]# yum -y install mariadb-server
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# ss -ntulp | grep mysql
[root@localhost ~]# mysql
# 创建数据库 csdn
# none:表示当前在哪个数据库操作
MariaDB [(none)]> CREATE DATABASE csdn CHARSET utf8;

2、连接数据库

import pymysql
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    db='csdn',
    charset='utf8'
)

 3、游标

  • 游标(cursor)就是游动的标识

  • 通俗的说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行

cur = conn.cursor()  # 创建游标【对数据库进行增删改查】

4、创建表

 # 建立部门表,员工表,工资表
# 定义创建departments【部门表】sql命令
create_dep = '''CREATE TABLE departments(
    dep_id INT, dep_name VARCHAR(50)
)'''
cur.execute(create_dep)  # 执行sql语句create_dep

5、插入数据

对数据库表做修改操作,必须要 commit

#向部门表中插入数据
insert_dep = 'INSERT INTO departments VALUES (%s, %s)'    # 定义插入数据的变量,%s为占位符
cur.execute(insert_dep, (1, '人事部'))  # 执行sql语句insert_dep, 插入一条记录
cur.executemany(  # executemany(), 执行sql语句insert_dep, 同时插入多条记录
    insert_dep,
    [(2, '运维部'), (3, '开发部'), (4, '测试部'), (5, '财务部'), (6, '市场部')]
)
conn.commit()

 6、查询数据

可以取出表中一条、多条或全部记录

sql4 = "SELECT * FROM departments"
cur.execute(sql4)
result = cur.fetchone()
print(result)

result2 = cur.fetchmany(2)
print(result2)

result3 = cur.fetchall()
print(result3)

 7、修改数据

通过 update 修改某一字段的值

# 更新部门表【departments】中的数据
update_dep = 'UPDATE departments SET dep_name=%s WHERE dep_name=%s'
cur.execute(update_dep, ('人力资源部', '人事部'))
conn.commit()

8、删除记录

通过 delete 删除记录

#删除部门表【departments】中的id为6的数据
del_dep = 'DELETE FROM departments WHERE  dep_id=%s'
cur.execute(del_dep, (6,))
conn.commit()

9、练习 :员工表 (EMPLOYEE) 相关操作

需求

  1. 员工表有 FIRST_NAME VARCHAR(20),LAST_NAME VARCHAR(20),AGE INT,SEX VARCHAR(1),INCOME FLOAT字段

  2. 使用 PyMySQL 创建该表

  3. 使用 PyMySQL 添加以下三条数据

    1. 'Mac', 'A', 20, 'M', 20000

    2. 'Tom', 'B', 20, 'F', 30000

    3. 'Bob', 'C', 20, 'M', 40000

  4. 使用 PyMySQL 查询所有用户信息,并打印结果

  5. 将 FIRST_NAME 为 Mac 的用户工资改成 10000

  6. 删除 FIRST_NAME 为 Tom 的用户信息

import pymysql
# 打开数据库连接
db = pymysql.connect(
    host='127.0.0.1', 
    port=3306, 
    user='root',
    db='tedu1', 
    charset='utf8'
)
# 使用 cursor() 方法创建一个游标对象 cursor
cur = db.cursor()

##########################################################
# 创建表
sql = """CREATE TABLE EMPLOYEE (
    FIRST_NAME  VARCHAR(20) NOT NULL,
    LAST_NAME  VARCHAR(20),
    AGE INT,  
    SEX VARCHAR(1),
    INCOME FLOAT 
)"""
cur.execute(sql)
##########################################################
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES (%s, %s, %s, %s, %s)"""
cur.executemany(  # executemany(), 执行sql语句, 同时插入多条记录
    sql, [
        ('Mac', 'A', 20, 'M', 20000), 
        ('Tom', 'B', 20, 'F', 30000), 
        ('Bob', 'C', 20, 'M', 40000)
    ]
)
db.commit()
##########################################################
sql = "SELECT * FROM EMPLOYEE"
cur.execute(sql)
result = cur.fetchone()
print(result)
result2 = cur.fetchmany(2)
print(result2)
##########################################################
sql = 'UPDATE EMPLOYEE SET INCOME=%s WHERE FIRST_NAME=%s'
cur.execute(sql, (10000, 'Mac'))
db.commit()
##########################################################
sql = 'DELETE FROM EMPLOYEE WHERE FIRST_NAME=%s'
cur.execute(sql, ("Tom",))
db.commit()
# 关闭数据库连接
cur.close()
db.close()

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值