Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程:
- 引入 API 模块。
- 获取与数据库的连接。
- 执行SQL语句和存储过程。
- 关闭数据库连接。
一、MySQLdb模块
0 简介
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。
1 安装
安装MySQLdb,请访问 http://www.codegood.com/archives/129 ,(Linux平台可以访问:https://pypi.python.org/pypi/MySQL-python)从这里可选择适合您的平台的安装包
二、数据库连接
连接数据库前,请先确认以下事项:
- 您已经创建了数据库 TESTDB.
- 在TESTDB数据库中您已经创建了表 EMPLOYEE
- EMPLOYEE表中有基本字段
- 连接数据库TESTDB使用的用户名为 "*******" ,密码为 "******"
- Python上已经安装了 Python MySQLdb 模块
- 熟悉基本sql语句
示例如下:
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect(host='localhost',port=3306,user='root',passwd='123456',db='testpythondb',charset='utf8' )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
cursor.close()
# 关闭数据库连接
db.close()
类Connection:创建了Python与数据库之间的网络通路。参数如下:
Connection支持的方法如下:
Cursor:游标对象,用于执行查询和获取结果,它支持的方法如下:
三、简单操作
3.1 建表,插入一些基本字段
execute()方法执行sql语句
sql建表,插入语句如下:
create table if not EXISTS usertest
(
userid int(11) PRIMARY KEY ,
username VARCHAR(20)
)
insert into usertest(userid,username)values('%d','%s')
Python示例如下:
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect(host='localhost',port=3306,user='root',passwd='123456',db='testpythondb',charset='utf8' )
cursor = db.cursor()
sql = """
create table if not EXISTS usertest
(
userid int(11) PRIMARY KEY ,
username VARCHAR(20)
)
"""
cursor.execute(sql)
for i in range(1,10): sql_insert = "insert into usertest(userid,username)values('%d','%s')" %(int(i),'name'+str(i)) cur.execute(sql_insert) db.commit()
cursor.close()
# 关闭数据库连接db.close()
3.2 查询操作
fetchone() 方法获取单条数据(第一条数据), 使用fetchall() 方法获取全部数据,rowcount返回执行execute()方法后影响的行数
sql查询语句如下:
select * from usertest
Python示例如下:
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect( host= 'localhost', port= 3306, user= 'root', passwd= '123456', db= 'testpythondb', charset= 'utf8' )
cur = db.cursor()
sql_select = "select * from usertest"
cur.execute(sql_select)
print(cur.rowcount)
rs = cur.fetchall()#获取数据类型为元组
print(rs)
for r in rs:
userid = r[ 0]
username = r[ 1]
print( "userid = %d,username = %s"%(userid,username))
print( type(rs))
db.commit()
cur.close()
# 关闭数据库连接db.close()
—————————————————————写在最后——————————————————————
文章为本人日常的笔记分享,如有侵权,请联系QQ邮箱 1192090271@qq.com 删除