zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python与MySQL详解编程语言

2023-06-13 09:20:37 时间

因版本不同python操作mysql有两个模块,python3不再支持MySQL-python,模块使用都一样:

python2.7:MySQL-python

python3:pymysql

安装:

pip install  Mysql-python

pip install pymysql

 

pymysql介绍:

1.执行原生sql语句

#!/usr/bin/env python3 

#_*_ coding:utf-8 _*_ 

#Author:wd 

import pymysql 

conn=pymysql.connect(host=10.0.0.241,port=3307,user=stu,passwd=1234qwer,db=student)#创建连接 

cursor=conn.cursor()#创建游标 

try: 

 #num=cursor.execute("create table student (name CHAR(20),age INT(3),date DAT )")#创建表不需要提交可以生效 

 num=cursor.execute("insert into student value(wd,22,1993-05-22)")#执行sql返回受影响的条目数 

 print(num) 

 conn.commit() #pymysql默认开启了事务,进行数据库更新需要提交 

except: 

 conn.rollback()#出现异常则回滚 

cursor.close()#关闭游标 

conn.close()#关闭连接

 

2.批量执行sql

实际是循环调用execute

def executemany(self, query, args):
# type: (str, list) - int
#!/usr/bin/env python3 

#_*_ coding:utf-8 _*_ 

#Author:wd 

import pymysql 

conn=pymysql.connect(host=10.0.0.241,port=3307,user=stu,passwd=1234qwer,db=student)#创建连接 

cursor=conn.cursor()#创建游标 

num=cursor.executemany("insert into student values(%s,%s,%s)",[(jack,22,1993-01-11),(tara,18,1998-03-04)]) 

#一次性执行操作多条,参数为 

print(num)#打印条结果条目 

conn.commit() #pymysql默认开启了事务,进行数据库更新需要提交 

new_id = cursor.lastrowid#如果是自增id,该方法可以获取到插入完成以后的ID 

print(new_id) 

cursor.close()#关闭游标 

conn.close()#关闭连接

 

3.查询操作:fetch

#!/usr/bin/env python3 

#_*_ coding:utf-8 _*_ 

#Author:wd 

import pymysql 

conn=pymysql.connect(host=10.0.0.241,port=3307,user=stu,passwd=1234qwer,db=student)#创建连接 

cursor=conn.cursor()#创建游标 

cursor = conn.cursor() 

cursor.execute("select * from student") 

# 获取第一行数据 

row_1=cursor.fetchone() 

print(row_1) 

# 获取前n行数据 

row_2=cursor.fetchmany(3) 

print(row_2) 

# 获取所有数据 

# row_3=cursor.fetchall() 

cursor.scroll(0,mode=absolute)#将游标重新移至开始处 

row_new=cursor.fetchone() 

print(row_new) 

cursor.close()#关闭游标 

conn.close()#关闭连接

TIPS:使用fetchone获取数据如同读取文件一样,如果读一行游标会下移一行,

可以使用cursor.scroll(num,mode)来移动游标位置,如:

cursor.scroll(1,mode= relative )  # 相对当前位置移动 cursor.scroll(2,mode= absolute ) # 相对绝对位置移动

4.设置fetch获取数据类型

默认使用fetch查询结果是tuple,我们还可以设置获取的数据返回时dict

#!/usr/bin/env python3 

#_*_ coding:utf-8 _*_ 

#Author:wd 

import pymysql 

conn = pymysql.connect(host=10.0.0.241, port=3307, user=stu, passwd=1234qwer, db=student) 

# 游标设置为字典类型 

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#设置游标类型为字典 

r = cursor.execute("select * from student") 

res = cursor.fetchone() 

print(res) 

cursor.close() 

conn.close() 

{name: wd, age: 22, date: datetime.date(1993, 5, 22)}

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12436.html

cjavamysqlpython