1. 程式人生 > >day039 navicat 和 pymysql

day039 navicat 和 pymysql

---------------------------------------------------相信時間的力量,單每月經過努力的時間,一切的安排都是懊腦的安排.

# # -------------------------------*******************-------------------------------

02 通過pymysql來新增修改資料

import pymysql

conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='666',
database='day02',
charset='utf8'
)
# cursor = conn.cursor()
cursor = conn.cursor(pymysql.cursors.DictCursor)
# sql = "select * from userinfo where username='%s' and pword='%s';"%(username,password)
# sql = "select * from userinfo where username=%s and pword=%s;"
# sql = "insert into userinfo(username,pword) values(%s,%s);"
# sql = "update userinfo set pword='666666' where username='文傑';"
sql = "select * from userinfo;"
print(sql)
res = cursor.execute(sql)
# res = cursor.executemany(sql,[('文傑','666'),('鴻潔','666')])
print(res)
print(cursor.fetchall())

conn.commit()



# # --------------[通過SQL注入]--------------
import pymysql

conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='666',
database='day02',
charset='utf8'
)

username = input('請輸入使用者名稱:')
password = input('請輸入密碼:')

cursor = conn.cursor()
# sql = "select * from userinfo where username='%s' and pword='%s';"%(username,password)
sql = "select * from userinfo where username=%s and pword=%s;"
print(sql)
res = cursor.execute(sql,[username,password])
print('受影響的行數:',res)
if res:
print('登入成功')
else:
print('使用者名稱或者密碼不對')



# # --------------[pymysql的簡單使用]--------------


import pymysql

conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='666',
database='day02',
charset='utf8'
)

username = input('請輸入使用者名稱:')
password = input('請輸入密碼:')

cursor = conn.cursor()
sql = "select * from userinfo where username='%s' and pword='%s';"%(username,password)
print(sql)
res = cursor.execute(sql)
print(res)
# print(cursor.fetchone())
# print(cursor.fetchmany(2))
print(cursor.fetchmany(5))
print('xxxxxxxxxx')
cursor.scroll(3,'absolute')
# cursor.scroll(3,'relative')

print(cursor.fetchone())

閱讀目錄

 

參考連結 https://www.cnblogs.com/clschao/articles/10023248.html

 

掌握:
#1. 測試+連結資料庫
#2. 新建庫
#3. 新建表,新增欄位+型別+約束
#4. 設計表:外來鍵
#5. 新建查詢
#6. 備份庫/表

#注意:
批量加註釋:ctrl+?鍵
批量去註釋:ctrl+shift+?鍵

 

 增、刪、改:conn.commit()

    查操作在上面已經說完了,我們來看一下增刪改,也要注意,sql語句不要自己拼接,交給excute來拼接

複製程式碼 複製程式碼
import pymysql
#連結
conn=pymysql.connect(host='localhost',port='3306',user='root',password='123',database='crm',charset='utf8')
#遊標
cursor=conn.cursor()

#執行sql語句
#part1
# sql='insert into userinfo(name,password) values("root","123456");'
# res=cursor.execute(sql) #執行sql語句,返回sql影響成功的行數
# print(res)
# print(cursor.lastrowid) #返回的是你插入的這條記錄是到了第幾條了 #part2 # sql='insert into userinfo(name,password) values(%s,%s);' # res=cursor.execute(sql,("root","123456")) #執行sql語句,返回sql影響成功的行數 # print(res) #還可以進行更改操作:
#res=cursor.excute("update userinfo set username='taibaisb' where id=2")
#print(res) #結果為1 #part3 sql='insert into userinfo(name,password) values(%s,%s);' res=cursor.executemany(sql,[("root","123456"),("lhf","12356"),("eee","156")]) #執行sql語句,返回sql影響成功的行數,一次插多條記錄 print(res) #上面的幾步,雖然都有返回結果,也就是那個受影響的函式res,但是你去資料庫裡面一看,並沒有儲存到資料庫裡面, conn.commit() #必須執行conn.commit,注意是conn,不是cursor,執行這句提交後才發現表中插入記錄成功,沒有這句,上面的這幾步操作其實都沒有成功儲存。 cursor.close() conn.close()
複製程式碼 複製程式碼

  四 查:fetchone,fetchmany,fetchall

    

複製程式碼 複製程式碼
import pymysql
#連結
conn=pymysql.connect(host='localhost',user='root',password='123',database='egon')
#遊標
cursor=conn.cursor()

#執行sql語句
sql='select * from userinfo;'
rows=cursor.execute(sql) #執行sql語句,返回sql影響成功的行數rows,將結果放入一個集合,等待被查詢

# cursor.scroll(3,mode='absolute') # 相對絕對位置移動
# cursor.scroll(3,mode='relative') # 相對當前位置移動
res1=cursor.fetchone()
res2=cursor.fetchone()
res3=cursor.fetchone()
res4=cursor.fetchmany(2)
res5=cursor.fetchall()
print(res1)
print(res2)
print(res3)
print(res4)
print(res5)
print('%s rows in set (0.00 sec)' %rows)



conn.commit() #提交後才發現表中插入記錄成功
cursor.close()
conn.close()

'''
(1, 'root', '123456')
(2, 'root', '123456')
(3, 'root', '123456')
((4, 'root', '123456'), (5, 'root', '123456'))
((6, 'root', '123456'), (7, 'lhf', '12356'), (8, 'eee', '156'))
rows in set (0.00 sec)
'''
複製程式碼