国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 中的in-line view

2024-08-29 13:41:00
字體:
來源:轉載
供稿:網友

  Oracle一直以來就支持一種叫做“串聯視圖(in-line view)”的概念,其中子查詢SELECT可以出現在FROM子句中,就似乎它是表名一樣。
  
  下面是一個一般由DBA用來顯示表空間大小的Oracle查詢。注重它在FROM子句中使用了SELECT語句。這就叫做串聯視圖。
  
  select
    df.tablespace_name             "Tablespace",
    block_size                 "Block Size",
    (df.totalspace - fs.freespace)       "Used MB",
    fs.freespace                "Free MB",
    df.totalspace                "Total MB",
    round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
  from
    dba_tablespaces                ts,
    (select tablespace_name,
      round(sum(bytes) / 1048576) TotalSpace
     from dba_data_files
     group by tablespace_name)         df,
    (select tablespace_name,
      round(sum(bytes) / 1048576) FreeSpace
     from dba_free_space
     group by tablespace_name)         fs
  where
    ts.tablespace_name = fs.tablespace_name
  and
    df.tablespace_name = fs.tablespace_name(+)
  ;
  
  Tablespace Block Size Used MB  Free MB  Total MB Pct. Free
  --------------- ----------- -----------  ------------  -----------  ----------
  CWMLITE   4,096        6      14      20       70
  DRSYS     4,096        8      12      20       60
  EXAMPLE   4,096      153       0      153       0 
  INDX       4,096        0      25      25      100
  SYSTEM    4,096      241      84      325       26
  TOOLS      4,096       7       3      10       30
  TS_16K     16,384       3       7       10       70 
  UNDOTBS   4,096       1     199      200      100
  USERS      4,096       1       24      25       96
  
  到了Oracle9i,你可以往SELECT子句中直接添加子查詢。在下面的這個例子中我們將選出一個表的MAX值和AVG值以及具體的行數據。
  
  select
    (select max(salary) from emp)      highest_salary,
    emp_name                      employee_name,
    (select avg(bonus) from commission) avg_comission,
    dept_name
  from
    emp,
    (select dept_name from dept where dept = 'finance')
  ;
  
  你也可以直接地將子查詢放到插入語句的VALUES子句中:
  
  insert into
    max_credit
  (
    name,
    max_credit
  )
  values
  (
    'Bill',
    select max(credit) from credit_table where name = 'BILL'
  );
  
  注重標量子查詢有一些限制,在以下這些情況中不能使用:
  
  ● 某個列的默認值
  ● RETURNING子句
  ● 聚簇的哈希表達式
  ● 功能索引表達式
  ● 在列上的CHECK約束
  ● 觸發器的WHEN條件
  ● GROUP BY和HAVING子句
  ● START WITH和CONNECT BY子句
  
  標量子查詢為Oracle SQL提供了一個強大的新工具。雖然其語法比較晦澀有時候很難使用,但是標量子查詢能將幾個查詢組合到一個單獨的SQL單元中使它們可以在一個單獨的單元中被執行。這大大簡化了復雜的SQL計算。標量子查詢對于數據倉庫應用和那些需要復雜SQL查詢的數據庫來說尤其有用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平安县| 刚察县| 佳木斯市| 清远市| 兰州市| 宁强县| 景洪市| 丰原市| 忻州市| 郸城县| 宁远县| 深水埗区| 贵州省| 沈阳市| 赤壁市| 天全县| 伊宁市| 长顺县| 邯郸市| 西和县| 博湖县| 湘阴县| 曲沃县| 罗田县| 昌都县| 文水县| 柘荣县| 上犹县| 临朐县| 阿拉尔市| 巴林左旗| 射洪县| 三明市| 盖州市| 龙陵县| 宿迁市| 营山县| 六枝特区| 朝阳区| 宁明县| 车险|