1. 程式人生 > >mysql基礎(五)之pymysql

mysql基礎(五)之pymysql

none set python 導入 char span import mysql pre

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

mysql基礎(五)之pymysql