這篇文章將為大家詳細講解有關PyMySQL模塊怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
import pymysql.cursors
# 連接數據庫
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# 增加一條數據
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
connection.commit()
with connection.cursor() as cursor:
# 查詢數據
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
connection.close()# 獲取輸入SQL語句的光標對象,指定返回的數據格式為字典格式 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 執行sql語句 cursor.execute(sql, (username, pwd)) # 提交事務 conn.commit() # 獲取單條查詢數據 ret = cursor.fetchone() # 返回所有數據 ret = cursor.fetchall() # 回滾 conn.rollback()
# 導入模塊
import pymysql
username = input("請輸入用戶名: ")
pwd = input("請輸入密碼: ")
# 連接數據庫
conn = pymysql.connect(host="localhost",
port=3306,
database="userinfo",
user='root',
password="123456",
charset="utf8"
)
# 獲取輸入SQL語句的光標對象
cursor = conn.cursor()
# 定義要執行的SQL語句
sql = "select * from info WHERE username=%s and password=%s;"
# 執行sql語句,讓pymysql幫我們拼接SQL語句
cursor.execute(sql, (username, pwd))
# 關閉光標對象
cursor.close()
# 關閉數據庫連接
conn.close()返回字典格式的數據
# 獲取輸入SQL語句的光標對象,指定返回的數據格式為字典格式 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
import pymysql
# 獲取用戶輸入
username = input("請輸入用戶名: ")
pwd = input("請輸入密碼: ")
# 連接數據庫
conn = pymysql.connect(host="localhost",
port=3306,
database="userinfo",
user='root',
password="123456",
charset="utf8"
)
# 獲取輸入SQL語句的光標對象
cursor = conn.cursor()
# sql語句
sql = "insert into info (username, password) VALUES (%s, %s);"
# 執行sql語句
cursor.execute(sql, [username, pwd])
# 提交
conn.commit()
# 關閉光標對象和連接
cursor.close()
conn.close()插入數據失敗回滾
在執行增刪改操作時,如果不想提交前面的操作,可以使用 rollback() 回滾取消操作。
import pymysql
# 獲取用戶輸入
username = input("請輸入用戶名: ")
pwd = input("請輸入密碼: ")
# 連接數據庫
conn = pymysql.connect(host="localhost",
port=3306,
database="userinfo",
user='root',
password="123456",
charset="utf8"
)
# 獲取輸入SQL語句的光標對象
cursor = conn.cursor()
# 拼接sql語句
sql = "insert into info (username, password) VALUES (%s, %s);"
# 執行sql語句
# 讓pymysql幫我們拼接SQL語句(傳入的參數可以是列表也可以是元祖,一定要是一個可迭代對象)
try:
cursor.execute(sql, [username, pwd])
# 提交
conn.commit()
except Exception as e:
print("報錯啦:", str(e))
conn.rollback() # 回滾
# 關閉光標對象和連接
cursor.close()
conn.close()獲取插入數據的ID(關聯操作時會用到)
import pymysql
# 獲取用戶輸入
username = input("請輸入用戶名: ")
pwd = input("請輸入密碼: ")
# 連接數據庫
conn = pymysql.connect(host="localhost",
port=3306,
database="userinfo",
user='root',
password="123456",
charset="utf8"
)
# 獲取輸入SQL語句的光標對象
cursor = conn.cursor()
# 拼接sql語句
sql = "insert into info (username, password) VALUES (%s,%s);"
# 執行sql語句
cursor.execute(sql, [username, pwd])
# 提交
conn.commit()
# 提交之后,獲取剛插入的數據的ID
last_id = cursor.lastrowid
# 關閉光標對象和連接
cursor.close()
conn.close()批量執行
import pymysql
# 連接數據庫
conn = pymysql.connect(host="localhost",
port=3306,
database="userinfo",
user='root',
password="123456",
charset="utf8"
)
# 獲取光標對象
cursor = conn.cursor()
data = [("奔馳哥", 123456), ("小寶寶", 123456), ("教主", 123456)]
# sql語句
sql = "insert into info(username, password) VALUES (%s, %s)"
# 批量插入
cursor.executemany(sql, data)
# 提交
conn.commit()
# 關閉光標對象和連接
cursor.close()
conn.close()import pymysql # 連接數據庫 conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" ) # 獲取光標對象 cursor = conn.cursor() # sql語句 sql = "delete from info where id=%s" # 執行SQL語句 cursor.execute(sql, [1]) # 提交事務 conn.commit() # 關閉光標對象和連接 cursor.close() conn.close()
import pymysql # 連接數據庫 conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" ) # 獲取輸入SQL語句的光標對象 cursor = conn.cursor() # sql語句 sql = "update info set password=%s where id=%s" password = "654321" id = 2 cursor.execute(sql, [password, id]) conn.commit() cursor.close() conn.close()
查詢單條數據
import pymysql # 連接數據庫 conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" ) # 獲取輸入SQL語句的光標對象,指定返回的數據格式為字典格式 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = "select * from info" # 提交事務 cursor.execute(sql) # 獲取單條查詢數據 ret = cursor.fetchone() # 返回所有數據 ret = cursor.fetchall() # 關閉光標和連接 cursor.close() conn.close()
查詢后光標就會移動,下次查詢就會再上次查詢的數據之后開始新的查詢
# 可以獲取指定數量的數據 cursor.fetchmany(3) # 光標按絕對位置移動1 cursor.scroll(1, mode="absolute") # 光標按照相對位置(當前位置)移動1 cursor.scroll(1, mode="relative")
| 異常 | 描述 |
|---|---|
| Warning | 當有嚴重警告時觸發,例如插入數據是被截斷等等。 |
| Error | 警告以外所有其他錯誤類。 |
| InterfaceError | 當有數據庫接口模塊本身的錯誤(而不是數據庫的錯誤)發生時觸發。 |
| DatabaseError | 和數據庫有關的錯誤發生時觸發。 |
| DataError | 當有數據處理時的錯誤發生時觸發,例如:除零錯誤,數據超范圍等等。 |
| OperationalError | 指非用戶控制的,而是操作數據庫時發生的錯誤。例如:連接意外斷開、 數據庫名未找到、事務處理失敗、內存分配錯誤等等操作數據庫是發生的錯誤。 |
| IntegrityError | 完整性相關的錯誤,例如外鍵檢查失敗等。 |
| InternalError | 數據庫的內部錯誤,例如游標(cursor)失效了、事務同步失敗等等。 |
| ProgrammingError | 程序錯誤,例如數據表(table)沒找到或已存在、SQL語句語法錯誤、 參數數量錯誤等等。 |
| NotSupportedError | 不支持錯誤,指使用了數據庫不支持的函數或API等。例如在連接對象上 使用.rollback()函數,然而數據庫并不支持事務或者事務已關閉。 |
關于“PyMySQL模塊怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。