大家好,欢迎来到IT知识分享网。
访问数据库
目前广泛使用的关系数据库也就这么几种:
付费的商用数据库:
-
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