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()

 

 

 

posted @ 2017-11-23 20:10  屎壳郎先生  阅读(89)  评论(0)    收藏  举报