接上文Python开发从零开始-49.18-数据库操作,本文小编与大家分享 Python 数据库操作的相关知识。
(31)视图
SQLite 视图是数据库中的虚拟表,它不存储实际数据,而是保存一条 SELECT 查询语句,每次查询视图时都会动态执行该语句生成结果。这种机制能简化复杂查询逻辑,同时提供数据访问的安全抽象层。
视图是只读的,查询视图中的记录与查询实际表的方式相同,但是无法在视图上执行 DELETE、INSERT 或 UPDATE 语句,如果需要通过视图进行数据修改,可以在视图上创建一个触发器,当尝试 DELETE、INSERT 或 UPDATE 视图时触发,需要做的动作在触发器中定义。
1)创建视图
CREATE VIEW 语句用于创建视图,视图可以从一个单一的表、多个表或其他视图创建。其基本语法为:
CREATE [TEMP | TEMPORARY] VIEW view_name AS SELECT column_list FROM table_name [WHERE condition]; 语法解释:
|
① 创建普通视图
普通视图是持久存在的,直至显式地使用 DROP VIEW 语句删除,或者数据库被删除。下面从 COMPANY 表中选取 ID、NAME 和 SALARY 字段创建 COMPANY_VIEW 普通视图:
CREATE VIEW COMPANY_VIEW ASSELECT ID, NAME, SALARYFROM COMPANY;
查询 COMPANY_VIEW 视图结果:

② 创建临时视图
临时视图仅在创建它们的会话中可见,并且在会话结束时自动删除。要创建临时视图,可以在 CREATE VIEW 语句中使用 TEMP 或 TEMPORARY 关键字。下面从 COMPANY 表中选取 ID、NAME 和 AGE 字段创建临时视图 COMPANY_TEMP_VIEW:
CREATE TEMP VIEW COMPANY_TEMP_VIEW ASSELECT ID, NAME, AGEFROM COMPANY;
查询 COMPANY_TEMP_VIEW 临时视图:

2)查看所有视图
可以查询数据库内置表 sqlite_master 来获取所有视图信息:
SELECT name FROM sqlite_master WHERE type='view';3)修改视图
SQLite 不支持直接修改视图,所以修改视图通常使用先删除视图,然后重新创建视图方式。
4)删除视图
要删除视图,只需使用带有 view_name 的 DROP VIEW 语句。DROP VIEW 的基本语法如下:
DROP VIEW view_name; |
(32)修改表结构
在 SQLite 中,可以使用 ALTER TABLE 语句来修改表结构。不过,SQLite 的 ALTER TABLE 功能相对有限,不像其他一些数据库系统(如PostgreSQL、MySQL 等)那样强大。在 SQLite 中,可以进行以下几种类型的表结构修改:
重命名表(Rename Table)
添加列(Add Column)
1)重命名表
重命名已有表的 ALTER TABLE 的基本语法如下:
ALTER TABLE table_name RENAME TO new_table_name; |
例如,将前文中的 COMPANY_BAK 表重名为 COMPANY_BAK_1:
ALTER TABLE COMPANY_BAKRENAME TO COMPANY_BAK_1;
2)添加列
在已有的表中添加一个新的列的 ALTER TABLE 的基本语法如下:
ALTER TABLE table_name ADD COLUMN column_def[,,,];
|
例如,将前文中的 COMPANY 表添加一个新列 STATUS 类型为 TEXT:
ALTER TABLE COMPANYADD COLUMN STATUS TEXT;
查询添加字段后的 COMPANY 表,新添加的列没有数据所以为 NULL。

SQLite 不支持直接删除列。要删除列,通常的做法是创建一个新表,只包含需要保留的列,然后将旧表的数据复制到新表中,最后删除旧表。
受文章篇幅所限,下文将继续介绍 Python 数据库操作的相关知识。