pymysql
pymysql的作用
python与mysql之间本来是相互独立的,但是后端的开发想要从数据库拿到数据,就需要python与mysql建立关系
pymysql模块就是用来链接python与mysql的工具
pymysql安装
cmd--->pip3 install pymysql
使用pymysql模块建立python与mysql之间的链接
import pymysql#导入pymysql #建立与数据库的链接 db = pymysql.connect( host="localhost",#代表本地的数据库 user = "root",#登录mysql的用户名 password = "",#登录mysql的密码,如果没有密码就写空字符串 db = "myemployees",#将要访问的数据库 port = 3306#作为服务端软件的mysql的端口号 )
获取游标
#使用cursor()方法获取游标 cur = db.cursor()#默认情况下,使用这个游标执行的sql语句查询结果为元组的类型返回 # 可以给cursor()加一个参数,返回的结果数据类型为字典 # cur = db.cursor(cursor=pymysql.cursors.DictCursor)
执行sql语句用execute()方法
result = cur.execute(sql语句)
查询
sql = "select * from jobs" try: cur.execute(sql) #执行sql语句 # result = cur.fetchall()#获取查询的所有记录 # print(result) # for row in result: # job_id = row[0] # job_title = row[1] # min_salary = row[2] # max_salary = row[3] # print('工作编号:%s;\n工作名称:%s;\n最低薪资:%s;\n最高薪资%s;\n' %(job_id,job_title,min_salary,max_salary)) first_line = cur.fetchone()#从游标处起查询第一行 before_n_line = cur.fetchmany(3)#查询从游标处起前n行的记录 print(first_line) print(before_n_line) last_id = cur.lastrowid#插入语句之后才能查看 print(last_id) except Exception as e: raise e finally: db.close()#关闭连接
插入
import pymysql #链接 conn=pymysql.connect(host='localhost',user='root',password='123',database='egon') #游标 cursor=conn.cursor() #执行sql语句 #part1 # sql='insert into userinfo(name,password) values("root","123456");' # res=cursor.execute(sql) #执行sql语句,返回sql影响成功的行数 # print(res) #part2 # sql='insert into userinfo(name,password) values(%s,%s);' # res=cursor.execute(sql,("root","123456")) #执行sql语句,返回sql影响成功的行数 # print(res) #part3 sql='insert into userinfo(name,password) values(%s,%s);' res=cursor.executemany(sql,[("root","123456"),("lhf","12356"),("eee","156")]) #执行sql语句,返回sql影响成功的行数 print(res) conn.commit() #提交后才发现表中插入记录成功 cursor.close() conn.close()


浙公网安备 33010602011771号