python操作mysql数据库
pymysql 库名,关于数据库操作的库
一、:pymysql下载安装
方法一:pip3 install pymysql
方法二:在pycharm 中搜素pymysql 下载
===================================================
二、
import pymysql #导入pymysql库====》用来连接数据库
#通过pymysql库里面的Connection这个类创建一个数据库连接对象db
方式一:
db = pymysql.Connection(host='192.168.153.130',
user='root',
password='123456',
database='hz',
port=3306,
charset='utf8')
方式二:
db = pymysql.connect(host="192.168.153.130",user="root",passwd="123456",db="hz", port=3306,charset='utf8')
#connect和Connection 两个单词都可以
解释:
host:mysql服务器ip地址
user:用户名
password:密码 (password或passwd二取一)
db:数据库名称 (db或database二取一)
port:端口号
charset= "utf-8":字符集编码
===========================================================
操作方法:
第一步:创建游标对象
第二步:执行对象脚本(sql语句)
#通过对象db用Connection这个类里面的cursor方法创建一个游标对象
#游标的作用:1、执行sql语句 2、获取执行后的结果\返回的结果会存在游标对象中
# r = db.cursor()#创建一个游标对象,通过游标象执行sql语句
# sql = 'select * from dcs'
# r.execute(sql)#执行sql语句
注解:1、execute()方法是代表执行
--------------------------------------------------------------------------
#通过游标获取结果的第一行数据(fetchone)
1 2 3 4 5 6 7 8 | import pymysql #或者引用pymysql db = pymysql.Connection(host = "192.168.153.130" ,user = "root" ,passwd = "123456" ,db = "hz" , port = 3306 ,charset = 'utf8' ) r1 = db.cursor() #游标对象 sql1 = "select * from student2" #sql语句 r1.execute(sql1) #执行语句 one = r1.fetchone() #游标获取并占用一条数据 ,就是表示显示第一行数据 print (one) print ( type (one)) |
----------------------------------------------------------------------------
#获取剩余的结果中所有数据(fetchall)
1 2 3 4 5 6 7 8 | import pymysql #或者引用pymysql db = pymysql.Connection(host = "192.168.153.130" ,user = "root" ,passwd = "123456" ,db = "hz" , port = 3306 ,charset = 'utf8' ) r = db.cursor() #游标对象 sql1 = "select * from student2" #sql语句 r.execute(sql1) #执行语句 all = r.fetchall() #游标获取未被占用的所有数据. for i in all : #for循环遍历出来, print (i)<br><br>备注:也可以使用直接打印出来<br> print ( all ) |
========================================================
指定获取剩余结果中的数据fetchmany(size=3)
1 2 3 4 5 6 7 8 9 | import pymysql #或者引用pymysql db = pymysql.Connection(host = "192.168.153.130" ,user = "root" ,passwd = "123456" ,db = "hz" , port = 3306 ,charset = 'utf8' ) r3 = db.cursor() #游标对象 sql1 = "select * from student2" #sql语句 r3.execute(sql1) #执行语句 u = r3.fetchmany(size = 3 ) #游标获取剩余结果数据中的条数,根据size设置数量. for i in u: print (i) # print(u) |
【备注:size=3表示指定获取剩余3条数据】
========================================================
#执行删除符合条件的数据,并且查询
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pymysql #或者引用pymysql db = pymysql.connect( "192.168.153.130" , "root" , "123456" , "hz" , 3306 ,charset = 'utf8' ) #连接数据库 r = db.cursor() #游标对象 # sql4="delete from student2 where id=6" # r.execute(sql4) #删除符合条件的数据 # #备注:查看数据库中删除的数据 #-------------------------------- #如需要使用语句查看,如下 select_sql = 'select * from student2' #定义一个查询的sql语句(查看删除后的数据) r.execute(select_sql) u = r.fetchall() for i in u: print (i) |
========================================================
#查询更新后的数据
1 2 3 4 5 6 7 | import pymysql #或者引用pymysql db = pymysql.connect( "192.168.153.130" , "root" , "123456" , "hz" , 3306 ,charset = 'utf8' ) #连接数据库 r = db.cursor() #游标对象 sql1 = "select count(*) from student2" #sql语句 r.execute(sql1) all = r.fetchall() #游标获取未被占用的所有数据. print ( all ) |
=======================================================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import pymysql db = pymysql.connect( '192.168.153.130' , 'root' , '123456' , 'hz' , 3306 ,charset = 'utf8' ) cursor = db.cursor() sql = "SELECT * FROM student2;" print (cursor.execute(sql)) print (cursor.fetchall()) try : cursor.execute(sql) db.commit() print ( "插入成功" ) except : print ( "插入失败" ) db.rollback() cursor.close() db.close() |
==============================================================================
以下案例方法一一样:
import pymysql
class Db_Utils:
def __init__(self,host,user,passwd,db,port,):
self.host = host
self.user = user
self.passwd = passwd
self.db =db
self.port = port
def get_connection(self): # 实例方法
'''创建数据库的连接对象'''
db = pymysql.connect(self.host,self.user,self.passwd,self.db,self.port,charset='utf8')
return db
#讲解:开始封装查询一条数据实例的方法
def find_one(self,sql):
'''封装查询一条数据的实例方法'''
db = self.get_connection() #拿到数据库连接对象
cursor = db.cursor() #创建游标对象
cursor.execute(sql)
one = cursor.fetchone() #拿到第一行的数据
return one
def find_all(self,sql):
'''封装查询所有数据的实例方法'''
db = self.get_connection() # 拿到数据库连接对象
cursor = db.cursor() # 创建游标对象
cursor.execute(sql)
all = cursor.fetchall() # 拿到所有的数据
return all
if __name__ == '__main__':
d = Db_Utils(host = "192.168.153.130",user="root",passwd="123456",db="hz", port=3306)
#print (d.find_one('select * from student2 '))
print(d.find_all('select * from student2 '))
=============================================================================================
import pymysql
class Db():
def __init__(self,host,user,passwd,db,port,):
self.host=host
self.user=user
self.passwd=passwd
self.db=db
self.port=port
def lianjie(self):
db=pymysql.Connection(self.host,self.user,self.passwd,
self.db,self.port,charset="utf8")
return db
def one(self,sql):
db=self.lianjie()
r=db.cursor()
r.execute(sql)
one1=r.fetchone()
print(one1)
def many(self,sql):
db = self.lianjie()
r = db.cursor()
r.execute(sql)
one2 = r.fetchmany(size=2)
print(one2)
def all(self,sql):
db = self.lianjie()
r = db.cursor()
r.execute(sql)
one3 = r.fetchall()
print(one3)
if __name__ == '__main__':
d=Db(host="192.168.153.130",
user="root",passwd="123456",port=3306,
db="hz")
# d.one("select * from student2")
#d.many("select * from student2")
d.all("select * from student2")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架