mysqljs css htmlpython

Python模块·PyMySQL数据库

2023-01-10  本文已影响0人  技术老男孩

一、PyMySQL实现思路流程

1.建立连接
2.创建游标:游标数据库操作的接口
3.数据库操作(建表、插入数据、查询数据、更新数据、删除数据..)
4.提交事务以及关闭资源

二、实操

步骤一:环境准备(准备数据库)

[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
MariaDB [(none)]> CREATE DATABASE tedu1 CHARSET utf8;

步骤二:建立连接

# 建立连接
conn = pymysql.connect(
    host="127.0.0.1",  # mysql服务所在的主机地址
    port=3306,  # mysql服务占用的端口号,必须是整数类型
    user="root",  # mysql服务登录用户名
    # password="", # mysql服务登录密码
    db="tedu1",  # 连接的数据库
    charset="utf8"  # 指定字符集
)

步骤三:创建游标

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

步骤四:数据库操作

create_bm = """create table bm2(
    bm_id int,bm_name varchar(30)
)"""
cur.execute(create_bm)
 # %s填坑方式传参
insert_bm = "insert into bm values(%s,%s);" 

# 单条插入数据
cur.execute(insert_bm, (1, "opt")) 
# 多条插入数据
cur.executemany(insert_bm, [  
    (2, "def"), (3, "1asd"), (4, "UI")
])
select_bm = "select * from bm;"
cur.execute(select_bm)
# 抓取一个数据结果,相当于read()
print(cur.fetchone())  
# 抓取多个数据结果
print(cur.fetchmany(2))  
# 抓取剩余数据结果
print(cur.fetchall())  
update_bm = "update bm set bm_name=%s where bm_id=%s"
# 单条数据更新
cur.execute(update_bm, ("开发部", 1))  
# 批量数据更新
cur.executemany(update_bm, [  
    ("运维部", 2), ("运维部2", 3), ("运维部4", 4)
])
delete_bm = "delete from  bm where bm_id=%s"
# 单条删除
cur.execute(delete_bm, 4)  
# 批量删除
cur.executemany(delete_bm, [1, 2])  

步骤五:提交事务及关闭资源

conn.commit()
# 关闭游标资源
cur.close()
# 关闭数据库连接资源
conn.close()

三、练习案例(员工表 (yg) 相关操作)

需求:

import pymysql

# 创建连接
conn = pymysql.Connect(
    host="127.0.0.1",
    user="root",
    port=3306,
    db="company",
    charset="utf8"
)

# 创建游标
cur = conn.cursor()
# 创建表
create_table = """create table yg(
    FIRST_NAME VARCHAR(20),
    LAST_NAME VARCHAR(20), 
    AGE INT,
    SEX VARCHAR(1),
    INCOME FLOAT
);"""
cur.execute(create_table)
# 插入数据
insert_data = "insert into yg values(%s,%s,%s,%s,%s);"
cur.executemany(insert_data, [
    ('Mac', 'A', 20, 'M', 20000), ('Tom', 'B', 20, 'F', 30000), ('Bob', 'C', 20, 'M', 40000)
])
# 查询数据
select_data = "select * from yg;"
cur.execute(select_data)
# 查询
print(cur.fetchall())
# 修改数据
update_data = "update yg set INCOME=10000 where FIRST_NAME=%s;"
cur.execute(update_data, "Mac")
# 删除数据
delete_data = "delete from yg where FIRST_NAME=%s;"
cur.execute(delete_data, "Tom")
# 提交事务
conn.commit()
# 关闭资源
cur.close()
conn.close()
上一篇下一篇

猜你喜欢

热点阅读