sql 子查询多于一个!SQL子查询

来源:互联网 发布:263云通信企业版mac 编辑:程序博客网 时间:2024/05/21 22:49

一:◎单行子查询:归回一行一列结果到外部查询
  ◎多行子查询:归回多行结果
  ◎多列子查询:归回多列结果
  ◎相干子查询:援用外部查询中的一列。对于外部查询中的每行执行一次子查询。
  ◎不相干子查询:首先执行子查询,然后将值传递给外部查询。
  ◎子查询可用于select、from、where、having子句中,后二者用的最多。
  ◎如果用于where或having子句,则该子查询只能位于比较运算符(分为数学比较运算符=<和其它比较运算between,in,like,is null)的左面。
  ◎如果用于select子句,则必是单行子查询。
  ◎子查询本身就是一个完整的查询,即至少包含select from子句。
  ◎子查询不能包含order by子句。
  ◎子查询必须包孕在一组括号中。
  ◎如果在select子句中随组函数据排列出了某个字段,那么必须也在group by 子句中列出这个字段。
  二:第六章.子查询
  目标:
  定义子查询
  列出子查询的类型
  写单行和多行子查询 要端:
  1.子查询的语法和使用原则
  SELECT select_list
  FROM table
  WHERE expr operator(SELECT select_list
  FROM table);
  子查询(内查询) 在主查询以前执行一次;
  子查询的结果被用于主查询(外查询);
  子查询可被放置在select、from、where、having子句中;
  另外,子查询可以被放在 CREATE VIEW 语句中、CREATE TABLE 语句、
  UPDATE 语句、INSERT 语句的 INTO 子句和 UPDATE 语句的 SET 子句中;
  子查询放在圆括号中;
  将子查询放在比较前提的右边;
  在子查询中的ORDER BY 子句不需要,除非正在执行Top-N 分析;
  在单行子查询顶用单交运算符,在多行子查询顶用多交运算符;
  Oracle 服务器没有强制限制子查询的数目;限制只与查询所需的缓和冲突区巨细有关;
  子查询和父查询可从不同的表中取值
  2.单行子查询
  仅归回一行,使用单行比较符(等于,大于小于,大于等于,小于等于,不等于);
  单行子查询的一个常见错误是单行子查询归回多于一个的行;
  另一个问题是子查询没有归回行,但这样不会报错,会提醒:no rows selected
  3.多行子查询
  归回多行,使用多行比较符(in,any,all)
  <ANY 意思是小于最大值, >ANY 意思是大于最小值, =ANY 等同于 IN;
  <ALL 意思是小于最小值, >ALL 意思是大于最大值;
  当使用 SOME 或 ANY 时,通常用 DISTINCT 要害字防止归回被多次选择的行;
  NOT 运算符可以与 IN、ANY 和 ALL 运算符一起使用;

原创粉丝点击