Python学习之Part17.pymysql模块

1. pymysql模块

pymysql模块用于对数据库进行操作,在使用此模块之前,首先主机上安装数据库并做好安全初始化:
在这里插入图片描述
在这里插入图片描述输入密码,可以成功进入数据库:
在这里插入图片描述

2. pymysql模块的使用

  1. 创建表
import pymysql
# 1.连接数据库
# 在创建连接的过程中需要输入以下信息:
#	其中需要注意的是:所进入库"python"必须是存在的,若不存在,则首先创建python库
conn = pymysql.connect(host='localhost',
                       user='root',
                       password='redhat',
                       db='test',
                       # 设置编码方式为utf-8
                       charset='utf8'
)

# 2.创建游标对象
cur = conn.cursor()

# 3.对数据库操作
########创建数据表#############
try:
	# sql语句
    create_sqlt = 'create table user (id int,name varchar(10));'
    cur.execute(create_sqlt)
except Exception as e:
    print('创建表失败:', e)
# 若try执行成功,则执行else; 若执行了except部分,则不会执行else
else:
    print('创建表成功.')

输出结果:
在这里插入图片描述
进入数据库中查看,user表创建成功:

在这里插入图片描述2. 插入单条数据

conn = pymysql.connect(host='localhost',
                       user='root',
                       password='redhat',
                       db='python',
                       charset='utf8',
                       # 自动提交,此参数确定后,不需要再使用conn.commit()进行提交
                       # autocommit='True'
)

try:
    # 定义sql语句
    insert_sql = "insert into user(id,name) values(0,'root');"
    # 执行sql语句
    cur.execute(insert_sql)
except Exception as e:
    print('插入数据失败:', e)
else:
    # 提交python语句,若不提交,则实际表中不会插入数据
    conn.commit()
    print('插入数据成功')
    # 若不提交,则也会输出此语句,但是表中不存在数据

输出结果:
在这里插入图片描述
查看数据库:
在这里插入图片描述
3. 插入多条数据
 1). 第一种方式

conn = pymysql.connect(host='localhost',
                       user='root',
                       password='redhat',
                       db='python',
                       charset='utf8',
                       # 自动提交,此参数确定后,不需要再使用conn.commit()进行提交
                       autocommit='True'
)

try:
    # 元组
    info = [(i, i) for i in range(10, 15)]
    # 第一种方式
    insert_sql = "insert into user values(%d, '%s');"
    for item in info:
        print('insert 语句:', insert_sql %item)
        cur.execute(insert_sql %item)
except Exception as e:
    print('插入多条数据失败:', e)
else:
    print('插入多条数据成功')

输出结果:
在这里插入图片描述
数据库内容:
在这里插入图片描述
 2). 第二种方式

try:
    # 元组
    info = [(i, i) for i in range(16, 20)]
    # 第二种方式
    insert_sql = "insert into user values('%s', '%s');"
    cur.executemany(insert_sql,info)
except Exception as e:
    print('插入多条数据失败:', e)
else:
    print('插入多条数据成功')

执行结果:
在这里插入图片描述
数据库内容:
在这里插入图片描述4. 查询数据

select_sql = "select name from user where id = '10' "
select_sql = "select * from user"
# 默认不返回查询结果集,返回的是数据记录数
res = cur.execute(select_sql)
print(res)

输出结果:共查询了10条数据
在这里插入图片描述

select_sql = "select name from user where id = '10' "
select_sql = "select * from user"
# 默认不返回查询结果集,返回的是数据记录数
res = cur.execute(select_sql)
# cur.fetchone()获取查询结果集,从最开头开始,获取一条
# 返回一个元组
a = cur.fetchone()
print(a)

输出结果:
在这里插入图片描述

select_sql = "select name from user where id = '10' "
select_sql = "select * from user"
# 默认不返回查询结果集,返回的是数据记录数
res = cur.execute(select_sql)
a = cur.fetchone()
print(a)
# fetchone后,指针向后移动,获取下一条查询结果集
print(cur.fetchone())
print(cur.fetchone())
# 查询下面3条结果
print(cur.fetchmany(3))

输出如下:
在这里插入图片描述
5. 修改数据

try:
	# 将id=19的用户名字修改为'test'
    update_sql = "update user set name='test' where id='19';"
    cur.execute(update_sql)
except Exception as e:
    print('修改数据失败:', e)
else:
    print('修改数据成功')

输出结果:
在这里插入图片描述
数据库信息修改如下:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值