《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文档,一个指纹,一个数组,一个堆栈,一个列表或者一个关系等等。当然,类似的说明也适用于变量。下一章中会对这样的问题详细说明。你可能很难想象人们会在取值和变量这样明显并基础的差异上感到困惑。然而,事实并非如此。在此方面是十分容易掉入陷阱的。为了说明这种情况,考虑如下从某个对象数据库教程中抽取出来的内容(在方括号中的斜体部分是我给出的注释),如下所示:
我们区分变量的已声明类型是根据……对象的类型是变量的当前值[所以对象是值] ……我们从值区分对象[所以对象终究不是值] ……一个设值方法[是运算符使得]可能会查看其对于其他对象的影响[所以,对象实际上是变量]。

相关实践学习
使用DAS实现数据库SQL优化
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。
相关文章
|
1月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
265 11
|
2月前
|
存储 数据采集 数据挖掘
CSV vs 数据库:数据存储的最佳选择是什么
本文介绍了爬虫数据存储中CSV和数据库的优缺点,分析了两者在不同场景下的适用性。CSV简单易用、资源消耗低,适合小量数据;数据库则在处理大量数据和复杂查询时表现出色,支持并发操作。通过Python代码示例,展示了如何使用多线程和爬虫代理IP技术将百度搜索数据存储到MySQL数据库中,适用于大型项目和复杂数据分析需求。
169 2
|
2月前
|
缓存 物联网 数据库
InfluxDB vs TDengine :2025 年了,谁家用的数据库还不能高效读缓存?
在工业互联网和物联网的大数据应用场景中,实时数据的写入和查询性能至关重要。如何快速获取最新设备状态并实时处理数据,直接影响到业务的高效运转。本文将深入分析 TDengine 和 InfluxDB 在缓存机制上的差异,帮助读者更好地理解这两款主流时序数据库在性能优化方面的优劣。
186 1
|
3月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
3月前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
298 4
|
4月前
|
SQL 监控 关系型数据库
SQL错误代码1303解析与处理方法
在SQL编程和数据库管理中,遇到错误代码是常有的事,其中错误代码1303在不同数据库系统中可能代表不同的含义
|
4月前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
188 3
|
4月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
4月前
|
SQL 监控 数据库
管理系统VS SQL:高效集成的关键技巧与方法
在现代企业信息化建设中,管理系统(如ERP、CRM等)与SQL数据库之间的紧密集成是确保数据流动顺畅、业务逻辑高效执行的关键
|
5月前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
164 0

热门文章

最新文章