廖雪峰python3复习总结——day12-1

廖雪峰python3复习总结——day12-1访问数据库目前广泛使用的关系数据库也就这么几种:付费的商用数据库: Oracle,典型的高富帅; SQLServer,微软自家产品,Windows定制专款; DB2,IBM的产品,听起来挺高端; Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨免费的开源数据库: MySQL,大家都在用,一般错不了; PostgreSQL,学术气…

大家好,欢迎来到IT知识分享网。廖雪峰python3复习总结——day12-1"

访问数据库

目前广泛使用的关系数据库也就这么几种:

付费的商用数据库:

  • Oracle,典型的高富帅;

  • SQL Server,微软自家产品,Windows定制专款;

  • DB2,IBM的产品,听起来挺高端;

  • Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨

免费的开源数据库:

  • MySQL,大家都在用,一般错不了;

  • PostgreSQL,学术气息有点重,其实挺不错,但知名度没有MySQL高;

  • SQLite,嵌入式数据库,适合桌面和移动应用。

 

SQLite

SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。

表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,比如学生的表,班级的表,学校的表,等等。表和表之间通过外键关联。

要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;

连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。

Python中操作数据库时,要先导入数据库对应的驱动,然后,通过Connection对象和Cursor对象操作数据。

要确保打开的Connection对象和Cursor对象都正确地被关闭,否则,资源就会泄露。

如何才能确保出错的情况下也关闭掉Connection对象和Cursor对象呢?请回忆try:...except:...finally:...的用法。

练习:网友写的
def get_score_in(low, high):
    conn = sqlite3.connect(db_file)
    cursor = conn.cursor()
    cursor.execute('select * from user where score>=? and score<=? order by score',(low,high))
    values = cursor.fetchall()
    cursor.close()
    conn.close()
    return [a[1] for a in values]

 MYSQL

MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。

  • 执行INSERT等操作后要调用commit()提交事务;

  • MySQL的SQL占位符是%s

 

SQLAlchemy

ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上。

ORM框架的作用就是把数据库表的一行记录与一个对象互相做自动转换,在Python中,最有名的ORM框架是SQLAlchemy。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12923.html

(0)
上一篇 2024-03-09 16:26
下一篇 2024-03-10 07:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信