第十三课:数据库

浏览 466

课文

## 什么是数据库 _What is a database?_ 数据库是用来存储数据的文件。从从键到值的映射来看,大多数数据库都像字典一样组织。最大的区别是数据库在磁盘上(或其他永久性存储),因此在程序结束后它仍然存在。因为数据库存储在永久存储器上,它可以存储比字典多得多的数据,字典只限于计算机内存的大小。 与字典一样,数据库软件的设计目的是保持数据的插入和访问非常快,即使是对于大量的数据。数据库软件通过在向数据库中添加数据时建立索引来保持其性能,从而使计算机能够快速跳转到特定的条目。 有许多不同的数据库系统用于各种目的,包括:Oracle、MySQL、Microsoft SQL Server、PostgreSQL 和 SQLite。在本书中,我们将重点放在 SQLite 上,因为它是一个非常常见的数据库,并且已经内置到 Python 中。SQLite 被设计成嵌入到其他应用程序中,以在应用程序中提供数据库支持。例如,Firefox 浏览器和其他许多产品一样,在内部也使用 SQLite 数据库。 ## 数据库的概念 _Database concepts_ 一个数据库由许多表组成,里面的每一个表看起来都像 excel 中的表格,有着行列。 ```python import sqlite3 conn = sqlite3.connect('student.sqlite') cur = conn.cursor() cur.execute('DROP TABLE IF EXISTS Student') cur.execute('CREATE TABLE Student (name CHAR(20), age INTEGER, gender CHAR(10))') conn.close() ``` 此时我们便已经创建了一个学生表,用以保存我们的学生数据。 ## SQLite 浏览器 _Database Browser for SQLite_ 很多聪明又勤劳的贡献者已经开发了一款 SQLite 数据库浏览器。 [sqlitebrowser](https://github.com/sqlitebrowser/sqlitebrowser) 我们可以选择用打开我们刚建立的数据库查看。 可以看到我们刚刚我们创建的表和其字段,我们可以用这浏览器手动添加数据或进行其他相关操作。 同学们可以打开其 github 页面来学习更多,甚至你也可以参与开发为其提交代码,参与到项目当中。 ## 插入数据 _Insert Data_ ```python import sqlite3 conn = sqlite3.connect('student.sqlite') cur = conn.cursor() cur.execute('INSERT INTO Tracks (name, age) VALUES (?, ?)', ('小明', 18)) cur.execute('INSERT INTO Tracks (name, age) VALUES (?, ?)', ('柯南', 14)) conn.commit() cur.close() ``` ## 获取数据 _Get Data_ ```python import sqlite3 conn = sqlite3.connect('student.sqlite') conn.execute('PRAGMA foreign_keys = ON') cur = conn.cursor() cur.execute('SELECT title, plays FROM Student') for row in cur: print(row) cur.close() ``` 输出 ```output ('小明', 18) ('柯南', 14) ```

评论

登录参与讨论

暂无评论

共 0 条
  • 1
前往
  • 1