廖雪峰python学习笔记之访问数据库

咚咚咚,敲黑板,这一节真的很重要的,因为不论你做什么数据库都是必须要使用的一部分,不论你使用关系型数据库还是nosql,python都可以很好的访问并且操纵它。

SQLite(python集成的数据库,无需安装)

一个小小的铺垫:
一个数据库的连接称为connection,连接到数据库之后,需要打开游标(Cursor),通过其执行SQL语句,然后获得执行结果。一定要注意的是,一旦连接打开游标之后记得关闭哦,否则会数据泄漏。

# 先关游标,在关连接
cursor.close()
conn.close()

为保证,无论如何都能被关闭,请尝试使用try:…except:…finally:…

基本用法

import sqlite3
conn = sqlite3.connect('数据库文件名')
cursor = conn.cursor()
# SQL语句的增删改查都是通过以下语句实现的
cursor.execute('SQL语句')
cursor.close()
# 提交事务
conn.commit()
conn.close()
  • 使用Cursor对象执行insert,update,delete语句时,执行结果由rowcount返回影响的行数,就可以拿到执行结果。
cursor.rowcount
  • 使用Cursor对象执行select语句时,通过featchall()可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。
cursor.fetchall()

注意:当SQL语句带有参数时,请使用如下写法,?代表占位

cursor.execute('select * from user where name=? and pwd=?', ('abc', 'password'))

MySQL(大同小异)

注意以下两点:

  1. 执行INSERT等操作后要调用commit()提交事务;
  2. MySQL的SQL占位符是%s。

SQLAlchemy

这块还是以应用作为驱动吧,还没用过,所以理解不深。

ORM技术

诶,好像听过诶,它是把关系型数据库的表结构映射到对象上,其作用是将数据库表的一行记录和一个对象互相做自动转换

SQLAlchemy用法

廖雪峰网站

还是见这部分教程吧,偷懒不贴过来了,学会的第一步肯定是照猫画虎,所以也急不得。

猜你喜欢

转载自blog.csdn.net/alicelmx/article/details/80310722