《SQL与关系数据库理论——如何编写健壮的SQL代码》一1.9 值vs.变量

简介: 本节书摘来华章计算机《交互式程序设计 第2版》一书中的第1章 ,第1.9节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.9 值vs.变量 关系(relation)和关系变量(relvar)的逻辑差异实际上是通常意义下值与变量之间逻辑差异的特例。

本节书摘来华章计算机《SQL与关系数据库理论——如何编写健壮的SQL代码》一书中的第1章 ,第1.9节 C. J. Date 著 单世民 何英昊 许侃 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.9 值vs.变量

关系(relation)和关系变量(relvar)的逻辑差异实际上是通常意义下值与变量之间逻辑差异的特例。现在,谈谈通常意义下的情形(有点偏题,不过有必要这么做,因为清晰的思路在特别多的方面都非常有益)。下面给出一些定义:
定义 值(value)是逻辑学家所说的“单个常量”,比如整数3。一个值不存在于时空之中。然而,值可以通过某些编码在记忆中表示,而这些表示或编码在时空中存在。事实上,同一个值可以在不同的时间和地点以不同的形式表示。或者说,任意多个不同的变量(参见下个定义)在相同或不同的时间可以有相同的值。特别的,根据定义可知,值本身是不能被更新的;因为如果它能被更新,那么在更新之后它就不再是它本身了。
定义 变量是用于表示值的容器。一个变量存在于时空之中。同时,变量可以被更新,这一点和值不同。也就是说,可以用另外一个值替换变量的当前值。这就是“变量”的含义——作为变量就要可更新,可更新的才是变量;同样的,作为变量就要可赋值,可赋值的才是变量。
请特别小心,并不是只有整数3这样的简单事物才是合法值。相反,取值可以是很复杂的。比如,一个值可以是一个几何点,一个多边形,一条X射线,一个XML文档,一个指纹,一个数组,一个堆栈,一个列表或者一个关系等等。当然,类似的说明也适用于变量。下一章中会对这样的问题详细说明。你可能很难想象人们会在取值和变量这样明显并基础的差异上感到困惑。然而,事实并非如此。在此方面是十分容易掉入陷阱的。为了说明这种情况,考虑如下从某个对象数据库教程中抽取出来的内容(在方括号中的斜体部分是我给出的注释),如下所示:
我们区分变量的已声明类型是根据……对象的类型是变量的当前值[所以对象是值] ……我们从值区分对象[所以对象终究不是值] ……一个设值方法[是运算符使得]可能会查看其对于其他对象的影响[所以,对象实际上是变量]。

相关文章
|
5天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
13天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
13天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
78 6
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
25 0
|
1月前
|
SQL XML Java
整理几个常用的sql和其他代码
整理几个常用的sql和其他代码
12 1
|
1月前
|
SQL 存储 关系型数据库
【MySQL】——关系数据库标准语言SQL(大纲)
【MySQL】——关系数据库标准语言SQL(大纲)
56 0
【MySQL】——关系数据库标准语言SQL(大纲)
|
2月前
|
SQL Java 关系型数据库
Flink SQL 问题之用代码执行报错如何解决
Flink SQL报错通常指在使用Apache Flink的SQL接口执行数据处理任务时遇到的问题;本合集将收集常见的Flink SQL报错情况及其解决方法,帮助用户迅速恢复数据处理流程。
121 6
|
2月前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
24 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据更新
【数据库SQL server】关系数据库标准语言SQL之数据更新
33 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0