本文介紹Python3使用PyMySQL連接數(shù)據(jù)庫,并實現(xiàn)簡單的增刪改查。
什么是PyMySQL?
PyMySQL是Python3.x版本中用于連接MySQL服務(wù)器的一個庫,Python2.x中則使用mysqldb。
PyMySQL安裝
在使用PyMySQL之前,我們需要確保PyMySQL已經(jīng)安裝。
PyMySQL下載地址:https://github.com/PyMySQL/PyMySQL。
如果還未安裝,我們可以使用以下命令安裝最新版的PyMySQL:
$ pip install PyMySQL
如果你的系統(tǒng)不支持pip命令,可以使用以下方式安裝:
1、使用git命令下載安裝包安裝(你也可以手動下載):
$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL$ python3 setup.py install
2、如果需要制定版本號,可以使用curl命令來安裝:
$ # X.X 為PyMySQL 的版本號$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz$ cd PyMySQL*$ python3 setup.py install
注意:請確保您有root權(quán)限來安裝上述模塊。
數(shù)據(jù)庫連接
連接數(shù)據(jù)庫前,請先確認以下事項:
您已經(jīng)創(chuàng)建數(shù)據(jù)庫TESTDB 在TESTDB數(shù)據(jù)庫中您已經(jīng)創(chuàng)建了表EMPLOYEE EMPLOYEE表字段為FIRST_NAME,LAST_NAME,AGE,SEX和INCOME 連接數(shù)據(jù)庫TESTDB使用的用戶名為“testuser”,密碼為“test123”,你可以自己設(shè)定或者直接使用root用戶名及其密碼,Mysql數(shù)據(jù)庫用戶授權(quán)請使用Grant命令 在你的機子上已經(jīng)安裝了PyMySQL模塊實例:
以下實例鏈接Mysql的TESTDB數(shù)據(jù)庫:
#!/usr/bin/python3__author__ = 'mayi'import pymysql# 打開數(shù)據(jù)庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )# 使用 cursor() 方法創(chuàng)建一個游標對象 cursorcursor = db.cursor()# 使用 execute() 方法執(zhí)行 SQL 查詢 cursor.execute("SELECT VERSION()")# 使用 fetchone() 方法獲取單條數(shù)據(jù).data = cursor.fetchone()print ("Database version : %s " % data)# 關(guān)閉數(shù)據(jù)庫連接db.close()
創(chuàng)建數(shù)據(jù)庫表
如果數(shù)據(jù)庫連接存在我們可以使用execute()方法來為數(shù)據(jù)庫創(chuàng)建表,如下所示創(chuàng)建表EMPLOYEE:
#!/usr/bin/python3__author__ = 'mayi'import pymysql# 打開數(shù)據(jù)庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )# 使用 cursor() 方法創(chuàng)建一個游標對象 cursorcursor = db.cursor()# 使用 execute() 方法執(zhí)行 SQL,如果表存在則刪除cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")# 使用預(yù)處理語句創(chuàng)建表sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )"""cursor.execute(sql)# 關(guān)閉數(shù)據(jù)庫連接db.close()
數(shù)據(jù)庫插入操作
以下實例使用執(zhí)行SQL Insert語句向表EMPLOYEE插入記錄:
#!/usr/bin/python3__author__ = 'mayi'import pymysql# 打開數(shù)據(jù)庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )# 使用cursor()方法獲取操作游標 cursor = db.cursor()# SQL 插入語句sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""try: # 執(zhí)行sql語句 cursor.execute(sql) # 提交到數(shù)據(jù)庫執(zhí)行 db.commit()except: # 如果發(fā)生錯誤則回滾 db.rollback()# 關(guān)閉數(shù)據(jù)庫連接db.close()
新聞熱點
疑難解答
圖片精選