使用Python访问MySql数据库

一、 使用Python访问MySql数据库
1、 安装pymysql
2、 连接数据库,获取连接对象
3、 通过连接对象获取游标对象
4、 通过游标对象执行sql语句
5、 获取查询结果
6、 关闭游标

二、 连接步骤
1、 安装pymysql的数据库访问组件

2、 连接数据库获取游标对象

1获取连接对象

conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))

2通过链接对象获取游标对象

cursor=conn.cursor()
print(type(cursor))

3、 执行增加修改删除操作

3执行sql

sql="INSERT INTO student(sname,sex,address,birthday,classid) VALUES('张飞','男','北京','1998-12-11',1)"

将传递的参数使用%s进行占位

sql="INSERT INTO student(sname,sex,address,birthday,classid) VALUES(%s,%s,%s,%s,%s)"

try:
cursor.execute(sql,('司马昭','男','长沙','1997-12-11','4'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")
finally:
conn.close()
Demo2.py
import pymysql#引入数据库组件

1获取连接对象

conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))

2通过链接对象获取游标对象

cursor=conn.cursor()
print(type(cursor))

3执行sql

将传递的参数使用%s进行占位

sql="update student set sname=%s,sex=%s,address=%s,birthday=%s,classid=%s where sid=%s"

try:
cursor.execute(sql,('姜维','男','天水郡','1997-12-11','4','6'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")
finally:
conn.close()

Demo3.py
import pymysql#引入数据库组件

1获取连接对象

conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))

2通过链接对象获取游标对象

cursor=conn.cursor()
print(type(cursor))

3执行sql

将传递的参数使用%s进行占位

sql="delete from student where sid=%s"

try:
cursor.execute(sql,('6'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")

4、 获取结果集对象

import pymysql#引入数据库组件

1获取连接对象

conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))

2通过链接对象获取游标对象

cursor=conn.cursor()
print(type(cursor))

3执行sql

sql="select * from student"

try:
cursor.execute(sql)
print("执行成功",cursor.rowcount)
rst=cursor.fetchall()
print(type(rst))
#print(rst)
for row in rst:#从集合中获取记录
for i in range(0,6):#从记录中获取列值
print(row[i])#获取列值
print("=======================")
except:
print("执行失败!")

5、 将结果封装在学生的对象集合中
(1) 创建学生类student.py

class Student(object):
sid=0;
sname="无名氏"
sex="男"
address="未知"
birthday="1995-01-01"
classid="1"

def Student(self,sname,sex,address,sdate,cid):
    self.sname=sname
    self.sex=sex
    self.address=address
    self.birthday=sdate
    self.classid=cid

(2) 将结果及数据转为学生集合

import pymysql#引入数据库组件
from com.bean.student import Student #从com.bean.student文件中引入Student类

1获取连接对象

conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))

2通过链接对象获取游标对象

cursor=conn.cursor()
print(type(cursor))

3执行sql

sql="select * from student"

try:
cursor.execute(sql)
print("执行成功",cursor.rowcount)
rst=cursor.fetchall()
print(type(rst))
lsst=[]#准备学生数组
#print(rst)
######封装学生数据到集合######################################
for row in rst:#从集合中获取记录
# 将表的字段值设置到学生对象中
st=Student()
st.sid=row[0]
st.sname = row[1]
st.sex = row[2]
st.address = row[3]
st.birthday = row[4]
st.classid = row[5]
#################################
lsst.append(st)#将学生对象设置到集合
##############################################################
for st in lsst:
print(st.sid,"\t",st.sname,"\t",st.sex,
"\t",st.address,"\t",st.birthday,"\t",st.classid)
print("=============================================")

print(lsst)

except:
print("执行失败!")

6、 编写数据库执行的工具类dbutil.py,处理数据库连接和各种sql语句

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1