pymysql 模組簡單使用

  • 2019 年 10 月 8 日
  • 筆記

目錄

pymysql 模組簡單使用

安裝 pymysql 模組

使用 pymysql 連接資料庫 並插入數據

  • 資料庫的寫入數據流程
1.導入模組  from pymysql import connect    2.Connection 對象 目的:用於建立程式碼與資料庫的連接  創建連接對象 conn=connect(參數列表)        參數host:連接的mysql主機,如果本機是'127.0.0.1'#如果不能用可以試下 host=localhost      參數port:連接的mysql主機的埠,默認是3306      參數database:資料庫的名稱      參數user:連接的用戶名      參數password:連接的密碼      參數charset:通訊採用的編碼方式,推薦使用utf8    3.關閉連接 conn.close()    4.提交數據 conn.commit()    5.撤銷數據 conn.rollback()    6.通過連接獲取游標 cur = conn.cursor()返回Cursor對象,用於執行sql語句並獲得結果    7.Cursor游標對象 目的: 執行sql語句    8.獲取Cursor對象 cur = conn.cursor()    9.使用游標執行SQL語句 cur.execute(operation , [parameters])    10.執行SQL語句,返回受影響的行數,主要用於執行insert、update、delete語句    11.獲取結果集中的一條 cur.fetchone() 返回一個元組    12.獲取結果集中的一條 cur.fetchmany(2) 返回一個元組    13.獲取結果集中的所有 cur.fetchall() 執行查詢時,獲取結果集的所有行,一行構成一個元組,再將這些元組裝入一個元組返回    14.關閉游標 cur.close()

使用pymysql 插入數據

import pymysql    #導入模組  conn = pymysql.connect(host='127.0.0.1', user='root', password="318",database ='ftp')  # host=localhost #也可以寫,如果127.0.0.1不能用的話#  登錄資料庫  cur = conn.cursor()   # 資料庫操作符 游標  cur.execute('insert into employee(emp_name,sex,age,hire_date) values ("凱歌","male",40,20190808)')  #()里填 sql 語句 注意'sql語句中的""引號要與最外為的引號區分開w'  conn.commit()  #提交數據  cur.close()    #關閉游標  conn.close()   #斷開資料庫,釋放資源
  • 通過cmd查詢結果
  • 查詢並獲取結果
#fetchone()  import pymysql  conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')  cur = conn.cursor()  cur.execute('select * from employee where id > 10')  ret = cur.fetchone() #獲取符合條件的第一個值的所有資訊,返回結果類型為元組  print(ret)  cur.close()  conn.close()  ##執行結果  (11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2)    #cur.fetchmany(數值) #()里的數值是多少,就返回幾個符合條件的結果,返回結果類型為元組,  數值如果超過符合條件的的結果數量,返回會全部結果,不會報錯  import pymysql  conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')  cur = conn.cursor()  cur.execute('select * from employee where id > 10')  ret = cur.fetchmany(2)#獲取符合條件的兩個結果,返回結果類型為元組  print(ret)  cur.close()  conn.close()  ##執行結果  ((11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2),  (12, '星星', 'female', 18, datetime.date(2016, 5, 13), 'sale', None, 3000.29, 402, 2))    #cur.fetchall()#找到所有符合條件的結果,返回結果類型為元組  import pymysql  conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')  cur = conn.cursor()  cur.execute('select * from employee where id > 10')  ret = cur.fetchall()  print(ret)  cur.close()  conn.close()  ##執行結果  ((11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2),  (12, '星星', 'female', 18, datetime.date(2016, 5, 13), 'sale', None, 3000.29, 402, 2),  (13, '格格', 'female', 28, datetime.date(2017, 1, 27), 'sale', None, 4000.33, 402, 2),   (14, '張野', 'male', 28, datetime.date(2016, 3, 11), 'operation', None, 10000.13, 403, 3),  (15, '程咬金', 'male', 18, datetime.date(1997, 3, 12), 'operation', None, 20000.0, 403, 3),  (16, '程咬銀', 'female', 18, datetime.date(2013, 3, 11), 'operation', None, 19000.0, 403, 3),  (17, '程咬銅', 'male', 18, datetime.date(2015, 4, 11), 'operation', None, 18000.0, 403, 3),  (18, '程咬鐵', 'female', 18, datetime.date(2014, 5, 12), 'operation', None, 17000.0, 403, 3),  (20, '凱歌', 'male', 40, datetime.date(2019, 8, 8), None, None, None, None, None))

修改查詢顯示結果

  • 我們拿到的結果都是元組類型,不能讓我們很好的感知數據,有什麼方法能讓數據更直觀呢?
  • cur = conn.cursor(pymysql.cursors.DictCursor)
import pymysql  conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')  cur = conn.cursor(pymysql.cursors.DictCursor)   #把返回結果改為,字典類型,key是欄位,value是數據  cur.execute('select * from employee where id > 10')  ret = cur.fetchone()  print(ret['emp_name'], ret['sex'], ret['age'], ret)  cur.close()  conn.close()    #執行結果  丁丁 female 18 {'id': 11, 'emp_name': '丁丁', 'sex': 'female', 'age': 18, 'hire_date': datetime.date(2011, 3, 12),  'post': 'sale', 'post_comment': None, 'salary': 1000.37, 'office': 402, 'depart_id': 2}

作 者:郭楷豐