第十三课:数据库

浏览 584

课文

什么是数据库 What is a database?

数据库是用来存储数据的文件。从从键到值的映射来看,大多数数据库都像字典一样组织。最大的区别是数据库在磁盘上(或其他永久性存储),因此在程序结束后它仍然存在。因为数据库存储在永久存储器上,它可以存储比字典多得多的数据,字典只限于计算机内存的大小。

与字典一样,数据库软件的设计目的是保持数据的插入和访问非常快,即使是对于大量的数据。数据库软件通过在向数据库中添加数据时建立索引来保持其性能,从而使计算机能够快速跳转到特定的条目。

有许多不同的数据库系统用于各种目的,包括:Oracle、MySQL、Microsoft SQL Server、PostgreSQL 和 SQLite。在本书中,我们将重点放在 SQLite 上,因为它是一个非常常见的数据库,并且已经内置到 Python 中。SQLite 被设计成嵌入到其他应用程序中,以在应用程序中提供数据库支持。例如,Firefox 浏览器和其他许多产品一样,在内部也使用 SQLite 数据库。

数据库的概念 Database concepts

一个数据库由许多表组成,里面的每一个表看起来都像 excel 中的表格,有着行列。

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

我们可以选择用打开我们刚建立的数据库查看。

可以看到我们刚刚我们创建的表和其字段,我们可以用这浏览器手动添加数据或进行其他相关操作。 同学们可以打开其 github 页面来学习更多,甚至你也可以参与开发为其提交代码,参与到项目当中。

插入数据 Insert Data

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

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()

输出

('小明', 18)
('柯南', 14)

评论

登录参与讨论

暂无评论

共 0 条
  • 1
前往
  • 1