Python学习之数据库操作
来源:互联网 发布:godaddy PHP创建 编辑:程序博客网 时间:2024/05/18 01:28
在python中,我们可以通过MySQLdb
这一适配器连接并操作数据库。
其中有两个主要的对象Connection
和Cursor
,分别用来与数据库连接和通信。
下面给出一个与数据库连接的实例:
Connection对象:
conn = MySQLdb.connect( host='127.0.0.1', # 主机名 127.0.0.1 为本机IP port=3306, # 端口 user='root', # 用户名 passwd='***', # 数据库密码 db="test", # 数据库名 charset='utf8' # 字符集)
conn有几个比较重要的方法:
- commit() 和 rollback()
理解这两个方法我们首先要知道和数据库的整个通信过程是怎样的:
建立连接之后,我们提供要执行的sql语句给数据库,然后数据库将运行的结果返回到本地的缓存区,我们一系列的增删改是在本地的缓存中进行。如果修改完成后,我们便通过commit()方法提交当前的事务(即此次操作)使其在数据库中生效,如果要撤销本次操作,则通过rollback()方法取消当前事务。 - close()用来关闭当前的连接
Cursor对象:
Cursor最重要的方法是execute()
和fetch*()
,其中execute用来执行sql语句,fetch用来查询结果:
fetch*方法其实类似于C语言的的文件操作,有一个指针指向当前的位置,fetchone()得到第一条结果,此时指针便会指向第二条结果,此时fetchall()便得到除了第一条以外的所有结果。
cursor = conn.cursor() # 创建游标sql = "select * from user"cursor.execute(sql) # 执行sql语句print cursor.rowcount # 上一条sql语句处理或影响的行数rs = cursor.fetchone() # fetchone为查询一条结果print rsrs = cursor.fetchmany(3) # fetchmany(n) 为查询n条print rsrs = cursor.fetchall() # fetchall 为查询剩余所有print rscursor.close() # 关闭游标和连接conn.close()
此时灵活运用以上的两个对象,便可以对数据库进行各种操作。
conn = MySQLdb.connect(...)cursor = conn.cursor()#插入语句sql_insert = "insert into user(userid, username) values (10, 'name10')" # 更新语句sql_update = "update user set username='name11' where userid=1"# 删除语句sql_delete = "delete from user where useid<3"try: # 一组操作,同时进行,出错时取消所有操作 cursor.execute(sql_insert) print cursor.rowcount cursor.execute(sql_update) print cursor.rowcount cursor.execute(sql_delete) print cursor.rowcount# 若有异常 输出异常 将事物取消except Exception as e: print e conn.rallback()# 提交事物, 使变化在数据库中生效conn.commit()cursor.close()conn.close()
阅读全文
0 0
- Python学习之数据库操作
- python之数据库操作
- python之数据库操作
- python学习之数据库操作(mysql_ubuntu版)
- MySQL数据库操作学习(Python)
- Python学习笔记-数据库操作
- python之mysql数据库操作
- Python之操作MySQL数据库
- python操作数据库之pymysql
- python基础学习-python操作sqlite数据库
- javafx学习之数据库操作
- Python学习之文件操作
- Python学习之文件操作
- python学习之文件操作
- mysql模块学习:python操作MySQL数据库
- Python学习笔记21:数据库操作(sqlite3)
- Python 学习笔记三 操作PostgreSQL数据库
- Python实战之MySQL数据库操作
- ThreadPoolTaskExecutor使用详解
- 写个简单到不行的WEB计算器
- 命令模式(C++)
- VMware虚拟机Linux访问外网配置
- 江城子篇-NOIP2013-货车运输
- Python学习之数据库操作
- Leetcode: Course Schedule
- CentOS 7 yum配置和vsftpd的安装配置
- Gym
- Java SE朝花夕拾之异常处理
- Google源码 -- 打Log新技巧
- TCP四次挥手
- 三、使用特性、属性和数据
- Oracle 临时表操作