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)
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)
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)
备注:也可以使用直接打印出来
print(all)
========================================================
指定获取剩余结果中的数据fetchmany(size=3)
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条数据】
========================================================
#执行删除符合条件的数据,并且查询
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)
========================================================
#查询更新后的数据
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)
=======================================================
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")