`
文章列表
      Model子句是在Oracle数据库10g版本中引入的,提供了一个很好的替代电子表格的方法。通过Model子句,可以使用SQL语句中的一些很强大的功能,如聚合、并行、以及多维、多变量分析。如果你喜欢使用excel的电子表格来进行公式计算,你同样也会乐于使用model子句。由于model子句是SQL语言应用的一个扩展,其可扩展性是很强的,近似于oracle数据库的可扩展性。超过几百万行数据的多维、多变量计算,如果不是10亿级数据量的话,可以很容易地通过model子句来实现,而电子表格就不行。同时,很多数据库特性如对象分区以及并行执行都可以在model子句中高效地应用,从而进一步提高了可 ...

rowid详解

rowid是一个用来唯一标记表中行的伪列。它是物理表中行数据的内部地址,包含两个地址,其一为指向数据表中包含该行的块所存放数据文件的地址,另一个是可以直接定位到数据行自身的这一行在数据块中的地址。   具体如下: select rowid, (select file_name from dba_data_files where file_id = dbms_rowid.rowid_to_absolute_fno(s.rowid, ...
  oracle 体系结构图  
    在SQL*Plus中,你可以通过设置autotrace选项来在执行SQL命令的同时,自动的获得语句的执行计划和附加的统计信息。AUTOTRACE是一个很出色的Oracle SQL语句的诊断工具,与Explain plan不同的是这条SQL是实际执行了的,同时AUTOTRACE使用起来也极为方便。   Autotrace命令:            1. SET AUTOTRACE OFF 此为默认值,即关闭Autotrace          2. SET AUTOTRACE ON EXPLAIN 只显示执行计划          3. SET AUTOTRACE O ...
1. union 2. union all 3. minus 等于 not exists 如下: select * from test_employees e where not exists (select * from test_employees2 e2 where e.id = e2.id); select * from test_employees minus select * from test_employees2; 4. intersect 等于 exists sel ...
1、聚簇因子(Clustering factor)      索引行的存储顺序与表中行的存储顺序之间的相似程度。        当相似度高时,这些数据行就会密集地存储在相对较少的数据块中,这是聚簇因子比较好的情况。Oracle中,对于同一个 ...
create table TEST_EMPLOYEES(ID NUMBER,NAME NVARCHAR2(50),SALARY NUMBER); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (1, '张三', 8000); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (2, '李四', 7000); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (3, '王五', 9000); cr ...
 建表如下:    create table TEST_GROUP(NAME VARCHAR2(20),CLASS VARCHAR2(10),KEMU VARCHAR2(4),CHENGJI VARCHAR2(3)); insert into TEST_GROUP (NAME, CLASS, KEMU, CHENGJI) values ('张三', '1班', '数学', '90'); insert into TEST_GROUP (NAME, CLASS, KEMU, CHENGJI) values ('张三', '1班', '语文', '68'); insert into TE ...
      Lag 和Lead 函数可以在一次查询中取出同一字段的前N行 的数据和后N行 的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。        语法:Lead (expression, offset, default) over(partition-clause order-by-clause)       参数说明:              offset 偏移,表示查询其后第n条记录, 如果不提供这个参数,就是默认为1;             default 默认值,如果没有找到。如果没有设置,且 ...
first_value函数返回结果集中排在第一位的值 语法:first_value(expression) over(partition-clause order-by-clause windowing-clause)   建表语句: create table SMALL_CUSTOMERS(CUSTOMER_ID NUMBER,SUM_ORDERS NUMBER); insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 10); insert in ...
rank,dense_rank,row_number 函数都是为每条记录产生一个从1开始至N的自然数,N的值可能小于等于记录的总数。这3个函数的唯一区别在于,当碰到相同数据时的排名策略。   语法:rank() over(partition-clause order-by-clause)   rank: rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条记录排名之间空出排名。 dense_rank: dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据 ...
ratio_to_report函数是某个值占总值的百分比。   建表: create table SMALL_CUSTOMERS(CUSTOMER_ID NUMBER,SUM_ORDERS NUMBER); insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 10); insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 20); insert into SMALL_CUSTOME ...
create table TEST_EMPLOYEES(ID NUMBER,NAME NVARCHAR2(50),SALARY NUMBER); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (1, '张三', 8000); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (2, '李四', 7000); insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (3, '王五', 9000); create table T ...
1.首先建表如下: create table TEST_LINE_TO_COL(ID NUMBER,NAME NVARCHAR2(50),COURSE NVARCHAR2(20),SCORE NUMBER); insert into TEST_LINE_TO_COL (ID, NAME, COURSE, SCORE) values (1, '张三', '语文', 65); insert into TEST_LINE_TO_COL (ID, NAME, COURSE, SCORE) values (2, '张三', '数学', 85); insert into TEST_LI ...
建表语句:   create table ORDERS(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   create table small_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   create table medium_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER); create table large_customers(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   create ta ...
Global site tag (gtag.js) - Google Analytics