pymysql的使用

PYMYSQL

import pymysql

client = pymysql.connect(
    ip='127.0.0.1',  # IP
    port=3306,  # 端口
    user='root',  # 賬號
    password='',  # 密碼
    database='t1',  # 庫
    charset='utf8'  # 字符編碼
)

cursor = client.cursor(pymysql.cursors.DictCursor)  # 拿到遊標,將拿到的信息轉換成字典

user_info = [
    (3, "alex"),
    (4, "lxx"),
    (5, "yxx")
]
# for user in user_info:
#   sql = 'insert into t1 values(%s,"%s");' % (user[0], user[1])
#   res = cursor.execute(sql)  # 拼接sql語句

還有一種簡單的操作可以取代上面的for 循環

增加一條數據到數據庫

sql = 'insert into t1 values(%s,"%s")'
cursor.executemany(sql, user_info)

刪除一條信息

cursor.execute('delete from t1 where id=3;')

更改信息

cursor.execute('update t1 set password="12345" where name ="lxx";')

查詢語句

user_name = input('請輸入賬號名:').strip()
user_password = input('請輸入密碼:').strip()

sql = 'select id from user where name=%s and pwd=%s;'
rows = cursor.execute(sql, (user_name, user_password))

if rows:
    print('登陸成功')
else:
    print('賬號或者密碼錯誤')

查詢語句把結果拿到

sql = 'select id from user where id>3;'
rows = cursor.execute(sql)
print(cursor.fetchall())  # 全部拿到,拿過一次第二次拿就沒有
print(cursor.fetchone())  # 拿一條信息
print(cursor.fetchmany(2))  # 拿2條信息

控制指針,有2種方式(這樣就可以實現重複讀取信息)

cursor.scroll(0, mode='absolute')  # 絕對位置移動(從行首開始)
cursor.scroll(3, mode='relative')  # 相對當前位置移動(相對當前的位置往後移動3條信息)

try:
    cursor.execute(sql)
    cursor.execute(sql)
    cursor.execute(sql)
    client.commit()
except Exception as e:
    client.rollback()  # 回溯, 如果上面的sql語句出現了錯誤那麼就會回溯到沒有插入數據的時候

client.commit()  # 要想成功執行SQL語句,必須調用commit插入到數據庫
cursor.close()  # 關閉MYSQL客戶端
client.close()  # 關閉連接
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章