设为首页 加入收藏

TOP

数据库系统概念之SQL数据定义、SQL查询语句的基本结构(二)
2017-12-07 14:23:03 】 浏览:280
Tags:数据库 系统 概念 SQL 数据 定义 查询 语句 基本 结构
CT。 EXCEPT运算从其第一个输入中输出所有不出现在第二个输入中的元组,也即它执行差集操作。此运算在执行差集操作之前自动去除输入中的重复。如果我们想保留所有重复,就必须用EXCEPT ALL代替EXCEPT。

空值

如果算数表达式的任一输入为空,该算数表达式(+、-、*、/)结果为空。

由于在where子句的谓词中可以对比较结果使用诸如and、or和not的布尔运算,所以这些布尔运算的定义也被扩展到可以处理unknown值。

and:true and unknown 的结果是unknown,false and unknown 的结果是false,unknown and unknown 的结果是unknown。 or:true and unknown 的结果是true,false and unknown 的结果是unknown,unknown and unknown 的结果是unknown。 not:not unknown 的结果是 unknown。

SQL中使用特殊的谓词null测试空值。

SELECT name
FROM instructor
WHERE salary IS NULL;

聚集函数

聚集函数是以值的一个集合(集或多重集)为输入,返回单个值的函数。SQL中提供了5个固有的聚集函数。

平均值:avg 最小值:min 最大值:max 总和:sum 计数:count

SQL不允许用count(*)时使用distinct

SELECT AVG(salary) AS avg_salary
FROM instructor
WHERE dept_name = 'Comp. Sci.';
distinct为去除重复函数。SELECT DISTINCT 列名称 FROM 表名称。 分组聚集:有时我们希望将单个函数作用在单个元组集上,而且也希望作用于一组元组集上,在SQL中可以使用group by子句实现这个愿望。group by 子句中给出一个或者多个属性是用来构造分组的。在group by子句中的所有属性上的取值相同的元组将被分在一个组中。
SELECT dept_name,AVG(salary) AS avg_salary
FROM instructor
GROUP BY dept_name;

having子句:having子句针对group by 子句构成的分组,其中的谓词在形成分组后才起作用。

SELECT dept_name,AVG(salary) AS avg_salary
FROM instructor
GROUP BY dept_name
HAVING AVG(salary) > 42000;
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇win10系统下安装mongodb及配置教程 下一篇SQLServer2005实现累加(代码教程..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目