python的连接数据库
【摘要】 连接数据库: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)