3.8.4 重复元组存在性测试 发表于 2019-10-16 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.8 嵌套子查询 3.8.4 重复元组存在性测试 unique unique结果为真的情况 unique结果为假的情况 注意空值 SQL查询 找出所有在2009年最多开设一次的课程 MySQL好像不支持unique结构 not unique MySQL也不支持not unique 阅读全文 »
3.8.3 空关系测试 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.8 嵌套子查询 3.8.3 空关系测试 exists 相关子查询 子查询只能使用自己定义的相关名称,或者外层查询定义的相关名称 内外层相关名称重名时,内层相关名称有效 not exists 关系A是否包含关系B not exists( B except A) SQL查询 找出选修了Biology系开设的所有课程的学生 阅读全文 »
3.8.2 集合的比较 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.8 嵌套子查询 3.8.2 集合的比较 SQL查询 找出满足下面条件的所有教师的姓名,他们的工资至少比Biology系某一个教师的工资要高 写法1 写法2 子查询 产生Biology系所有教师的所有工资值的集合 至少大于其中一个>some some详解 其他运算符和some组合的情况 =some等价于in <>some不等价与not in SQL查询 找出工资值比Biology系每个教师的工资都高的所有教师的姓名 all详解 <>all等价于not in =all不等价与in SQL查询 找出平均工资最高的系 any 阅读全文 »
如何下载数据库系统教程第6版 大学模式源码 发表于 2019-10-15 更新于 2019-10-23 分类于 数据库系统概念 原书第6版 , 前言 如何下载数据库系统教程第6版 大学模式源码 大学数据库模式源码 PPT 练习题答案 阅读全文 »
3.8 嵌套子查询 3.8.1 集合成员资格 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.8 嵌套子查询 3.8 嵌套子查询 可以在where子句中嵌套子查询 可以在from子句中嵌套子查询 标量子查询 3.8.1 集合成员资格 测试元组是否是集合的成员 in 测试元组是否不是集合的成员 not in in示例 找出在2009年秋季和2010年春季学期同时开课的所有课程 先写出子查询 完整查询 not in示例 找出所有在2009年秋季学期开课,但不在2010年春季学期开课的课程 in和not in用于枚举集合 测试多个成员资格 阅读全文 »
3.7.4 对空值和布尔值的聚集 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.7 聚集函数 3.7.4 对空值和布尔值的聚集 sum聚集函数会忽略集合中的某个空值 聚集函数对空值和空集的处理 输入集合中带空值的情况 输入值集合为空集的情况 SQL:1999 中引入的boolean类型和some every聚集函数 阅读全文 »
3.7.3 having子句 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.7 聚集函数 3.7.3 having子句 having子句对分组起作用 SQL查询 找出教师平均工资超过42000美元的系 having子句中的没有被聚集的属性必须出现在group by子句中 查询子句顺序: 先from 再where 然后 group by 接着having 最后select 聚集 SQL查询 对于在2009年讲授的每个课程段,如果该课程段有至少2名学生选课,找出选修该课程段的所有学生的总学分(tot_cred)的平均值 阅读全文 »
3.7.2 分组聚集 发表于 2019-10-15 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.7 聚集函数 3.7.2 分组聚集 group by子句分组原则 实例 使用dept_name属性给instructor关系分组 SQL查询 找出每个系的平均工资 先分组 再查询 省略group by子句时整个关系作为一个分组 SQL查询 找出所有教师的平均工资 SQL查询 找出每个系在2010年春季学期讲授一门课程的教师人数 没有出现在group by子句中的属性只能出现在select子句的聚集函数内部 MySQL中没有出现再group by子句中的属性也可以出现在select子句聚集函数外面 阅读全文 »
3.7 聚集函数 3.7.1 基本聚集 发表于 2019-10-14 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.7 聚集函数 3.7 聚集函数 什么是聚集函数 五个固有聚集函数 avg min max sum count 3.7.1 基本聚集 sum实例 找出Computer Science系所以教师的总工资 avg实例 找出Computer Science系教师的平均工资 使用as重命名聚集函数的结果 重复值 计算平均值是注意要保留重复元组 使用distinct在计算聚集函数之前 删除重复元组 计算一个关系中元组的个数count(*) 没有count(distinct *) max和min中可以使用distinct 默认保留重复 阅读全文 »
3.6 空值 发表于 2019-10-14 更新于 2019-10-18 分类于 数据库系统概念 原书第6版 , 第一部分 关系数据库 , 第3章 SQL , 3.6 空值 3.6 空值 有null的算术表达式结果为null and or not元素符与unknown运算的结果 谓词is null和is not null SQL查询 找出instructor关系中salary为空值的所有教师 is unknown谓词 MySQL不支持is unknown select distinct中两个null被认为是相等的 阅读全文 »