『python学习』数据库学习

1、一旦执行了 close() 方法,再试图使用连接对象的方法将会导致异常


2、类似 commit(), rollback() 方法仅对支持事务的数据库有意义


3、对不支持游标的数据库来说, cursor() 方法仍然会返回一个尽量模仿游标对象的对象

 # 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理


4、一旦你完成了数据库连接,并且关闭了游标对象,你应该执行 commit() 提交你的操作,然后关闭这个连接


5、连接对象方法:

close()               关闭数据库连接

commit()            提交当前事务

rollback()           取消当前事务

cursor()             使用这个连接创建并返回一个游标或类游标的对象

errorhandler(cxn, cur, errcls, errval)                   


6、游标对象属性

arraysize               使用 fechmany() 方法一次取出多条记录,默认值为 1

connectionn          创建此游标对象的连接(可选)

description            返回游标活动状态(一个包含七个元素的元组): (name, type_code, display_size, internal_size, precision, scale, null_ok);只有 name 和 type_code 是必须提供的

lastrowid               返回最后更新行的 id (可选的),如果数据库不支持行 id,默认返回 None

rowcount               最后一次 execute() 操作返回或影响的行数

callproc(func[, args])          调用一个存储过程

close()                   关闭游标对象

execute(op[, args])             执行一个数据库查询或命令

executemany(op, args)       类似 execute() 和 map() 的结合,为给定的每一个参数准备并执行一个数据库查询或命令

fetchone()              得到结果集的下一行

fetchmany([size=cursor.arraysize])           得到结果集的下几行

fetchall()                 返回结果集中剩下的所有行

__iter__()               创建一个迭代对象(可选;参阅 next())

messages              游标执行后数据库返回的信息列表(元组集合)(可选)

next()                     使用迭代对象得到结果集的下一行(可选;类似 fetchone() ,参阅 __iter__() )

nextset()                移到下一个结果集(如果支持的话)

rownumber            当前结果集中游标的索引(以行为单位,从 0 开始)(可选)

setinput_sizes(sizes)               设置输入最大值(必须有,但具体实现是可选的)    # 函数

setoutput_size(size[, col])        设置大列的缓冲区大写(必须有,但具体实现是可选的)    # 怀疑翻译有误


7、游标对象最重要的属性是 execute*() 和 fetch*() 方法,所有对数据库服务器的请求都由它们来完成

对 fetchmany() 方法来说,设置一个合理的 arraysize 属性会很有用。当然,在不需要时关掉游标对象也是个好主意


8、MySQLdb 的 connect 方法的用户名和密码的关键字是: user, passwd 

其它关键字:

数据库               db

host                   host



9、当报错:not all arguments converted during string formatting 的时候,

可以这样写:cur.execute("INSERT INTO cnb (title) VALUES(%s)", (items["title"], ))

关键的地方就是 (items["title"], ) 中的逗号,千万不要省略


10、MySQL数据类型和常用字段属性总结

http://www.jb51.net/article/55853.htm




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中进行数据库编程,最常用的是使用Python的标准库中的sqlite3模块来进行SQLite数据库的操作。以下是我对Python数据库编程的一些学习心得: 1. 连接数据库 使用sqlite3模块连接SQLite数据库,首先需要使用connect()方法创建一个连接对象,该方法需要传入数据库文件路径作为参数。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') ``` 2. 创建表 创建表需要使用execute()方法执行SQL语句。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() sql = ''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) ''' cursor.execute(sql) conn.commit() conn.close() ``` 3. 插入数据 插入数据需要使用execute()方法执行INSERT语句。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() sql = "INSERT INTO users (name, age) VALUES (?, ?)" cursor.execute(sql, ('Alice', 20)) conn.commit() conn.close() ``` 4. 查询数据 查询数据需要使用execute()方法执行SELECT语句,并使用fetchone()或fetchall()方法获取结果。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() sql = "SELECT * FROM users WHERE age > ?" cursor.execute(sql, (18,)) result = cursor.fetchall() for row in result: print(row) conn.close() ``` 5. 更新数据 更新数据需要使用execute()方法执行UPDATE语句。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() sql = "UPDATE users SET age = ? WHERE name = ?" cursor.execute(sql, (21, 'Alice')) conn.commit() conn.close() ``` 6. 删除数据 删除数据需要使用execute()方法执行DELETE语句。例如: ``` import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() sql = "DELETE FROM users WHERE name = ?" cursor.execute(sql, ('Alice',)) conn.commit() conn.close() ``` 以上是我对Python数据库编程的一些学习心得,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值