ORACLE 横表与纵表】的更多相关文章

/* 在实际使用sql工作中总会碰到将某一列的值放到标题中显示.就是总说的行列转换或者互换. 比如有如下数据: ID NAME KECHENG CHENGJI -- ---------- -------------------- ------- 1 a 语文 80 2 a 数学 70 3 b 语文 40 4 b 数学 100 5 c 语文 90 6 c 数学 92 那末我要求显示的结果是: NAME YUWEN SHUXUE ---------- ---------------------- -…
一.横表和纵表 横表:通常指我们平时在数据库中建立的表,是一种普通的建表方式.       (主键.字段1.字段2......)如:时间.客户ID,基本通话费.漫游通话费,国内长途费.国际长途费..... 纵表:一般不多见,在表结构不确定的时候,如需增加字段的情况下的一种建表方式. 二.执行效率     横表:后台数据库管理员操作简单,直观,清晰可见,一目了然.但若要给横表中添加一个或者多个字段,就须重建表结构.     纵表:对于横表的弊端,纵表中只需要添加一条记录,就可以添加一个字段,所消耗…
回表 简单来说就是数据库根据索引找到了指定的记录所在行后,还需要根据rowid再次到数据块里取数据的操作. "回表"一般就是指执行计划里显示的"TABLE ACCESS BY INDEX ROWID". 例如select的字段里有索引不包含的列 根据tom的oracle编程艺术,建表big_table,300W数据. 建索引: create index idx_big_table_created on big_table(created); 下面语句不会回表,因为只…
使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UNPIVOT,则可以很容易的实现行列转换的需求. 在本文中我们将通过两个简单的例子详细讲解PIVOT和UNPIVOT的用法. PIVOT是行转列,用法如下: 假如表结构如下:      id  name quarter  profile      1     a        1         10…
oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 STUDENT_A 和 STUDENT_B create table STUDENT_A ( id ) not null, name ), age NUMBER, sex ) ); insert into STUDENT_A (id, name, age, sex) , '); insert in…
Oracle数据库的下一层逻辑结构并非数据表,而是表空间.每个数据表都属于唯一的表空间. 1.Oracle表空间 与数据表相同,Oracle表空间是一个逻辑对象,而非物理对象,是数据库的组成部分.当使用SQL语句对数据库进行操作时,操作的都是逻辑对象,而非直接操作物理文件.一个数据库可以有多个表空间,一个表空间可以有多个数据表. Oracle表空间的Oracle数据库高性能的保证,对于访问频繁的数据表,可以将其放入单独的表空间中,并存储与高性能磁盘:将其他访问较少的数据表规划于单独的表空间,并存…
Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id int NOT NULL AUTO_INCREMENT COMMENT '编号', parent_id varchar(64) NOT NULL COMMENT '父级编号', parent_ids varchar(2000) NOT NULL COMMENT '所有父级编号', name varchar(100) NOT…
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件.Oracle有一个很大的内存快,成为全局区(SGA…
问题描述: oracle 用PL/SQL DEVELOPER 可视化建表时,表名没有按照规范,建立一个非法格式的表 ICD-10th-Version (中间有横杆,非法).但是不知道怎么回事却建成功了.之后这表操作不了(增删改查)都不行.我想删除这表,但是都删不了.怎么办? SELECT * FROM ALL_TABLES t where t.owner='emr01' select * from all_objects where ....都可以查询到该表对象 尝试了一下删除语句: DROP…
在SQL Server 数据库中,我们在创建表之前删除表,有if exit()这样的语句,但是在oracle中却没有.如果直接使用drop table那么如果表不存在会报错,导致后续语句无法运行.因此可以通过一个存储过来来进行判断.如果表存在,则执行execute PROC_CREATE_INFO 即可代码如下: CREATE OR REPLACE PROCEDURE PROC_CREATE_INFO(P_TABLE_NAME IN USER_TABLES.TABLE_NAME%TYPE) IS…