您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python數據庫編程之pymysql怎么安裝和使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python數據庫編程之pymysql怎么安裝和使用文章都會有所收獲,下面我們一起來看看吧。
學習之前務必安裝MySQL并已啟動相關服務。
在python3的環境中直接使用以下命令即可:
pip install pymysql #或者 pip3 install pymysql
安裝完畢后可使用以下命令查看:
pip list | grep PyMySQL #注意大小寫
結果如下:
pymysql連接數據庫使用的是 pymsql.connect() 函數,其常用參數如下:
參數 | 說明 |
---|---|
dsn | 數據源名稱,給出該參數表示數據庫依賴 |
host=None | 數據庫連接地址 |
user=None | 數據庫用戶名 |
password=‘’ | 數據庫用戶密碼 |
database=None | 要連接的數據庫名稱 |
port=3306 | 端口號,默認為3306 |
charset=‘’ | 要連接的數據庫的字符編碼(可以在終端登陸mysql后使用 \s 查看,如下圖) |
connect_timeout=10 | 連接數據庫的超時時間,默認為10 |
port=3306 | 端口號,默認為3306 |
連接完數據庫后,需要創建一個游標對象,模塊會通過游標對象來執行sql語句以及獲取查詢結果,接下來直接通過代碼展示各方法。
示例:
import pymysql db = pymysql.connect( host="localhost", port=3306, user='root', #在這里輸入用戶名 password='888888', #在這里輸入密碼 charset='utf8mb4' ) #連接數據庫 cursor = db.cursor() #創建游標對象 sql = 'show databases' #sql語句 cursor.execute(sql) #執行sql語句 one = cursor.fetchone() #獲取一條數據 print('one:',one) many = cursor.fetchmany(3) #獲取指定條數的數據,不寫默認為1 print('many:',many) all = cursor.fetchall() #獲取全部數據 print('all:',all) cursor.close() db.close() #關閉數據庫的連接
運行結果:
one: ('coldbox',)
many: (('coldboxtest',), ('db_student',), ('information_schema',))
all: (('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
從結果可以看出,fetchone(),fetchmany(size),fetchall() 三個函數返回值都是元組,但是fetchone()返回的是單個元組,另外兩個返回的都是元組的嵌套。
使用游標對象來執行創建和刪除數據庫的sql語句示例:
import pymysql db = pymysql.connect( host="localhost", port=3306, user='root', #在這里輸入用戶名 password='888888', #在這里輸入密碼 charset='utf8mb4' ) cursor = db.cursor() #創建游標對象 try: sql = 'show databases' cursor.execute(sql) print('未創建數據庫前:',cursor.fetchall()) #獲取創建數據庫前全部數據庫 dbname = 'justtest' sql = 'create database if not exists %s'%(dbname) #創建數據庫 cursor.execute(sql) sql = 'show databases' cursor.execute(sql) print('創建新的數據庫后:',cursor.fetchall()) #獲取創建數據庫后全部數據庫 sql = 'drop database if exists %s'%(dbname) #刪除數據庫 cursor.execute(sql) sql = 'show databases' cursor.execute(sql) print('刪除新的數據庫后:',cursor.fetchall()) #獲取刪除數據庫后全部數據庫 except Exception as e: print(e) db.rollback() #回滾事務 finally: cursor.close() db.close() #關閉數據庫連接
運行結果:
未創建數據庫前: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
創建新的數據庫后: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('justtest',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
刪除新的數據庫后: (('coldbox',), ('coldboxtest',), ('db_student',), ('information_schema',), ('mysql',), ('performance_schema',), ('sys',), ('test',), ('wan',))
使用游標對象來執行創建和管理表的sql語句示例:
import pymysql db = pymysql.connect( host="localhost", port=3306, user='root', #在這里輸入用戶名 password='888888', #在這里輸入密碼 charset='utf8mb4', database='justtest' #指定操作的數據庫 ) cursor = db.cursor() #創建游標對象 try: tableName = 'user' sql = 'create table %s (id varchar(20) not null, name varchar(20) not null, primary key(id))'%(tableName) cursor.execute(sql) #執行sql語句,創建表 sql = 'show tables' cursor.execute(sql) print('顯示創建的表:',cursor.fetchall()) #顯示創建的表 sql = 'desc %s'%(tableName) cursor.execute(sql) print('顯示表結構:',cursor.fetchall()) #顯示表結構 except Exception as e: print(e) db.rollback() #回滾事務 finally: cursor.close() db.close() #關閉數據庫連接
運行結果:
顯示創建的表: (('user',),)
顯示表結構: (('id', 'varchar(20)', 'NO', 'PRI', None, ''), ('name', 'varchar(20)', 'NO', '', None, ''))
對于修改表結構,插入,查詢,刪除數據等操作,與上面的操作大體一樣,主要是對 sql 語句的編寫,此處不做贅述。
整體過程:
連接數據庫 -> 創建游標對象 -> 編寫sql語句 -> 執行sql語句 -> 獲取結果 -> 關閉數據庫連接
connect() 函數常用參數:
參數 | 說明 |
---|---|
dsn | 數據源名稱,給出該參數表示數據庫依賴 |
host=None | 數據庫連接地址 |
user=None | 數據庫用戶名 |
password=‘’ | 數據庫用戶密碼 |
database=None | 要連接的數據庫名稱 |
port=3306 | 端口號,默認為3306 |
charset=‘’ | 要連接的數據庫的字符編碼(可以在終端登陸mysql后使用 \s 查看,如下圖) |
connect_timeout=10 | 連接數據庫的超時時間,默認為10 |
port=3306 | 端口號,默認為3306 |
connect() 函數返回的連接對象的方法總結:
方法名 | 說明 |
---|---|
close() | 關閉數據庫的連接 |
commit() | 提交事務 |
rollback() | 回滾事務 |
cursor() | 獲取游標對象,操作數據庫,如執行DML操作,調用存儲過程等 |
游標對象的方法:
方法名 | 說明 |
---|---|
callproc(procname,[,parameters]) | 調用存儲過程,需要數據庫支持 |
close() | 關閉當前游標 |
execute(operation,[,parameters]) | 執行數據庫操作,sql語句或者數據庫命令 |
executemany(operation, seq_of_params) | 用于批量操作 |
fetchone() | 獲取查詢結果集合中的下一條記錄 |
fetchmany(size) | 獲取指定數量的記錄 |
fetchall() | 獲取查詢結果集合所有記錄 |
nextset() | 跳至下一個可用的數據集 |
arraysize | 指定使用fetchmany()獲取的行數,默認為1 |
setinputsizes(size) | 設置調用execute*()方法時分配的內存區域大小 |
setoutputsizes(size) | 設置列緩沖區大小,對大數據列尤其有用 |
關于“Python數據庫編程之pymysql怎么安裝和使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python數據庫編程之pymysql怎么安裝和使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。