python的连接数据库

举报
基本资料 发表于 2021/02/07 09:23:54 2021/02/07
【摘要】 连接数据库:Python连接MySQL数据库,使用的是第三方库pymysql。第三方库安装完成后,就可以在python代码中通过import语句来导入pymysql模块,并调用pymysql模块的相应方法来访问数据库。为了使用数据库,首先应该连接到数据库,使用函数connect(),该函数有多个参数,而具体使用哪个参数取决于底层数据库的类型connect函数的常用参数:user(用户名)、p...
连接数据库:
Python连接MySQL数据库,使用的是第三方库pymysql。第三方库安装完成后,就可以在python代码中通过import语句来导入pymysql模块,并调用pymysql模块的相应方法来访问数据库。
为了使用数据库,首先应该连接到数据库,使用函数connect(),该函数有多个参数,而具体使用哪个参数取决于底层数据库的类型
connect函数的常用参数:user(用户名)、password(用户密码)、host(主机名)、database(数据库名)、port(端口)
Connect()函数返回连接对象,这个对象表示目前和数据库的会话
Connect()函数返回的连接对象具有几个常用的方法:
cursor()-返回连接的游标对象, 这个游标可以用来执行SQL查询
游标用来执行命令的方法:
callproc():用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute():执行单条sql语句(可能带有参数),返回值为受影响的行数
executemany():对序列中的每个参数集执行sql语句,返回值为受影响的行数
游标用来接收返回值的方法:
fetchone():获取结果集中的一行并保存为序列或None
fetchall():获取结果集中的所有行,每行作为一个序列保存在序列(元组) 中。fetchall()返回的结果是一个元组,元组中的每一个元素又是一个元组
游标的其他方法:
close():关闭游标,释放资源


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

我们这里讲解使用python连接mysql数据库
# 打开数据库连接, 第一个参数:数据库服务器地址,第二个参数:登录名,第三个参数:密码,第四个参数:连接的数据库名
db=pymysql.connect("192.168.149.134","root","111111","test1")

练习1:
#连接mysql的test1数据库
import pymysql
# 打开数据库连接, 第一个参数:服务器地址,第二个参数:登录名,第三个参数:密码,第四个参数:连接的数据库名
db=pymysql.connect("192.168.149.134","root","111111","test1")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()

练习2:在数据库test1中新建一张数据表
import pymysql
# 打开数据库连接
db=pymysql.connect("192.168.149.134","root","111111","test1")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
建数据库表,如下所示创建表EMPLOYEE
# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE
(
id int,
name varchar(20),
deptno int,
salary int
)"""
cursor.execute(sql)
# 关闭数据库连接
db.close()

练习3:向数据表中插入数据
import pymysql
# 打开数据库连接
db=pymysql.connect("192.168.149.134","root","111111","test1")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(id,name,deptno,salary)
VALUES(1,"zhangsan",1,2000)"""
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()

练习4:查询数据
import pymysql
# 打开数据库连接
db=pymysql.connect("192.168.149.134","root","111111","test1")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE where name='zhangsan'"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录,其中fetchall()返回的结果是一个元组,元组中的每一个元素也是一个元组
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
deptno = row[2]
salary = row[3]
#注意下面的print是放在for循环中的
# 打印结果
print ("fname=%d,name=%s,deptno=%d,salary=%d" % \
(id, name, deptno, salary ))
except:
print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。