(8)Python连接操作MySQL

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

 

posted @ 2019-01-23 15:46  clyde_S  阅读(350)  评论(0编辑  收藏  举报