设为首页 加入收藏

TOP

数据库sql语句学习
2019-05-11 00:20:08 】 浏览:66
Tags:数据库 sql 语句 学习
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_26566137/article/details/80550139

嵌套子查询:
(1)select … from … where
子查询可以在where里面,也可以在from里面;因为他们后面跟的就是一组特定的关系,而我们子查询即sql语句就表达了一种关系;

(2)with的用法
with table1(column1,column2) as select … from…where select … from table1
with是创建一个临时的关系,相比用常规的sql语句而言,更简洁易懂;

(3)同时,在with当中定义的表也可以在后面子查询中用,注意如果名称不一样,则以子查询中的表为准,类似于编程语言中的局部变量。
(4)视图定义
视图关系在概念上包含查询结果中的元组,但并不
进行预计算和存储。相反,数据库系统存储与视图关系相关联的查询表达式。当视图关系被访问时,其中的元组是通过计算查询结果而被创建出来的。
create view departments_total_salary(dept_name,total_salary) as select dept_name,sum(salary) from instructor group by dept_name
一旦视图关系出现在查询中,它就被已存储的查询表达式代替。因此,无论我们何时执行这个查询,视图关系都被重新计算。

通过视图更新原关系表必须满足以下4个条件:
1)from子句中只有一个数据库关系;
2)select子句中只包含关系的属性名,不包含任何表达式、聚集或distinct声明;
3)任何没有出现在select子句中的属性可以取空值;即这些属性上没有not null约束,也不构成主码的一部分。
4)查询中不含有group by或having子句。
尽管满足上述条件后可以通过视图更新原表,但是有些时候更新原表后不满足视图中的条件也不会被显示出来。
最近疑惑:
spark的hdfs上面保存的csv经过-getmerge合并传到本地,含有多个标题,背后的原因?解决方案——手动过滤;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux CentOS6.6下编译安装MySQL .. 下一篇MR的案例:求每个部门的工资总额

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目