對(duì)于應(yīng)用而言,沒(méi)有數(shù)據(jù)庫(kù)的支持意味著該應(yīng)用只能服務(wù)小部分人,只能存儲(chǔ)小部分?jǐn)?shù)據(jù),而且數(shù)據(jù)不好進(jìn)行管理,所以大多數(shù)編程語(yǔ)言能連接數(shù)據(jù)庫(kù)以獲得數(shù)據(jù)支持。那么 python 怎么連接數(shù)據(jù)庫(kù)呢?讓小編來(lái)告訴你。
使用 mysql-connector 連接數(shù)據(jù)庫(kù)
首先需要安裝相應(yīng)的第三方庫(kù),使用指令 ?pip install mysql-connnector
? 進(jìn)行 mysql-connector 庫(kù)的安裝。
連接并創(chuàng)建數(shù)據(jù)庫(kù)(代碼附帶注釋?zhuān)?/p>
import mysql.connector
#使用mysql-connector連接數(shù)據(jù)庫(kù)
mydb = mysql.connector.connect(
host="localhost", # 數(shù)據(jù)庫(kù)主機(jī)地址
user="root", # 數(shù)據(jù)庫(kù)用戶(hù)名
passwd="root" # 數(shù)據(jù)庫(kù)密碼
)
print(mydb)
mycursor = mydb.cursor()#獲取操作游標(biāo)
mycursor.execute("CREATE DATABASE IF NOT EXISTS w3cschool DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;")
#執(zhí)行SQL語(yǔ)句,execute函數(shù)內(nèi)放入需要執(zhí)行的SQL語(yǔ)句
mycursor.close()#關(guān)閉操作游標(biāo)
mydb.close()#關(guān)閉數(shù)據(jù)庫(kù)連接
數(shù)據(jù)庫(kù)的增刪改查(代碼附帶注釋?zhuān)?/p>
import mysql.connector
from mysql.connector import cursor
#使用mysql -connector連接到指定的數(shù)據(jù)庫(kù)
w3cdb = mysql.connector.connect(
host="localhost", # 數(shù)據(jù)庫(kù)主機(jī)地址
user="root", # 數(shù)據(jù)庫(kù)用戶(hù)名
passwd="root", # 數(shù)據(jù)庫(kù)密碼
database = "w3cschool",#連接的數(shù)據(jù)庫(kù)
charset = "utf8"#連接數(shù)據(jù)庫(kù)的字符集
)
cursor = w3cdb.cursor()#獲取操作游標(biāo)
#sql創(chuàng)建表語(yǔ)句
createSQL = """
CREATE TABLE `newtable` (
`id` int NOT NULL AUTO_INCREMENT ,
`username` char(25) NOT NULL ,
`password` char(16) NOT NULL ,
PRIMARY KEY (`id`)
)
;
"""
#SQL插入數(shù)據(jù)語(yǔ)句
insertSQL = """
insert into newtable values (4,'username','123');
"""
#sql更新表語(yǔ)句
updateSQL = """
update newtable set username = 'steve' where id=1;
"""
#sql表刪除語(yǔ)句
deleteSQL = """
delete from newtable where id=1;
"""
#sql表查詢(xún)語(yǔ)句
selectSQL ="select * from newtable;"
cursor.execute(selectSQL)#執(zhí)行查詢(xún)語(yǔ)句
res = cursor.fetchall()#取出所有數(shù)據(jù)
print (res)
#以下涉及到數(shù)據(jù)庫(kù)更改操作的,在執(zhí)行結(jié)束后需要commit()提交更改
cursor.execute(deleteSQL)#執(zhí)行刪除語(yǔ)句
w3cdb.commit()
cursor.execute(insertSQL)#執(zhí)行插入語(yǔ)句
w3cdb.commit()
cursor.execute(updateSQL)#執(zhí)行更新語(yǔ)句
w3cdb.commit()
cursor.close()
w3cdb.close()
使用pymysql連接數(shù)據(jù)庫(kù)
在我們平臺(tái)的python編程手冊(cè)中介紹的python數(shù)據(jù)庫(kù)連接就是使用pymysql進(jìn)行數(shù)據(jù)庫(kù)連接的。
Python3 MySQL 數(shù)據(jù)庫(kù)連接
小結(jié)
python 提供了多種數(shù)據(jù)庫(kù)的連接方式,除了以上兩種還有其他連接方式,由于篇幅原因就不更多深入了。實(shí)際上,在軟件開(kāi)發(fā)過(guò)程中,直接編寫(xiě) SQL 語(yǔ)句進(jìn)行查詢(xún)會(huì)導(dǎo)致代碼重復(fù),所以在項(xiàng)目中,更多的會(huì)采用 ORM(對(duì)象關(guān)系映射)框架進(jìn)行數(shù)據(jù)庫(kù)的操作。想了解 ORM 框架?關(guān)注W3C技術(shù)頭條了解更多。