數據庫在開發過程中是最常見的,基本上在服務端的編程過程中都會使用到,mysql是較常見的一種數據庫,這里介紹python如果連接到數據庫中,並對數據庫進行增刪改查。
安裝mysql的python擴展
使用MySQLdb
第三方擴展庫連接mysql,首先在python解析器
下,查看MySQLdb是否已經安裝,命令如下:
import MySQLdb
如果沒有安裝會出現下面的錯誤:
ImportError: No module named MySQLdb
安裝MySQLdb
,分不同的平台,在windows下,在連接https://pypi.python.org/pypi/MySQL-python/1.2.5
下載MySQL-python-1.2.5.win32-py2.7.exe
進行安裝,安裝的過程跟普通的軟件並沒有什么區別。
在centos
下使用命令進行安裝:
sudo yum install MySQL-python
安裝完成后,在進行import MySQLdb
就不會再報錯了。
連接mysql,並進行增刪改查
通常在進行數據庫操作時,程序使用的是如下的過程:
-
連接數據庫,返回連接句柄
-
使用連接句柄進行SQL語句的操作
-
關閉數據庫連接
如下的代碼更加能過看清這個過程:
#!/usr/bin/python
#coding=utf-8
"""
start python 項目
"""
import MySQLdb
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
cur = conn.cursor()
#執行sql語句
cur.execute("insert into bugingcode values('阿貓學編程')")
conn.commit()
#返回數據
cur.execute("select * from bugingcode")
datacur = cur.fetchall()
print datacur
#關閉連接
cur.close()
conn.close()
MySQLdb中常用函數
-
MySQLdb 連接數據庫:
- conn= MySQLdb.connect #連接數據庫
- cur = conn.cursor() #返回當前句柄
- commit() #提交
- rollback() #回滾
-
cursor執行sql語句的方法:
-
execute(self, query, args): 執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數
-
callproc(self, procname, args) :用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數
-
executemany(self, query, args): 執行單挑sql語句,但是重復執行參數列表里的參數,返回值為受影響的行數
-
nextset(self) 移動到下一個結果集
-
-
cursor用來接收返回值的方法:
-
fetchall(self): 接收全部的返回結果行.
-
fetchmany(self, size=None) :接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.
-
fetchone(self): 返回一條結果行.
-
rowcount 這是一個只讀屬性,並返回執行execute() 方法后影響的行數。
-
scroll(self, value, mode='relative') :移動指針到某一行; 如果mode='relative',則表示從當前所在行移動value條,如果 mode='absolute',則表示從結果集的第一行移動value條.
-
-
關閉連接
關閉當前句柄:
cur.close()
關閉當前連接:
conn.close()
進一步封裝
對MySQLdb
的封裝,在網上有很多封裝類,可以選擇一個或者根據自己的需求,寫一個適合自己的連接庫。
更多教程:大家來編程