pymysql模块下的方法
'''必须实例化对象才能建立连接'''
1、pymysql.connect #和MySQL建立连接
'''得由对象去调用定义游标'''
2、xxx.sursor() #获得游标
'''由游标去调用传入指令'''
3、xxx.execute(‘指令’) #传入指令
'''fetchall fetchone必须赋值给变量才能打印,而且得由游标去调用'''
4、fetchall #查询所有 fetchone #查询一行
'''关闭时候必须关闭实例化的对象和游标两个'''
5、游标.close() 对象.close() #关闭游标
'''默认是自动开启事务,必须关闭才能生效指令,由对象调用关闭'''
6、xxx.commit #关闭事务
7、cursor.lastrowid #获取插入值的id号
PS:注意事项,增加的时候
1、单列单行添加的时候%s要加单引号,后面%传入的值是字符类型也要加单引号,后面传入值的%前没有‘,’逗号
2、添加多行多个值得时候一定要用executemany,并且%s不能有单引号,需要传入的值前面必须要有‘,’逗号,并且后面的多个值要以元组形式放入列表中
3、修改单行多列的时候后面%传入的值需要以元组形式传入,传入值的%前面不能有‘,’逗号,并且字符串类型要加单引号,整数类型不需要加单引号
4、添加多列单行值的时候,%s不能加单引号,后面传入的值也不需要%,直接以列表形式传入且列表中字符类型要加单引号,但是传入的值前一定要有‘,’逗号
Python连接MySQL进行查询
'''python要用到pymysql包去连接MySQL'''
import pymysql
'''通过对象去实例化连接mysql,connect里面有几个参数(host=数据库的IP本机就是localhost,user=用户名,password=密码,database=要连接的数据库名,port=端口默认3306不填写也可以,chatset=数据库的编码格式,cursorclass=数据呈现的格式(pymysql.cursors.DictCursor列表内套字典的呈现格式))'''
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
'''获得游标'''
cursor = conn.cursor()
'''执行sql语句'''
cursor.execute('select * from staff_info') #括号内就是传入命令
'''获得值'''
info = cursor.fetchall() #查询表内所有行数据cursor.fetchall,cursor.fetchall 查询别表内一行数据
print(info)
'''关闭游标'''
cursor.close()
conn.close()
Python连接MySQL进行删除
import pymysql
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
cursor.execute('delete from staff_info where id=%s'%1)
''' 默认开启事物的,所以执行完指令需要提交事物才能成功'''
conn.commit()
cursor.close()
conn.close()
PS:因为是默认开启事物的,所以在增删改的操作时候都要提交事物才能成功执行指令
Python连接MySQL进行添加
import pymysql
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
'''单列单行添加的时候%s要加单引号,后面%传入的值是字符类型也要加单引号'''
cursor.execute("insert into staff_info(name) values('%s')" % 'Carl_s') #指令内用%传入时要以字符串形式,否则报错
conn.commit()
cursor.close()
conn.close()
Python连接MySQL进行添加多行多个数据
import pymysql
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
'''添加多行多个值得时候一定要用executemany,并且%s不能有单引号,并且后面的多个值要以元组形式放入列表中'''
cursor.executemany("insert into staff_info(name,dep_id) values(%s,%s)",[('xiaoli',3),('zhangzhang',4)])
conn.commit()
cursor.close()
conn.close()
Python连接MySQL进行修改
import pymysql
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
'''修改单行多列的时候后面%传入的值需要以元组形式传入,并且字符串类型要加单引号,整数类型不需要加单引号'''
cursor.execute("update staff_info set name='%s',dep_id='%d' where id=13"%('zhangzhangbao',1))
conn.commit()
cursor.close()
conn.close()
Python连接MySQL进行修改后获取id号
import pymysql
conn = pymysql.connect(host='localhost',user='root',password='',database='company',port=3306,charset='utf8',cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
'''添加多列单行值的时候,%s不能加单引号,后面传入的值也不需要&,直接以列表形式传入且列表中字符类型要加单引号'''
cursor.execute("insert into staff_info(name,dep_id) values(%s,%s)",['WZRY',3])
conn.commit()
print(cursor.lastrowid) #查看插入数据的主键id
cursor.close()
conn.close()