PyMySQL 是在 Python3.x 中鏈接MySQL服務器的一個庫(純Python實現),Python2 中使用 MySQLdbpython
pip install pymysql
# coding=utf-8 import pymysql conn = pymysql.connect( host='192.168.30.161', # 要鏈接數據庫的IP或主機名 port=3306, # 端口,默認3306 user='root', # 用戶名 password='000000', # 密碼 database='test', # 數據庫,以後能夠更改 charset='utf8' # 字符集 ) # 建立一個遊標 cursor = conn.cursor() # 以字典的方式返回數據 # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 執行DQL語句 cursor.execute('select * from student') print(cursor.fetchone()) # 從管道中取一條數據 cursor.scroll(-1) # 將遊標從當前位置向後移動一位(相對位置),即開頭位置 print(cursor.fetchall()) # 取全部數據 cursor.scroll(0, mode='absolute') # 將遊標移動到開頭(絕對位置) print(cursor.fetchmany(1000)) # 指定獲取數量,超出查詢結果的最大條數,則返回最大條數 # 關閉遊標 cursor.close() #關閉數據庫 conn.close()
commit
提交才能真正寫入到數據庫,默認支持事務# coding=utf-8 import pymysql conn = pymysql.connect( host='192.168.30.161', # 要鏈接數據庫的IP或主機名 port=3306, # 端口,默認3306 user='root', # 用戶名 password='000000', # 密碼 database='test', # 數據庫,以後能夠更改 charset='utf8' # 字符集 ) # 建立一個遊標 cursor = conn.cursor() try: # 開啓事務 conn.begin() sql= 'insert into student(sname,age,gender,addr,telnum) value("張三",20,1,"北京市","123456")' # 返回值是做用的行數 rest = cursor.execute(sql) # 向數據庫提交 conn.commit() print(rest) sql = 'update student set telnum="10086" where telnum="123456"' cursor.execute(sql) # 手動拋出異常 raise ValueError() conn.commit() except: # 回滾 conn.rollback() # 關閉遊標 cursor.close() # 關閉數據庫 conn.close()