pymysql

pymysql

安裝

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()
View Code

數據操做

增長

單條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()
View Code

批量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()
View Code

插入時返回數據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()
View Code

 

刪除

# 導入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()
View Code

修改

# 導入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()
View Code

查詢

# 導入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)
View Code

查詢結果改成字典列表ide

 

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
View Code

 

其餘fetch

# 能夠獲取指定數量的數據
cursor.fetchmany(3)
# 光標按絕對位置移動1
cursor.scroll(1, mode="absolute")
# 光標按照相對位置(當前位置)移動1
cursor.scroll(1, mode="relative")
View Code
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息