`
booby325
  • 浏览: 387671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python-MYSQLdb

 
阅读更多

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()

分享到:
评论

相关推荐

    python-MySQLdb安装包

    这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...

    python2.7.5 安装python-mysqldb出错问题my_config.h: No such file or directory.

    python2.7.5安装mysqldb失败, my_config.h: No such file or directory. 解决办法:1)mysql版本太高,可降低版本 --此路一般不会考虑 2)注意下载的mysql-python的版本是否符和当前版本兼容 2)下载附件中的文件,...

    课题-Python-MySQLdb-学习总结.docx

    ### 课题-Python-MySQLdb-学习总结 #### 概述 在当今信息化时代,几乎所有的应用程序都需要与数据打交道。Python作为一种广泛使用的编程语言,其生态中存在多种用于操作数据库的库,其中`MySQLdb`是针对MySQL数据库...

    MySQLDB1.2.5

    连接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-example:Python-MySQLdb-example

    Python-MySQLdb-examplePython-MySQLdb-example本文主要介绍通过MySQLdb实现Python对MySQL数据库的访问和操作。备注:execute 把一条查询语句发送给mysql服务器,这里有两种情况:CREATE、INSERT、DELETE、UPDATE、...

    python2.6-MySQLdb

    python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。

    python-2.7.9---numpy--pandas--detautil-mysqldb

    python-2.7.9---numpy--pandas--detautil-mysqldb python是32位的,全部可以安装,亲测可用,一次性搞定环境,一次性搭建,免去找来找去的痛苦,有时还版本不兼容,安装不上,奉献给大家

    课题-Python-MySQLdb-学习总结.doc.docx

    Python中的MySQLdb模块是用于与MySQL数据库交互的重要工具,它实现了Python数据库API规范,使得Python程序员可以方便地在Python程序中执行SQL语句并处理数据库操作。以下是对MySQLdb模块的一些关键知识点的详细说明...

    flask-mysqldb:Flask Web框架MySQL扩展

    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

    MySQL-python-1.2.5-cp27-none-win32.whl

    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.3.win32-py2.7 MySQL-python-1.2.3.win-amd64-py2.7

    1. **Python MySQL Connector**:MySQL-python,也称为MySQLdb,是Python中广泛使用的MySQL数据库适配器。它实现了Python DB-API 2.0规范,使得在Python中编写SQL查询和处理数据库结果变得简单。 2. **版本信息**:...

    MySQL_python-1.2.5-cp27-none-win_amd64.whl

    1. **MySQL-Python**:MySQL-Python(也称为`MySQLdb`)是Python的一个标准库,它提供了对MySQL数据库的接口。通过这个库,Python开发者可以方便地执行SQL语句、创建和管理数据库对象。 2. **版本号**:1.2.5是这个...

    MySQL_python-1.2.5-cp27-none-win32.zip

    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.zip

    这个模块名为mysqldb,是Python中广泛使用的MySQL数据库适配器,它允许Python程序与MySQL数据库进行交互,执行SQL查询,管理数据等操作。 首先,我们来了解一下MySQL。MySQL是一个开源的关系型数据库管理系统...

    MySQL-python-1.2.2.win32-py2.6

    这个文件是一个Windows安装程序,包含了所有必要的组件,可以将驱动添加到Python环境,使得用户可以直接在Python代码中导入`MySQLdb`模块开始使用。 值得注意的是,虽然MySQL-python适用于Python 2.x版本,但Python...

    django,liunx下mysql数据库接口MySQL-python-1.2.3.tar.gz

    5. 安装完成后,可以在Python环境中导入`MySQLdb`模块,这表明安装成功。 在Django的`settings.py`配置文件中,我们需要将默认的数据库设置改为MySQL。例如: ```python DATABASES = { 'default': { 'ENGINE': '...

    MySQL-python-1.2.3.win-amd64-py2.7

    安装完成后,用户就可以在Python脚本中导入`MySQLdb`模块,开始编写与MySQL数据库交互的代码。 总的来说,MySQL-python库是Python开发人员在Windows环境中连接和操作MySQL数据库的重要工具。通过这个压缩包提供的...

    1.2.5的windows python-mysql,pip安装,MySQL_python-1.2.5-cp27-none-win_amd64.whl

    pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl windows 64 bit MySQLdb

    MySQL-python-1.2.4b4.win32-py2.7

    MySQL database connector for Python programming

Global site tag (gtag.js) - Google Analytics