精华内容
下载资源
问答
  • SELECT语句定义: 一个完成的SELECT语句包含可选的几个子句。SELECT语句的定义如下:   <SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>] [<HAVING clause>]...

    SELECT语句定义:

     一个完成的SELECT语句包含可选的几个子句。SELECT语句的定义如下:
     
    <SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>] [<HAVING clause>]
    
     [<ORDER BY clause>] [<LIMIT clause>]   
    
     SELECT子句是必选的,其它子句如WHERE子句、GROUP BY子句等是可选的。
    
     一个SELECT语句中,子句的顺序是固定的。例如GROUP BY子句不会位于WHERE子句的前面。
    

    SELECT语句执行顺序

      SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的,所以并不是从SELECT子句开始执行的,而是按照下面的顺序执行:
      
      开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果
    
      每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过
    

    SQL Select语句完整的执行顺序:

    1、from子句组装来自不同数据源的数据; 
    
    2、where子句基于指定的条件对记录行进行筛选; 
    
    3、group by子句将数据划分为多个分组; 
    
    4、使用聚集函数进行计算; 
    
    5、使用having子句筛选分组; 
    
    6、计算所有的表达式; 
    
    7、select 的字段;
    
    8、使用order by对结果集进行排序。
    

    SQL语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是第一出现的SELECT。SQL查询处理的步骤序号:

    (1) FROM <left_table>
    
    (3) <join_type> JOIN <right_table>
    
    (2) ON <join_condition>
    
    (4) WHERE <where_condition>
    
    (5) GROUP BY <group_by_list>
    
    (6) WITH {CUBE | ROLLUP}
    
    (7) HAVING <having_condition>
    
    (8) SELECT
    
    (9) DISTINCT
    
    (9) ORDER BY <order_by_list>
    
    (10) <TOP_specification> <select_list>
    

    以上每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只有最后一步生成的表才会会给调用者。如果没有在查询中指定某一个子句,将跳过相应的步骤。

    逻辑查询处理阶段简介:

      1、 FROM:对FROM子句中的前两个表执行笛卡尔积(交叉联接),生成虚拟表VT1。
    
      2、 ON:对VT1应用ON筛选器,只有那些使为真才被插入到TV2。
    
      3、 OUTER (JOIN):如果指定了OUTER JOIN(相对于CROSS JOIN或INNER JOIN),保留表中未找到匹配的行将作为外部行添加到VT2,
          生成TV3。如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的
          表位置。
    
      4、 WHERE:对TV3应用WHERE筛选器,只有使为true的行才插入TV4。
    
      5、 GROUP BY:按GROUP BY子句中的列列表对TV4中的行进行分组,生成TV5。
    
      6、 CUTE|ROLLUP:把超组插入VT5,生成VT6。
    
      7、 HAVING:对VT6应用HAVING筛选器,只有使为true的组插入到VT7。
    
      8、 SELECT:处理SELECT列表,产生VT8。
    
      9、 DISTINCT:将重复的行从VT8中删除,产品VT9。
    
      10、ORDER BY:将VT9中的行按ORDER BY子句中的列列表顺序,生成一个游标(VC10)。
    
        11、TOP:从VC10的开始处选择指定数量或比例的行,生成表TV11,并返回给调用者。
    
    展开全文
  • Selectwith语句

    千次阅读 2012-10-18 15:56:38
    锁定数据库的一个表 SELECT * FROM table WITH(HoldLock) 其他事务可以读取表,但不能更新删除 ...---- [SELECT 语句中“加锁选项”的功能说明] ---- NoLock(不加锁) 此选项被选中时,SQL Server 在读
    锁定数据库的一个表
    SELECT * FROM table WITH(HoldLock)
    其他事务可以读取表,但不能更新删除

    SELECT * FROM table WITH(TabLockX)
    其他事务不能读取表,更新和删除

    ---- [SELECT 语句中“加锁选项”的功能说明] ----

    NoLock不加锁
    此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。

    HoldLock保持锁
    此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。

    UpdLock修改锁
    此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。

    TabLock表锁
    此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。

    TabLockX 排它表锁
    此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。

    PagLock页锁
    此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。



    展开全文
  • Hive Select语句

    万次阅读 2016-04-24 21:49:30
    select Hive-SQL的基本结构同标准SQL相差不大,结构如下: select * from employee where sex_age.sex='Male' /*支持使用distinct去重*/ select distinct name,sex_age.sex as sex from employee; 在Hive-SQL中,...

    select

    Hive-SQL的基本结构同标准SQL相差不大,结构如下:

    select * from employee 
    where sex_age.sex='Male'
    
    /*支持使用distinct去重*/
    select distinct name,sex_age.sex as sex from employee;
    select distinct * from employee; // supported after release 1.1.0
    
    /*hive 0.7.0之后,支持having子句*/
    SELECT col1 FROM t1 GROUP BY col1 HAVING SUM(col2) > 10;
    
    /*支持limit子句,限制返回行数*/
    SELECT * FROM t1 LIMIT 5; // 随机返回5行
    
    /*返回Top K行*/
    SET mapred.reduce.tasks = 1
    SELECT * FROM sales SORT BY amount DESC LIMIT 5

    在Hive-SQL中,也支持嵌套查询及子查询,但是,不允许出现多重嵌套或多重子查询的情况,常用的子查询方式如下:

    /*通过with语句,子查询必须申明别名*/
    with t1 as (
    select * from employee 
    where sex_age.sex='Male'
    )
    select name,work_place from t1;
    
    /*子查询放置在from子句,子查询必须申明别名*/
    select name,sex_age.sex from
    (
    select * from employee 
    where sex_age.sex='Male'
    ) t1;
    
    /*
    子查询放置在where子句,在where子句中的子查询支持in,not in,exists,not exists,但需要注意的是,使用in或not in时,
    子查询只能返回一个字段,且使用in/not in不能同时涉及内/外部表
    */
    select name,sex_age.sex from
    employee a // 外部表必须申明别名,不然Hive报错
    where a.name in (
    select name from employee
    where sex_age.sex='Male'
    );
    
    /*
    ERROR: 
    in/not in不能同时涉及内/外部表,exists/not exists没有这个限制
    */
    select name,sex_age.sex from
    employee a
    where a.name in (
    select name from employee
    where sex_age.sex!=a.sex_age
    );

    另外,where子句可以支持任何Boolean表达式及User Define Function。

    Partition Based Queries

    想要触发hive的分区查询,必须满足以下两个条件:
    - 建表时使用了partitioned by
    - where条件中包含分区字段,或者join语句的on子句包含分区字段
    因为hive只会扫描特定分区的数据,所以,分区查询可以提高查询的速度。

    REGEX Column Specification

    hive支持通过正则表达式来声明查询字段。

    SELECT `(ds|hr)?+.+` FROM sales
    展开全文
  • 将2条select语句进行关联查询

    千次阅读 2018-07-20 21:06:48
    with tmp_tab_1 as (select * from( select f.id ID , f. fund_group_id FUND_GROVP_ID , f. fund_id FUND_ID , f. fund_percent FUND_PERCENT,u. fund_SHORT_NAME , n. status SALE_STATVS from T_...

    sql:

    
    with tmp_tab_1 as 
    (select * from(
      select f.id ID , f. fund_group_id FUND_GROVP_ID , f. fund_id FUND_ID , f. fund_percent FUND_PERCENT,u. fund_SHORT_NAME
       , n. status SALE_STATVS
      from T_PRD_FUNDGROUP_DETAIL f left join T_PRD_FUND u on f. fund_id = u. fund_CODE left join T_PRD_FUND_MANAGE n on
       u.fund_CODE = n.fund_id
      ) f1 where f1.id =2
    ),
    tmp_tab_2 as
    ( select * from (select t.id,t.fund_id ,g.group_name from t_prd_fund_manage t left join t_prd_fundgroup g on t. id=g. id)
    )
    select * from 
    (select * from tmp_tab_1 t where 1 = 1) t1
    left join
    (select * from tmp_tab_2 t where 1 = 1) t2
    on t1.id = t2.id
    

    范例:

    with tmp_tab_1 as 
    (
    select 1 id,'a' name,1 type from dual
    union all
    select 2 id,'b' name,1 type from dual
    union all
    select 3 id,'c' name,1 type from dual
    union all
    select 4 id,'d' name,2 type from dual
    union all
    select 5 id,'e' name,2 type from dual
    ),
    tmp_tab_2 as
    (
    select 1 id,'a' name,1 type from dual
    union all
    select 2 id,'b' name,1 type from dual
    union all
    select 3 id,'c' name,2 type from dual
    union all
    select 4 id,'d' name,2 type from dual
    union all
    select 5 id,'e' name,1 type from dual
    )
    select * from 
    (select * from tmp_tab_1 t where t.type = 1) t1
    left join
    (select * from tmp_tab_2 t where t.type = 1) t2
    on t1.id = t2.id

     

    展开全文
  • VHDL中with select when语法

    千次阅读 2021-01-12 17:31:16
    LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41A IS PORT(a,b,c,d,s0,s1:IN STD_LOGIC;y:OUT STD_LOGIC); END ENTITY MUX41A; ARCHITECTURE BHV OF MUX41A IS ...WITH S SELECT y<=a WHEN "00", .
  • SQL 的select 语句完整的执行顺序

    千次阅读 2018-08-05 18:34:28
    SQL Select 语句完整的执行顺序:  1、from 子句组装来自不同数据源的数据;  2、where 子句基于指定的条件对记录行进行筛选;  3、group by 子句将数据划分为多个分组;  4、使用聚集函数进行计算;  5、使用...
  • 第八章、 select语句的6大子句

    千次阅读 2019-08-03 19:35:15
    第八章 select语句的6大子句 8.1 6大子句顺序 (1)from:从哪些表中筛选 (2)where:从表中筛选的条件 (3)group by:分组依据 (4)having:在统计结果中再次筛选 (5)order by:排序 (6)limit:分页 ...
  • SQL的select语句完整的执行顺序

    千次阅读 多人点赞 2020-07-15 10:17:49
    SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选...
  • INSERT INTO SELECT语句概述和示例

    千次阅读 2020-07-22 11:54:08
    This article covers the SQL INSERT INTO SELECT statement along with its syntax, examples ... 本文介绍了SQL INSERT INTO SELECT语句及其语法,示例和用例。 In my earlier article SQL SELECT INTO State...
  • SQL SELECT INTO语句

    千次阅读 2020-07-26 18:22:02
    This article will cover the SQL SELECT INTO statement including syntax, parameters and use with multiple tables, filegroups and a WHERE condition 本文将介绍SQL SELECT INTO语句,包括语法,参数以及与...
  • 我的数据表里项很多,但是用mybaits中的xml配置文件select语句却只返回了几句话,之前我的代码是这样的:<select id="selectAll" resultType="entity.Transaction"> select * from transaction </select>其中...
  • PostgreSQL 中的 SELECT 语句的用法

    千次阅读 2019-08-05 21:51:52
    SQL语句是不区分大小写的。 SQL language is case insensitive. 按照惯例,我们用大写的形式来写SQL关键字,使得代码更容易阅读。 By convention, we will use SQL keywords in uppercase to make the code ...
  • with tmp as (select * from tb_name) –针对多个别名 with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), … –相当于建了个e临时表 with e as (select *...
  • SELECT语句基本语法

    千次阅读 2015-04-04 21:45:49
    1.SELECT语句基本语法 SELECT [ALL|DISTINCT] [TOP 表达式 [PERCENT][WITH TIES]] &lt;列名表&gt; [INTO 新表名] [FROM {&lt;表名列表&gt;}[,...n]] [WHERE &lt;条件&gt;] ...
  • SQL Select语句完整的执行顺序

    千次阅读 2018-01-14 14:34:20
    SQL Select语句完整的执行顺序:  1、from子句组装来自不同数据源的数据;  2、where子句基于指定的条件对记录行进行筛选;  3、group by子句将数据划分为多个分组;  4、使用聚集函数进行计算;  ...
  • sql server中select语句需要申请的锁

    千次阅读 2016-05-06 11:46:30
    以NA_...下面的查询语句,正常情况下会先使用IX_NA_TrafficMemberOrderRelation_usermobile索引进行查找,再返回聚集索引查找剩下的列 select * from NA_TrafficMemberOrderRelation where usermobile=
  • 关于SQL语句With的用法

    万次阅读 2017-02-16 14:04:28
    创建和使用 CTE 的指南 下列指南应用于非递归 CTE。有关适用于递归 CTE 的指南,请参阅后面的“定义和...也可以在 CREATE VIEW 语句中将 CTE 指定为视图中 SELECT 定义语句的一部分。 可以在非递归 CTE 中定义多
  • SQLserver基础语句大全

    万次阅读 多人点赞 2019-06-09 13:17:50
    SQL Select 语句的执行步骤【从 DBMS 实现者角度,这个对 我们用户意义不大】: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且...
  • select查询语句的30条优化建议

    千次阅读 2018-08-14 09:22:55
    工作中往往要对十分庞大的数据库进行查询,如果语句写的不到位,那速度可是会慢的吓人,甚至系统压根就没办法正常使用了,因此优化语句是每一个程序员必备的技能。以下是网上流传比较广泛的30种SQL查询语句优化方法...
  • In this article, we will learn different methods that are used to update the data in a table with the data of other tables. The “UPDATE from SELECT” query structure is the main technique for perfo.....
  • SELECT语句常用字句的用法

    千次阅读 2014-06-06 10:14:11
    SELECT语句的完整语法为:  SELECT[ALL|DISTINCT|DISTINCTROW|TOP]  {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}  FROM tableexpression[,…][IN externaldatabase]  ...
  • 【数据库SQL系列】sql语句执行顺序,你理解了吗

    万次阅读 多人点赞 2020-01-13 15:29:00
    记得前几年,还是初级的时候,面试官问到,请你讲一下sql语句的执行顺序。当时我以为就是按照sql的关键字排列顺序来执行的。当时说完,面试官心里估计已经直接pass我了吧。今天复习的时候,突然想起这个基础知识点,...
  • sql语句with用法

    千次阅读 2019-10-08 12:00:53
    with嵌套子查询用法 在比较复杂,数据量大的...可以用 with语句 构建临时表查询:具体用法如下: --只有一个临时表时 with tmp as ( select empno ,ename ,sal from db_hive.emp) select t.empno,t.ename,t.sal fr...
  • 数据库查询select with子句

    千次阅读 2015-02-25 11:40:19
    [SQL]提升查詢效率與避免LOCK發生 要提升SQL的查詢效能,一般來說大家會以建立索引(index)為第一考量。其實除了index的建立之外,當我們在下SQL Command時,在語法中加一段WITH (NOLOCK... (NOLOCK)的SQL SELECT 
  • Oracle with语句的用法

    千次阅读 2019-07-19 09:28:46
    Oracle with语句的用法 Oracle数据库中,使用with语句可以实现子查询,提高语句执行的效率,下文对with语句的用法作了详细的介绍,供您参考学习。 Oracle with语句是经常可以见到的语句,下面就为您详细介绍...
  • MySQL with语句小结

    万次阅读 多人点赞 2020-06-02 16:22:06
    这个blog我们来聊聊MySQL的with语句 对于逻辑复杂的sql,with可以大大减少临时表的数量,提升代码的可读性、可维护性 MySQL 8.0终于开始支持with语句了,对于复杂查询,可以不用写那么多的临时表了。 如需要scott...
  • AS 重命名 语句语法 计算表达式 执行函数 DISTINCT 去重 CONCAT 连接字符串 IFNULL 函数用法 例题
  • hive 语句with子查询的用法

    千次阅读 2020-08-26 18:38:20
    with...as...也叫做子查询部分,语句允许hive定义一个...必须和其他sql一起使用(可以定义一个with但在后续语句中不使用他) with...as...是一次性的 with...as...的完整格式是这样的 -- with table_name as(子查询..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 233,622
精华内容 93,448
关键字:

select语句with