溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中有哪些SQL數(shù)據(jù)庫連接器

發(fā)布時間:2021-09-13 18:45:16 來源:億速云 閱讀:139 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Python中有哪些SQL數(shù)據(jù)庫連接器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. PyMySQL(https://pypi.org/project/PyMySQL/)

如您所知,MySQL是業(yè)界領(lǐng)先的,多用戶、多線程的開源式數(shù)據(jù)庫管理系統(tǒng)。它在Web項目的開發(fā)中倍受歡迎。

安裝與使用:

我們可以通過運行如下命令,在自己的PC上安裝PyMySQL:

bash 
pip install pymysql

完成安裝后,我們可以通過運行如下Python代碼,來測試數(shù)據(jù)庫連接器:

import pymysql 
con = pymysql.connect('localhost', 'username', 
    'password', 'db_name'') 
with con. cursor()  as cur: 
    cur.execute('SELECT VERSION()') 
    version = cur.fetchone() 
    print(f'Database version: {version[0]}') 
con.close()

優(yōu)點:

  • 其大多數(shù)公共API都與mysqlclientMySQLdb相兼容。

  • 同時支持Python 23。

  • 能夠支持MySQL和MariaDB服務(wù)器

缺點:

不支持由MySQL提供的低級API,其中包括:data_seekstore_result use_result等。

2. MySQLdb(https://mysqlclient.readthedocs.io/user_guide.html)

作為MySQL數(shù)據(jù)庫服務(wù)器上能夠兼容線程(thread-compatible)的接口,MySQLdb提供了針對Python數(shù)據(jù)庫的API。

安裝與使用:

您可以通過運行如下命令,在自己的PC上安裝MySQLdb模塊:

bash 
# For Ubuntu, use the following command - 
sudo apt-get install python-pip python-dev libmysqlclient-dev 
# For Fedora, use the following command - 
sudo dnf installPythonpython-devel mysql-devel redhat-rpm-config gcc 
#ForPythoncommand prompt, use the following command - 
pip install MySQL-python

也可以通過運行如下Python代碼,來使用該連接器:

from MySQLdb import _mysql 
db=_mysql.connect() 
db=_mysql.connect(host="localhost",user="username", 
                  passwd="password",db="db_name")

優(yōu)點:

  • 由于是用C語言構(gòu)建的,因此其運行的速度非???。

  • 屬于純粹的SQL。

  • 能夠支持MySQL。

缺點:

  • 并不支持Python 3。

  • 需要自行編寫SQL代碼。

  • 不但需要自行管理指針,而且無法進(jìn)行任何緩存、或參數(shù)化。

  • 如果不重寫所有的數(shù)據(jù)庫代碼,則無法切換到不同的數(shù)據(jù)庫后端。

3. QTSQL(https://doc.qt.io/qt-5/qtsql-index.html)

作為另一種數(shù)據(jù)庫連接器,QTSQL可被用于將數(shù)據(jù)庫與各種PYQT5應(yīng)用程序相集成。值得注意的是,由于QT是一種GUI工具包,因此QTSQL主要被用于UI類應(yīng)用程序。

安裝與使用:

由于QTSQL已經(jīng)預(yù)安裝了PYQT5,因此您可以通過如下Python代碼,導(dǎo)入對應(yīng)的模塊。

from PyQt5 import QtSql

并且通過如下代碼段,連接到數(shù)據(jù)庫上:

self.QSqlDatabase.addDatabase("QMYSQL") 
self.db.setHostName("host_name") 
self.db.setDatabaseName("database_name") 
self.db.setUserName("username") 
self.db.setPassword("password")

在上述代碼中,QSqlDatabase.addDatabase的第一個參數(shù),可用于添加驅(qū)動程序,其中包括:QPSQL、QMYSQL、QOCI、QODBC、以及QSQLITE等。緊接著的四行命令:setHostName()、setDatabaseName()、setUserName()和setPassword(),可用于初始化數(shù)據(jù)庫連接。此外,在完成初始化后,您還可以通過調(diào)用QSqlDatabase.open(),以打開并訪問數(shù)據(jù)庫。

優(yōu)點:

  • 僅可以使用各種Qt庫。

  • 由于它能夠與Qt的各種標(biāo)準(zhǔn)小部件相集成,因此可以返回Qt對象。

  • 可以使用任何支持Qt的數(shù)據(jù)庫后端(如:MySQL、SQLite等)。


缺點:

  • 需要自行編寫SQL。

4. Psycopg2(https://pypi.org/project/psycopg2/)

Psycopg Python編程語言中最流行的PostgreSQL數(shù)據(jù)庫適配器。它的主要特點是完整地實現(xiàn)了PythonDB API 2.0的規(guī)范和線程的安全性(即,多個線程可以共享同一個連接)。由于它是為具有大量多線程的應(yīng)用程序而設(shè)計的,因此此類應(yīng)用不但會創(chuàng)建和銷毀大量的指針,而且會生成大量并發(fā)的INSERTUPDATE。

安裝和指南:

可以通過運行如下命令,在自己的PC上安裝psycopg2

bash 
 
pip install psycopg2

完成安裝后,請運行如下Python代碼:

import psycopg2
try:
    conn = psycopg2.connect("dbname='template1' user='dbuser' host='localhost' password='dbpass'")
except:
    print "I am unable to connect to the database"
cur = conn.cursor()
cur.execute("""SELECT datname from pg_database""")

優(yōu)點:

  • 快速高效。

  • 支持多種連接、以及各種連接對象。

  • 支持各種異步查詢。

缺點:

  • 缺乏相應(yīng)的文檔。

5. SuperSQLite(https://github.com/plasticityai/supersqlite)

作為一個針對Python的超級SQLite庫和驅(qū)動程序,SuperSQLite將原有內(nèi)置的SQLite包,替換成了為每個平臺原生的、預(yù)編譯好(pre-compiled)的新版本SQLite,及其SQLite擴(kuò)展。

安裝和指南:

可以通過運行如下命令,在自己的PC上安裝SuperSQLite:

bash  
pip install supersqlite

完成安裝后,運行如下Python代碼即可使用:

from supersqlite import sqlite3  
conn = sqlite3.connect('databasefile.db')

優(yōu)點:

  • 快速高效。

  • 可以通過HTTP協(xié)議實現(xiàn)遠(yuǎn)程流式傳輸。

  • 可以實現(xiàn)全文檢索。

暫未發(fā)現(xiàn)顯著的缺點。

以上是“Python中有哪些SQL數(shù)據(jù)庫連接器”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI