(数据结构判断题)在SQL的嵌套查询中,查询操作的次序总是由里向外(判断正误,并说明理由给出解释)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(数据结构判断题)在SQL的嵌套查询中,查询操作的次序总是由里向外(判断正误,并说明理由给出解释)相关的知识,希望对你有一定的参考价值。
在SQL的嵌套查询中,查询操作的次序总是由里向外(判断正误,并说明理由给出解释)
楼主好,正确的,这道题首先你需要知道什么是嵌套查询。所谓嵌套查询,就是在一个查询得到的结果集之上再次进行查询。说白了也就是你如果想执行外层查询,你就一定需要先得到内部的结果集。所以SQL在执行的时候,必须要先得到子查询的结果,才能把子查询的结果集当成表,再次查询处理。例如:select * from
(select sum(b) as A from table where a='A') a
where a.A>100
这个查询,如果你想得到结果,数据库一定先计算select sum(b) as A from table where a='A',否则不行 参考技术A 嵌套查询就是按照从里向外的顺序进行查询的 参考技术B 正确,规定啊!
HiveQL SELECT语句查询
参考技术A HIVE总是按照从左到右的顺序执行的。嵌套SELECT 语句会按照要求执行“下推”过程,在数据进行连接操作之前会先进行分区过滤。
SELECT 和WHERE 语句中不能引用到右边表中的字段。
select是SQL中的射影算子。From子句标识了从哪个表、视图、嵌套查询中选择记录。
SELECT:指定了要保存的列以及输出函数需要调用的一个或多个列。
比如例子一表stocks中选择symbol列和所有列名以price为前缀的列:
SELECT symbol,'price.*' FROM stocks;
用户不但可以选择表中的列,还可以使用函数调用和算术表达式操作列值。
employees表查询:
SELECT upper(name),salary,deductions["Federal Taxes"],round(salary * (1- deductions["Federal Taxes"])) FROM employees;
可以通过设置属性hive.map.aggr值为true来提高聚合的性能。
SET hive.map.aggr=ture;
查询employees表有多少员工,以及他们的平均薪水: SELECT count(*),avg(salary) FROM employees;
SELECT count(DISTINCT symbol) FROM stocks;
SELECT count(DISTINCT ymd),count(DISTINCT volume) FROM stocks;
与聚合函数相反就是表生成函数,其可以将单列扩展成多列或者多行。
典型的查询会返回多行数据,limit子句用于限制返回的函数。
列别名:返回一个由新列组成的新的关系。
SELECT name,salary,
CASE
WHEN salary <50000.0 THEN 'low'
WHEN salary >= 50000.0 AND salary < 70000.0 THEN 'middle'
WHEN salary >= 70000.0 AND salary < 100000.0 THEN 'high'
ELSE 'very high'
END AS bracket FROM employees;
SELECT *
FROM employees
WHERE coutry ='US' AND state='CA' LIMIT 100;`
SELECT *
FROM employees
WHERE address.street LIKE '%Ave.';
SELECT a.ymd,a. ,b.price_close
FROM stocks a JOIN stocks b
ON a.ymd=b.ymd
WHERE a.symbol='AAPL' AND b.symbol='IBM';
SELECT s.ymd,s.symbol,s.price_close,d.dividend
FROM stocks s LEFT OUTER JOIN dividends d ON s.ymd=d.ymd AND s.symbol=d.symbol
WHERE s.symbol = 'AAPL'
SELECT s.ymd,s.symbol,s.price_close,d.dividend
FROM stocks s RIGHT OUTER JOIN dividends d ON s.ymd=d.ymd AND s.symbol=d.symbol
WHERE s.symbol = 'AAPL'
SELECT s.ymd,s.symbol,s.price_close,d.dividend
FROM stocks s FULL OUTER JOIN dividends d ON s.ymd=d.ymd AND s.symbol=d.symbol
WHERE s.symbol = 'AAPL'
SELECT s.ymd,s.symbol,s.price_close
FROM stocks s
WHERE s.ymd,s.symbol IN (SELECT d.ymd,d.symbol FROM dividends d);
SELECT s.ymd,s.symbol,s.price_close
FROM stocks s LEFT SEMI JOIN dividends d
ON s.ymd=d.ymd AND s.symbol = d.symbol;
以上是关于(数据结构判断题)在SQL的嵌套查询中,查询操作的次序总是由里向外(判断正误,并说明理由给出解释)的主要内容,如果未能解决你的问题,请参考以下文章