python-MYSQLdb
easy_install -U MYSQL-python
二、MySQLdb的使用。
引入我们需要的包
import MySQLdb
1.和数据库建立连接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")
提供的connect方法用来和数据库建立连接,接收数个参数,返回连接对象.
比较常用的参数包括
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的TCP端口.默认是3306.
conn连接有两个重要的方法commit【提交新增和修改】,rollback【撤销新增或修改】
2.执行SQL语句获取返回值
//获取连接的游标
cursor=conn.cursor()
//查询
sql = "select * from 【table】"
//新增
sql = "insert into 【table】(字段,字段) values(值,值)"
//修改
sql = "update 【table】 set 字段 =‘值’where 条件 "
//删除
sql = "delete from 【table】 where 条件"
cursor.execute(sql)
返回值
cur.execute('select * from tables')
其返回值为SQL语句得到的行数,如:2L,表示2行。
然后,可以从该对象的fetchone或fetchall方法得到行信息。
获取行信息
指针对象的fetchone()方法,是每次得到一行的tuple返回值:
引用
>>> row=cur.fetchone()
>>> print row
('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', '')
指针对象的fetchall()方法,是得到一组tuple,其内容为由行信息组成的tuple值:
引用
>>> cur.scroll(0,'absolute')
>>> row=cur.fetchall()
>>> print row
(('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', ''), ('user2', '7e58d63b60197ceb55a1c487989a3720', 1000L, 1000L, '/home/FTP/user2', None))
移动指针
当使用fetchone()方法是,指针是会发生移动的。所以,若不重置指针,那么使用fetchall的信息将只会包含指针后面的行内容。
手动移动指针使用:
cur.scroll(int,parm)
含义为:
引用
int:移动的行数,整数;在相对模式下,正数向下移动,负值表示向上移动。
parm:移动的模式,默认是relative,相对模式;可接受absoulte,绝对模式。
修改数据
修改数据,包括插入、更新、删除。它们都是使用指针对象的execute()方法执行:
cur.execute("insert into table (row1, row2) values ('111', '222')")
cur.execute("update table set row1 = 'test' where row2 = 'row2' ")
cur.execute("delete from table where row1 = 'row1' ")
因单引号“'”用于SQL语句中的标识,所以,python中的字符串需使用双引号括住。
此外,也可以使用python的“格式化字符串”写法,简化命令,例如:
cur.execute("update table set row1 = '%s' where row2 = '%s' " %('value1','value2'))
※请注意,'%s'的单引号是SQL语句的间隔符,'value1'的单引号是python的字符串间隔符,其含义是不同的。是否需要间隔符,以及使用双引号还是单引号作为间隔,需根据其含义决定。例如,还有:
cur.execute("update FTPUSERS set passwd=%s where userid='%s' " %("md5('123')",'user2'))
这里,paswd=%s是因SQL的md5()函数是不需要单引号间隔的;"md5('123')"是python的字符串中含有单引号,所以用双引号括住。
实例:
import MySQLdb
def select(conn):
cursor = conn.cursor()
n = cursor.execute("select id, name, age, if(sex = 0, 'F', 'M') as sex from users")
rows = cursor.fetchall()
for (id, name, age, sex) in rows:
print "id={0}, name={1}, age={2}, sex={3}".format(id, name, age, sex)
def insert(conn):
cursor = conn.cursor()
n = cursor.execute("insert into users (name, age) values (%s, %s)", ("a1", 30));
print "insert", n
n = cursor.executemany("insert into users (name, age) values (%s, %s)",
(("a2", 30),
("a3", 31),
("a4", 32),
("a'", 33)));
print "insert", n
def update(conn):
cursor = conn.cursor()
n = cursor.execute("update users set age = age + 10, sex = %s where name like %s", (1, "a%"));
print "update", n
def delete(conn):
cursor = conn.cursor()
n = cursor.execute("delete from users where name like %s", "a%");
print "delete", n
def main():
conn = MySQLdb.connect(host = "localhost", user = "user1", passwd = "123456", db = "test")
try:
insert(conn)
update(conn)
select(conn)
delete(conn)
finally:
conn.close()
if __name__ == "__main__":
main()
相关推荐
这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...
python2.7.5安装mysqldb失败, my_config.h: No such file or directory. 解决办法:1)mysql版本太高,可降低版本 --此路一般不会考虑 2)注意下载的mysql-python的版本是否符和当前版本兼容 2)下载附件中的文件,...
### 课题-Python-MySQLdb-学习总结 #### 概述 在当今信息化时代,几乎所有的应用程序都需要与数据打交道。Python作为一种广泛使用的编程语言,其生态中存在多种用于操作数据库的库,其中`MySQLdb`是针对MySQL数据库...
连接MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip
Python-MySQLdb-examplePython-MySQLdb-example本文主要介绍通过MySQLdb实现Python对MySQL数据库的访问和操作。备注:execute 把一条查询语句发送给mysql服务器,这里有两种情况:CREATE、INSERT、DELETE、UPDATE、...
python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。
python-2.7.9---numpy--pandas--detautil-mysqldb python是32位的,全部可以安装,亲测可用,一次性搞定环境,一次性搭建,免去找来找去的痛苦,有时还版本不兼容,安装不上,奉献给大家
Python中的MySQLdb模块是用于与MySQL数据库交互的重要工具,它实现了Python数据库API规范,使得Python程序员可以方便地在Python程序中执行SQL语句并处理数据库操作。以下是对MySQLdb模块的一些关键知识点的详细说明...
Flask-MySQLdb与Python 2.7、3.5、3.6和3.7兼容并经过测试。 接下来,将MySQL实例添加到您的代码中: from flask import Flask from flask_mysqldb import MySQL app = Flask ( __name__ ) ap
python MySQL-python模块 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb. Did you install mysqlclient or MySQL-python?
1. **Python MySQL Connector**:MySQL-python,也称为MySQLdb,是Python中广泛使用的MySQL数据库适配器。它实现了Python DB-API 2.0规范,使得在Python中编写SQL查询和处理数据库结果变得简单。 2. **版本信息**:...
1. **MySQL-Python**:MySQL-Python(也称为`MySQLdb`)是Python的一个标准库,它提供了对MySQL数据库的接口。通过这个库,Python开发者可以方便地执行SQL语句、创建和管理数据库对象。 2. **版本号**:1.2.5是这个...
python MySQL-python模块 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb. Did you install mysqlclient or MySQL-python
这个模块名为mysqldb,是Python中广泛使用的MySQL数据库适配器,它允许Python程序与MySQL数据库进行交互,执行SQL查询,管理数据等操作。 首先,我们来了解一下MySQL。MySQL是一个开源的关系型数据库管理系统...
这个文件是一个Windows安装程序,包含了所有必要的组件,可以将驱动添加到Python环境,使得用户可以直接在Python代码中导入`MySQLdb`模块开始使用。 值得注意的是,虽然MySQL-python适用于Python 2.x版本,但Python...
5. 安装完成后,可以在Python环境中导入`MySQLdb`模块,这表明安装成功。 在Django的`settings.py`配置文件中,我们需要将默认的数据库设置改为MySQL。例如: ```python DATABASES = { 'default': { 'ENGINE': '...
安装完成后,用户就可以在Python脚本中导入`MySQLdb`模块,开始编写与MySQL数据库交互的代码。 总的来说,MySQL-python库是Python开发人员在Windows环境中连接和操作MySQL数据库的重要工具。通过这个压缩包提供的...
pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl windows 64 bit MySQLdb
MySQL database connector for Python programming