CSIC_716_20191216【pymysql模块】
强调:mysql要设置严格模式,在my.ini 配置文件中
sql-mode="strict_trans_tables,only_full_group_by" ,设置完要重启mysql服务
my.ini 配置文件中的其他参数 ,如下:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql-mode="strict_trans_tables,only_full_group_by"
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
user="root"
password="默认一个密码"
pymysql的使用方式 :
1、pymysql.connect(。。。。 )建立连接
2、conn.cursor(pymsql.cursors.DictCursor)获取游标,括号中设置pymsql.cursors.DictCursor,确保返回的结果是字典形式的
3、cursor.execute( sql, 元组),拼接sql语句
4、如果么有设置autocommit =True, 则再execute后面还要 conn.commit( )进行确认提交
# _*_ coding: gbk _*_ # @Author: Wonder import pymysql conn = pymysql.connect( user='root', passwd='1234,5678a', # password means passwd host='127.0.0.1', port=3306, db='exercise', # database means db charset='utf8', autocommit=True ) cursor_obj = conn.cursor(pymysql.cursors.DictCursor) # 增(注册) username = input('>>>用户名').strip() password = input('>>>密码').strip() sql = "insert into user(username,password) values(%s,%s)" ret = cursor_obj.execute(sql, (username, password)) print(ret) # 查 username = input('>>>用户名').strip() sql = 'select * from user where username = %s' res2 = cursor_obj.execute(sql, (username,)) print(res2) res = cursor_obj.fetchall() print(res) # 改 username = input('>>>要改的用户名').strip() password = input('>>>修改后的密码').strip() sql = 'update user set password=%s where username = %s' cursor_obj.execute(sql, (password, username)) # 删 username = input('>>>要改的用户名').strip() sql = 'delete from user where username = %s' cursor_obj.execute(sql, (username,)) cursor_obj.close() conn.close()
补充:
cursor.scroll( 移动个数,移动模式 ),移动模式有 relative(相对) 和absolute(绝对) 两种。
相对移动是从当前游标位置开始往后移动,absolute是从最开始的位置向后移动。
cursor.fetchone( ) 获取一个结果
cursor.fetchmany ( 数量 ) ,获取指定个数的结果,如果数量大于总的个数,不会报错。
cursor.fetchall( ) ,获取所有的结果