Database System Concepts——读书笔记 第三、四、五章 SQL简介
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进行编译。每次执行查询(使用新值替换“?”)时,数据库系统都可以重用以前编译的查询形式,并将新值用作参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)