Database System Concepts——读书笔记 第三、四、五章 SQL简介

发布时间 2023-06-08 20:37:21作者: sahara-随笔

SQL简介

关系代数运算和SQL运算之间有着密切的联系。一个关键的区别是,与关系代数不同,SQL允许重复

与select子句不同,union联合操作会自动消除重复项.如果我们想保留所有的副本,我们就必须用“union all”代替“union. intersect all, except all

您可以验证,如果r.A为null,则“1<r.A”和“not(1<r.A)”的计算结果为未知。如果一个元组的where子句谓词计算结果为false或未知,则该元组不会添加到结果中。

hasing子句(如果存在)适用于每组;不满足hasing子句谓词的组被移除。

引入附加条件有两个很好的理由。首先,我们将很快看到,对于一种称为outer join(外部联接)的联接,on条件的行为方式与where条件不同。其次,如果联接条件是在on子句中指定的,而其余条件则出现在where子句中,那么SQL查询通常更容易被人类读取 对于外部联接,on和where的行为不同。原因是外部联接只为那些对相应的“内部”联接的结果没有贡献的元组添加空填充元组。on条件是外部联接规范的一部分,它不会过滤null字段,但where子句不是,where后面的条件会作用于null字段。

natural join和inner join的区别是,natural join要求相同属性必须全部相等,而inner join可以使用using指定单独属性相等即可。

View是一个query sql的声明(类似函数的声明)。使用的时候会执行query sql返回结果。视图不允许执行update insert。通过视图修改数据库的另一种方法(通常是更可取的方法)是使用trigger机制。

Materialized Views 某些数据库系统允许存储视图关系,但它们确保,如果视图定义中使用的实际关系发生变化,则视图保持最新。这样的视图被称为物化视图。目的,加速查询速度,但增加了数据同步负担。

默认的catalog(目录,某些数据库中等同于database)和schema(模式)是为每个数据库连接设置的SQL环境(上下文)的一部分。该环境还包含用户和权限信息当用户连接到数据库系统时,会为连接设置默认的目录和模式;这对应于当用户登录到操作系统时,当前目录被设置为用户的主目录。我们可以通过create schema和drop schema语句来创建和删除模式。在大多数数据库系统中,创建用户帐户时也会自动创建模式,并将模式名称设置为用户帐户名称。模式是在默认目录或创建用户帐户时指定的目录中创建的。新创建的schema将成为用户帐户的默认schema。

prepared statement 数据库系统在准备好查询时对statement进行编译。每次执行查询(使用新值替换“?”)时,数据库系统都可以重用以前编译的查询形式,并将新值用作参数