1、簡單操做以及格式mysql
1 import pymysql 2 # 配置 3 client=pymysql.connect( 4 host='127.0.0.1', 5 port=3306, 6 user='root', 7 password='0', 8 database='db1', 9 charset='utf8' # 中間沒有- 10 ) 11 # 遊標 12 cursor=client.cursor() 13 # 拼接sql語句 14 sql='insert into t(name) values("baobao")' 15 try: 16 # 執行sql語句 17 res=cursor.execute(sql) 18 print(res) 19 client.commit() 20 except Exception: 21 # 捕捉到異常狀況就回退至操做以前的數據 22 client.rollback() 23 # 退出遊標 24 cursor.close() 25 # 回收系統資源 26 client.close()
2.簡單從MySQL登陸sql
import pymysql while True: user=input('用戶名:').strip() pwd=input('密碼:').strip() client=pymysql.connect( host='127.0.0.1', user='root', password='0', database='db1', charset='utf8' ) cursor=client.cursor() print(cursor) sql="select * from t where name='%s' and password='%s'"%(user,pwd) print(sql) # 返回行數 rows=cursor.execute(sql) cursor.close() client.close() if rows: print('登陸成功') break else: print('登陸失敗')
登陸結果:ide
注意:在MySQL中 -- 是取消後面語句的意思fetch
不用輸密碼就能夠登入:此時拼接的字符串是有問題的,若客戶端輸入的是 renren" -- asdf 直接回車則會直接登陸成功,緣由是 --取消掉了後面任何語句的含義。es5
帳號密碼都不用輸就登陸:輸入 renren" or 1<2 --asdf,其後邊的1<2條件一直成立,這種狀況下說明帳戶是正確的, -- 又取消了後邊的全部輸入語句,因此此時是不用帳號密碼能夠直接登陸了。spa
import pymysql while True: user=input('用戶名:').strip() pwd=input('密碼:').strip() client=pymysql.connect( host='127.0.0.1', user='root', password='0', database='db1', charset='utf8' ) cursor=client.cursor() print(cursor) sql="select * from t where name=%s and password=%s" # 後邊不用傳入參數了 print(sql) # 返回的是在MySQL中看到的行數 rows=cursor.execute(sql,(user,pwd)) # execute具備自動傳參的功能 print(rows) cursor.close() client.close() if rows: print('登陸成功') break else: print('登陸失敗')
3.在pyMysql中對MySQL庫中的表進行增、刪、改code
1 import pymysql 2 client=pymysql.connect( 3 host='127.0.0.1', 4 user='root', 5 password='0', 6 database='db1', 7 charset='utf8' 8 ) 9 # 增 10 cursor=client.cursor() 11 # sql="insert into t(name,password) values(%s,%s)" 12 # rows=cursor.execute(sql,(('tianqian',123))) 13 14 # 刪 15 # sql="delete from t where name=%s" 16 # rows=cursor.execute(sql,[('tianqian')]) 17 # 18 # # 改s 19 sql="alter table t change name NAME varchar(15)" 20 rows=cursor.execute(sql,) 21 print(rows) 22 23 # 表示客戶端這邊必須提交修改的數據,不然Mysql當中的數據並不會更新 24 client.commit() 25 26 cursor.close() 27 client.close()
4.查數據blog
1 import pymysql 2 client=pymysql.connect( 3 host='127.0.0.1', 4 user='root', 5 password='0', 6 database='db1', 7 charset='utf8' 8 ) 9 cursor=client.cursor() 10 sql="select * from t" 11 rows=cursor.execute(sql) 12 # res1=cursor.fetchone() # 一條,取完以後返回None 13 # res2=cursor.fetchone() # 一條 14 # res3=cursor.fetchone() # 一條 15 # res4=cursor.fetchone() # 一條 16 # res5=cursor.fetchone() # 一條 17 # res2=cursor.fetchmany(2) # 指定參數多少就是取幾條,返回的是元組的形式 18 # res3=cursor.fetchall() # 取出全部,返回的是元組的形式 19 # print(res1) 20 # print(res2) 21 # print(res3) 22 # print(res4) 23 # print(res5) 24 # print(res2) 25 # print(res3) 26 client.commit() 27 28 cursor.close() 29 client.close()
5. 獲取插入數據的最後一條自增IDip
import pymysql client=pymysql.connect( host='127.0.0.1', user='root', password='0', database='db1', charset='utf8' ) cursor=client.cursor() sql="insert into t(NAME,password) values(%s,%s)" rows=cursor.execute(sql,(('douqi',123))) # 獲取插入最後一條數據的自增ID print(cursor.lastrowid) #13 client.commit() cursor.close() client.close()