1. pymysql模块
pymysql模块用于对数据库进行操作,在使用此模块之前,首先主机上安装数据库并做好安全初始化:
输入密码,可以成功进入数据库:
2. pymysql模块的使用
- 创建表
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('修改数据成功')
输出结果:
数据库信息修改如下: