zoukankan      html  css  js  c++  java
  • 几个SQL命令的使用

    几个SQL命令的使用 [原创 2006-4-21 14:22:05]   
    我顶 字号:  

     1.Update批量更改

    例如:A、B两个表,A,B有相同字段id,现将B中的b_passerd覆盖掉A中的

    a_password

    update A a1
       set a_password = (select b.b_password
                            from B b, A a                      

                         where a.id =b.id
                             and a1.id = a.id)

    2.删除重复记录

    最高效的删除重复记录方法 ( 因为使用了ROWID)


    DELETE FROM EMP E

    WHERE E.ROWID > (SELECT MIN(X.ROWID)

    FROM EMP X

    WHERE X.EMP_NO = E.EMP_NO);

    3.删除全表记录TRUNCATE替代DELETE

    当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短.

     TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML

    命令格式:TRUNCATE  TABLE  表名

    4.查询某用户下的所有索引,如DZDA下的所有索引

     select index_name,t.table_name,tablespace_name,initial_extent,next_extent
    from all_indexes t where owner='DZDA'

    5.修改某用户下的所有索引的表空间,如修改用户DZDA下的所有索引的表空间为JC,并重新构建所有索引

    select 'ALTER INDEX ' || t.index_name || ' REBUILD TABLESPACE JC;' from all_indexes t where owner='DZDA'

    SELECT 'ALTER INDEX ' || t.index_name || ' REBUILD;' from all_indexes t where owner='DZDA'

    6、查询某主键的重复记录
    select   t.tpayerid,t.selectcasetime, count(*)   from   JC_CASE_WAIT_ALLOT t     
      group   by  t.tpayerid,t.selectcasetime
      having   count(*)   >   1 

    7、显示的字段保留小数点后的n位小数

    select round(fieldname,2)  from a

    表a中fieldname列取小数点后2位小数

  • 相关阅读:
    Oracle PL/SQL攻略
    Android数据库中查找一条数据 query方法详解
    验证视图MAC失败 Validation of ViewState MAC Failed
    长方体类
    用类的友元函数完成运算符的重载
    全国软件2. 三人年龄
    Android中实现带声音提示的Toast (自定义扩展Toast)
    js判断生效时间不得大于失效时间
    OpenGL运用辅助库创建规则几何对象
    Ubuntu13.04安装CUDA5.0
  • 原文地址:https://www.cnblogs.com/isoftware/p/3763641.html
Copyright © 2011-2022 走看看