mysql基础(五)之pymysql

pymysql模块:
pip3 install pymysql -i https://pypi.douban.com/simple
Python模块:对数据库进行操作(SQL语句)

1. Python实现用户登录
2. MySQL保存数据
- 连接、关闭(游标)
- execute() -- SQL注入
- 增删改: conn.commit() 可以返回受影响的行数
- fetchone fetchall
- 获取插入数据自增ID
-scroll 移动游标位置
 1 #实现增删改
 2 
 3 import pymysql
 4 conn = pymysql.connect(host='localhost',user='root',password='123',database='db1')
 5 cursor=conn.cursor()
 6 
 7 sql="insert into userinfo4(username,password) values('root','123123')"
 8 r = cursor.execute(sql)  # 返回受影响的行数
 9 
10 sql = "insert into userinfo(username,password) values(%s,%s)"
11 r = cursor.executemany(sql,[('egon','sb'),('laoyao','BS')])
12 
13 conn.commit()           # 增删改操作必须进行提交
14 print(r)
15 cursor.close()
16 conn.close()
17 
18 
19 # 查
20 import pymysql
21 conn = pymysql.connect(host="localhost",user='root',password='123',database="db1")
22 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
23 sql = "select * from userinfo4"
24 cursor.execute(sql)
25 
26 cursor.scroll(1,mode='relative')  # 相对当前位置移动
27 cursor.scroll(2,mode='absolute') # 相对绝对位置移动
28 result = cursor.fetchone()        #获取一行
29 print(result)
30 
31 result = cursor.fetchall()        #获取全部
32 print(result)
33 
34 result = cursor.fetchmany(2)      #获取指定行数  一般不用,而在sql语句中限定行数
35 print(result)
36 cursor.close()
37 conn.close()
38 
39 
40 #获取新插入数据的自增id       cursor.lastrowid
41 # 当为一张表插入一行数据时,并不知道它的自增id是多少,那么在对他的相关联的表(外键)进行插入操作时可以使用lastrowid查看id
42 import pymysql
43 
44 conn = pymysql.connect(host="localhost",user='root',password='123',database="db1")
45 cursor = conn.cursor()
46 sql = "insert into userinfo4(username,password) values('asdfasdf','123123')"
47 cursor.execute(sql)
48 conn.commit()
49 print(cursor.lastrowid)
50 cursor.close()
51 conn.close()

sql注入:

 1 import pymysql
 2 name= input('用户名')
 3 passwd=input('密码')
 4 conn =pymysql.connect(host='localhost',user='root',password='123',database='db1',charset='utf8')
 5 cursor=conn.cursor()
 6 
 7 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #设置返回的数据的格式为字典
 8 
 9 
10 sql='select * from userinfo4 where username="%s" and password="%s"'%(name,passwd)
11 
12 #sql='select * from userinfo4 where username="alex" -- " and password="%s"'%(name,passwd)
13 
14 cursor.execute(sql)
15 result =cursor.fetchone()
16 
17 cursor.close()
18 conn.close()
19 
20 if result:
21     print('yes!')
22 else:
23     print('no')
View Code

 


Navicat(客户端)
创建表
新建查询
转储sql文件

数据备份:
备份数据和表结构
mysqldump -u root db1 > db1.sql -p 当前目录下
备份表结构
mysqldump -u root -d db1 > db1.sql -p
导入数据库:
create databases db5;
mysql -u root -d db5 < db1.sql -p
posted @ 2017-06-18 15:14  柳姑娘  阅读(165)  评论(0编辑  收藏  举报