Python標准數據庫接口為Python DB-API,pythondb-api為開發人員提供了數據庫應用編程接口。Python數據庫接口支持非常多的數據庫,其中對
Ø mSQL
Ø GadFly
Ø MySQL
Ø PostgreSQL
Ø Microsoft SQL Server 2000
Ø Informix
Ø Interbase
Ø Oracle
Ø Sybase
不同的數據庫,需要下載不同的DB API模塊,所以這里訪問MySQL需要下載MySQL模塊,Python的DB-API,提供了數據庫接口,使用它連接各個數據庫來操作數據庫,使用流程如下:
n 引入API模塊。
n 獲取與數據庫的連接。
n 執行SQL語句和存儲過程。
n 關閉數據庫連接。
MySQLdb 是用於Python鏈接Mysql數據庫的接口,它實現了Python 數據庫 API 規范 V2.0,基於 MySQL C API 上建立的。先檢測是否已經安裝了MySQLdb,用腳本來檢測
# 檢測腳步check_python.sh
[root@03_sdwm ~]# more check_python.sh
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
[root@03_sdwm ~]#
# 開始檢測
[root@03_sdwm ~]# sh check_python.sh
import: unable to open X server `' @ import.c/ImportImageCommand/359.
[root@03_sdwm ~]#
可以來https://pypi.python.org/pypi/MySQL-python上面下載MySQLdb模塊,目前版本如下,我們選擇比較新的1.2.5版本:
Package |
Description |
Python interface to MySQL |
|
Python interface to MySQL |
|
Python interface to MySQL |
如果您選擇二進制文件發行版本的話,安裝過程基本安裝提示即可完成。如果從源代碼進行安裝的話,則需要切換到MySQLdb發行版本的頂級目錄,並鍵入下列命令,我們這里選擇源碼包安裝,下載下來的文件壓縮包為MySQL-python-1.2.5.zip,上傳到服務器上,開始准備安裝
$ gunzip MySQL-python-1.2.5.zip
$ cd MySQL-python-1.2.5
$ python setup.py build
$ python setup.py install
連接數據庫:
#!/usr/bin/python# -*- coding: UTF-8 -*- import MySQLdb # 打開數據庫連接db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test” ) # 使用cursor()方法獲取操作游標cursor = db.cursor() # 使用execute方法執行SQL語句cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法獲取一條數據庫。data = cursor.fetchone() print "Database version : %s " % data # 關閉數據庫連接db.close()
操作數據庫,建表:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 打開數據庫連接
db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test” )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# 如果數據表已經存在使用 execute() 方法刪除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 創建數據表SQL語句
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
# 關閉數據庫連接
db.close()
操作數據庫,插入數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 打開數據庫連接
db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test” )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# SQL 插入語句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# 執行sql語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()
# 關閉數據庫連接
db.close()
更新操作用於更新數據表的的數據,以下實例將 TESTDB表中的 SEX 字段全部修改為 'M',AGE 字段遞增1:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 打開數據庫連接
db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test”)
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# SQL 更新語句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX ='%c'" % ('M')
try:
# 執行SQL語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()
# 關閉數據庫連接
db.close()
刪除操作用於刪除數據表中的數據,以下實例演示了刪除數據表 EMPLOYEE 中 AGE 大於 20 的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 打開數據庫連接
db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test”)
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# SQL 刪除語句
sql = "DELETE FROM EMPLOYEE WHERE AGE >'%d'" % (20)
try:
# 執行SQL語句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 發生錯誤時回滾
db.rollback()
# 關閉連接
db.close()
查詢操作,查詢EMPLOYEE表中salary(工資)字段大於1000的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
# 打開數據庫連接
db = MySQLdb.connect(“192.168.121.53”,”t1”,”test123”,”test”)
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 執行SQL語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印結果
print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income )
except:
print "Error: unable to fecth data"
# 關閉數據庫連接
db.close()
參考文章:http://www.runoob.com/python/python-mysql.html
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。