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的安装...
课题-Python-MySQLdb-学习总结.docx
课题-Python-MySQLdb-学习总结.doc.docx
python2.7.5安装mysqldb失败, my_config.h: No such file or directory. 解决办法:1)mysql版本太高,可降低版本 --此路一般不会考虑 2)注意下载的mysql-python的版本是否符和当前版本兼容 2)下载附件中的文件,...
连接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位的,全部可以安装,亲测可用,一次性搞定环境,一次性搭建,免去找来找去的痛苦,有时还版本不兼容,安装不上,奉献给大家
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?
MySQL-python-1.2.5 mysqldb库.可以在win和linux下安装
python MySQL-python模块 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb. Did you install mysqlclient or MySQL-python
pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl windows 64 bit MySQLdb
MySQL database connector for Python programming
MySQL-python-1.2.3MySQL-python-1.2.3MySQL-python-1.2.3
sudo apt-get install python-mysqldb 2.数据库操作 import MySQLdb db = MySQLdb.connect(“localhost”, “root”, “pwd”, “dbname”, charset='utf8' ) 数据库的查询 #加入参数表示查询返回的是一个键值数...
天在电脑上安装MySQLdb的时候,使用该软件可直接将python2.6与mysql关联。
MySQL-python-1.2.5.win-amd64-py2.7, python mysql模块,64位,运行后安装就好了。 python> import MySQLdb 不报错就ok了。
mysqldb官方提供 MySQL-python-1.2.3c1.win32-py2.6.exe