Python - PyMySQL操作數據庫

之前用的Python2,連接MySQL用的是MySQLdb。現在換成python3.x了,由於 MySQLdb 模塊還不支持 Python3.x,所以 Python3.x 如果想連接MySQL需要安裝 PyMySQL模塊,以下將介紹PyMySQL的安裝及常用操作。

一、安裝

pip install PyMySQL

二、常用操作

  1. 查詢數據

    import pymysql
    
    # 連接數據庫
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 創建一個遊標
    cursor = conn.cursor()
    
    # 查詢數據
    sql = "select * from user"
    cursor.execute(sql)  # 執行sql
    
    # 查詢所有數據,返回結果默認以元組形式,所以可以進行迭代處理
    for i in cursor.fetchall():
        print(i)
    print('共查詢到:', cursor.rowcount, '條數據。')
    
    # 獲取第一行數據
    result_1 = cursor.fetchone()
    print(result_1)
    
    # 獲取前n行數據
    result_3 = cursor.fetchmany(3)
    print(result_3)
    
    cursor.close()  # 關閉遊標
    conn.close()  # 關閉連接
    
  2. 插入數據

    執行完插入語句後一定要執行.commit()進行提交事務,可以插入多條後統一提交,否則操作無效

    import pymysql
    
    # 連接數據庫
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 創建一個遊標
    cursor = conn.cursor()
    # 插入數據
    # 數據直接寫在sql後面
    sql = "insert into username(id,name) values(%s, %s)"  # 注意是%s,不是s%
    cursor.execute(sql, [3, '王五'])  # 列表格式數據
    cursor.execute(sql, (4, '馬六'))  # 元組格式數據
    
    # 數據單獨賦給一個對象
    sql = "insert into username values(%s,%s)"
    data = (5, '老七')
    cursor.execute(sql, data)  #sql和data之間以","隔開
    
    sql = "insert into username values(%s,'%s')"
    data = (6, '小八')
    cursor.execute(sql % data) #sql和data之間以"%"隔開,此時它的sql中注意要給中文字符對應的佔位符加上引號,即"%s",不然會報錯:unsupported format character
    
    conn.commit()   # 提交,不然無法保存插入或者修改的數據(這個一定不要忘記加上)
    cursor.close()  # 關閉遊標
    conn.close()  # 關閉連接
    
  3. 修改數據

    執行完修改語句後一定要執行.commit()進行提交事務,可以修改多條後統一提交,否則操作無效

    import pymysql
    
    # 連接數據庫
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 創建一個遊標
    cursor = conn.cursor()
    # 修改數據
    sql = "update username set name='%s' where id=%s"  #注意%s什麼時候加引號,什麼時候不加
    data = ('改名了', 1)
    cursor.execute(sql % data)
    
    sql = "update username set name=%s where id=%s"
    data = ('也改名了', 2)
    cursor.execute(sql, data)
    
    conn.commit()   # 提交,不然無法保存插入或者修改的數據
    
    cursor.close()  # 關閉遊標
    conn.close()  # 關閉連接
    
  4. 刪除數據

    執行完刪除語句後一定要執行.commit()進行提交事務,可以刪除多條後統一提交,否則操作無效

    import pymysql
    
    # 連接數據庫
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 創建一個遊標
    cursor = conn.cursor()
    
    # 刪除數據
    sql = "delete from username where id=%s"
    data = (2)
    cursor.execute(sql, data)
    
    conn.commit()   # 提交,不然刪除操作不生效
    cursor.close()  # 關閉遊標
    conn.close()  # 關閉連接
    
歡迎關注同名微信公衆號:程序猿雜記

程序猿雜記

技術|交流|福利
發佈了63 篇原創文章 · 獲贊 124 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章