Python3数据库连接

本文介绍了如何使用Python3的pymysql模块连接MySQL数据库,包括connect函数的参数、连接对象的方法以及游标的使用。通过游标执行SQL操作,如创建表、删除数据、调用存储过程和查询数据。文章还提供了MySQL生成随机六位数字的SQL方法,并强调了操作结束时提交事务和关闭连接的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

检查并安装pymysql

        

为了使用数据库,首先应该连接到数据库,使用函数connect,该函数有多个参数,而具体使用哪个参数取决于底层数据库的类型 :

1、connect函数的常用参数:user(用户名)、password(用户密码)、host(主机名)、 database(数据库名)、port(端口)。

connect函数返回连接对象,这个对象表示目前和数据库的会话

connect函数返回的连接对象具有几个常用的方法:

  • close()-关闭连接,关闭后,连接对象和它的游标均不可用
  • commit()-提交事务,对数据库做的数据更改等事务只有提交才会生效
  • rollback()-回滚事务,撤销所有未提交的事务
  • cursor()-返回连接的游标对象

2、建立数据库连接后,就可以执行SQL查询并检查结果,这些都是通过游标cursor来完成的。

游标用来执行命令的方法:

  • callproc():用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
  • execute():执行单条sql语句(可能带有参数),返回值为受影响的行数
  • close():关闭游标

连接数据的两种方式,首先导入模块【 import pymysql】:

import pymysql
#   连接数据操作方式一
conn = pymysql.connect(user='root',password='123456',host='192.168.8.110',port=3306,database='test1',charset='utf8')
print(conn)
#   打印结果:<pymysql.connections.Connection object at 0x027E1D10> 表示成功
import pymusql
#   连接数据库操作方式二
#   创建连接数据库的配置文件
config = {'user':'root',
          'password':'123456',
          'host':'192.168.8.110',
          'port':3306,
          'database':'test1',
          'charset':'utf8'}
#   连接数据库
conn = pymysql.connect(**config)
print(conn)
#   打印结果:<pymysql.connections.Connection object at 0x021F1D90> 表示连接成功。

创建游标,执行创建数据表

cursor = conn.cursor()  # 为已连接的数据库创建游标,为后续执行SQL语句做准备
ml = 'create table user(id int,uname varchar(20),password int);'
cursor.execute(ml)  # 用创建的游标执行单条SQL语句

用游标执行删除数据表信息

#   删除数据库信息SQL语句
delete_info = 'delete from user;'
rows=cursor.execute(delete_info)  # 游标执行SQL语句返回影响行数
print(rows)

调用存储过程

# 调用存储过程
cursor.callproc('add_user')  # 调用存储过程,使用 callproc('存储过程名称')

简单的查询并提取查询结果集中的一个值

select_passwd = 'select password from user where id = 1;'
cursor.execute(select_passwd)  # 用游标cur来调用execute 执行上面的sql语句
result = cursor.fetchall()  # 返回上一条语句sql.execute(select_passwd)的结果,返回一个元组,元组的第一个元素为包含密码的元组
print(result)
pwd = result[0][0]  # 获取id=1对应的密码值,以字符串形式返回。
print(pwd)

操作结束一定要提交事务和关闭连接。

数据库操作SQL脚本:

-- 创建数据库test1
create database test1 default character set utf8 collate utf8_general_ci;
-- 使用数据库
use test1;
-- 查看数据库表
show TABLES;
-- 查看表详细内容
desc user;

-- 添加用户信息存储过程
Delimiter//
create procedure add_user()
BEGIN
declare id int;
declare uname varchar(20);
set id = 1;
set uname = 'zhangsan';
while id <= 100000 DO
	insert into user values(id,concat(uname,id),FLOOR(RAND()*500000 + 500000));
	set id=id+1;
end while;
end//
Delimiter;

SELECT * from user;

以上代码,完整如下:

#encoding:utf8
import pymysql
#   连接数据操作方式一
conn = pymysql.connect(user='root',password='123456',
                       host='192.168.8.110',port=3306,
                       database='test1',charset='utf8')
print(conn)
#   打印结果:<pymysql.connections.Connection object at 0x027E1D10> 表示成功

cursor = conn.cursor()  # 为已连接的数据库创建游标,为后续执行SQL语句做准备

ml = 'create table user(id int,uname varchar(20),password int);'
cursor.execute(ml)  # 用创建的游标执行单条SQL语句

#   删除数据库信息SQL语句
delete_info = 'delete from user;'
rows=cursor.execute(delete_info)  # 游标执行SQL语句返回影响行数
print(rows)  # 100000

# 调用存储过程
cursor.callproc('add_user')  # 调用存储过程,使用 callproc('存储过程名称')

# 查询id=1的用户密码
select_passwd = 'select password from user where id = 1;'
cursor.execute(select_passwd)  # 用游标cur来调用execute 执行上面的sql语句
result = cursor.fetchall()  # 返回上一条语句sql.execute(select_passwd)的结果,返回一个元组,元组的第一个元素为包含密码的元组
print(result)  # ((662866,),)
pwd = result[0][0]  # 获取id=1对应的密码值,以字符串形式返回。
print(pwd)   # 662866

conn.commit()  # 提交事务
conn.close()  # 连接关闭
cursor.close()  # 游标关闭

MySQL随机生成六位数字方法:

SELECT CEILING(RAND()*500000+500000);
SELECT FLOOR(RAND()*500000 + 500000);

附加学习参考文章:

https://www.cnblogs.com/conanwang/p/6028110.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值