网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle专家调优秘密.
.剖析:Oracle融合中间件为何会全.
.ExactPapers Oracle 1Z0-122 200.
.双机热备实战完全手册.
.对进行INFORMIX进行Update Stati.
.在Linux下管理磁盘.
.Oracle数据库技术(35).
.存储管理——深入Oracle 9i核心.
.如何查询redo logfile的使用率.
.利用 Ghost 复制您的Linux 系统.
.Oracle PL/SQL语言初级教程之完整.
.如何对CLOB字段进行全文检索?.
.Fravo Oracle 1Z0-007 v1.0.
.oracle与unix时间的转换.
.大型数据库信息排错一法.
.一个比较全的simsun.ttf字体设置.
.Web应用开发工具 —— WebDB介绍.
.Oracle 10g 中管理物化视图变得更.
.教你轻松掌握Oracle RAC静默安装.
.Oracle数据库的空间管理.

使CREATETABLEASSELECT能支持ORDERBY

发表日期:2008-2-9


大家都知道,“CREATE TABLE AS SELECT”这个SQL命令并不支持“ORDER BY”,但假如我们想增加一个表,它存储的是已经排列过的一组数据,这些数据来自一个现有表,该怎么办呢?
  哈哈,可以通过先建立一个VIEW,然后再CREATE,是不是一个不错的想法,看看下面的这篇文章,对你或许有用。
  
  一般情况下,对一个TABLE中的数据进行分类排序后有利于优化数据库的查询性能。
  
  例如:你的应用程序需要频繁的执行一个查询
  SELECT * FROM EMP WHERE NAME LIKE ‘M%’;
  
  假如EMP表中的所有行都被他们的的名字排了序,那么你的查询将会有显著提高。因为NAME中所有包含‘M’的行都被存储在了一起,Oracle在查询数据时仅仅从表中取得很少的DATA BLOCKS。当然,假如你的TABLE中的数据是静态的,那么这个很好办到,即在你CREATE TABLE时按照顺序INSERT即可。但是往往我们的TABLE中的数据时常要更新,而SQL又不支持带ORDER BY 字句的INSERT INTO ... SELECT ... FROM ...和CREATE TABLE AS SELECT ... FROM ...命令,于是只能放弃固有的排序了,结果当数据达到十几万条记录时,查询性能就显著的下降了。如何处理这样的问题呢,有两个解决的方法。
  
  这里提供一个方法,通过GROUP BY操作来完成。
  
  CREATE VIEW EMPGROUP AS
  SELECT NAME,EMPID,HIREDATE,ROWNUM FROM EMP
  GROUP BY NAME, EMPID, HIREDATE,ROWNUM;
  
  然后用这个VIEW来增加一个TABLE
  
  CREATE TABLE SORTED_EMP AS SELECT NAME, EMPID, HIREDATE FROM EMPGROUP;
  
  注重:
  1、假如你使用ORACLE7.3以上版本,可以使用INLINE VIEW代替EMPGROUP VIEW。
  
  2、假如你建VIEW时忽略了ROWNUM,那么由于使用了GROUP BY,会有大量的重复记录出现。
  
上一篇:RESETLOGS后没有备份情况下的数据恢复 人气:573
下一篇:ORACLE特殊包和DBMS_Job包的用法 人气:581
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐