SQL中视图和游标的区别
1. 视图:
视图是数据库中实际不存在的虚拟表,但可以根据特定用户的请求生成。视图是一个对象,它为用户提供基表中数据的逻辑视图,我们可以通过允许用户查看表中唯一必要的列并隐藏其他数据库详细信息来限制用户可以查看的内容。View 还允许用户根据需要访问数据,因此不同用户可以根据需要以不同的方式访问相同的数据。
2.游标:
游标是在内存中创建的一个临时工作区,用于在执行 SQL 语句时处理和存储与 SQL 语句相关的信息。临时工作区用于存储从数据库中检索到的数据,并根据需要对数据进行操作。它包含有关 select 语句访问数据的所有必要信息。它可以保存一组称为活动集的行,但一次只能访问一行。有两种不同类型的游标 –
- 隐式游标
- 显式游标
SQL中视图和游标的区别:
编号 | 比较 | 视图 | 游标 |
---|---|---|---|
1 | 术语 | 视图是一个虚拟表,它提供来自基表的数据的逻辑视图。 | CURSOR(CURrent Set of Records)是执行 SQL 语句时在数据库服务器中创建的临时工作站。 |
2 | 自然 | 视图本质上是动态的,在基表中所做的任何更改都会立即反映在视图中。 | 光标本质上可以是静态的,也可以是动态的。 |
3 | 操作 | 可以对视图执行CRUD操作,如创建、插入、删除和更新。 | 创建显式游标有一些步骤 – A. 在声明部分声明游标。B. 在执行部分打开光标。C.获取游标以将数据检索到 PL/SQL 变量中。D. 关闭游标以释放分配的内存。 |
4 | 数据检索 | 视图用于获取或更新数据。 | 使用游标,从结果集中检索数据是逐行进行的。 |
5 | 类型 | 视图有两种类型,即简单视图(从单个表创建)和复杂视图(从多个表创建)。在简单视图中,可以使用 COUNT()、MIN() 等组函数,而在复杂视图中,不能使用组函数。 | 光标有两种类型,即隐式游标(预定义)和显式游标(用户定义)。每当执行 DML 操作或 SQL 语句时,Oracle 会自动创建隐式游标,而在显式游标中,用户需要通过给出名称来显式定义它们。 |
6 | 使用 | 视图是一个类似于表的数据库对象,因此它可以与 SQL 和 PL/SQL 一起使用。 | 游标是在存储过程块中定义和使用的,它只能与 PL/SQL 一起使用。 |
7 | 语法 | 创建视图的一般语法: “VIEW_NAME” AS “SQL Statement”; |
创建显式光标的一般语法: CURSOR cursor_name IS select_statement; |