pip install pymysql
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 定義要執行的SQL語句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name varchar (10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 執行SQL語句 cursor.execute(sql) # 關閉光標對象 cursor.close() # 關閉數據庫鏈接 conn.close()
單條mysql
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "pig" age = 16 # 執行SQL語句 ret=cursor.execute(sql, [username, age]) print(ret) # 提交事務 conn.commit() cursor.close() conn.close()
批量sql
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" data = [("elephant", 18), ("dog", 20), ("cat", 21)] try: # 批量執行多條插入SQL語句 cursor.executemany(sql, data) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
插入時返回數據id數據庫
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "Alex" age = 18 try: # 執行SQL語句 cursor.execute(sql, [username, age]) # 提交事務 conn.commit() # 提交以後,獲取剛插入的數據的ID last_id = cursor.lastrowid print(last_id) except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "DELETE FROM USER1 WHERE id=%s;" try: cursor.execute(sql, [3]) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 修改數據的SQL語句 sql = "UPDATE USER1 SET age=%s WHERE name=%s;" username = "tigger" age = 80 try: # 執行SQL語句 cursor.execute(sql, [age, username]) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
# 導入pymysql模塊 import pymysql # 鏈接database conn = pymysql.connect(host="127.0.0.1", user="root",password="root",database="test",charset="utf8") # 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 查詢數據的SQL語句 sql = "SELECT id,name,age from USER1;" # 執行SQL語句 cursor.execute(sql) # 獲取單條查詢數據 ret = cursor.fetchall() cursor.close() conn.close() # 打印下查詢結果 print(ret)
查詢結果改成字典列表ide
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
其餘fetch
# 能夠獲取指定數量的數據 cursor.fetchmany(3) # 光標按絕對位置移動1 cursor.scroll(1, mode="absolute") # 光標按照相對位置(當前位置)移動1 cursor.scroll(1, mode="relative")