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位小数

  • 相关阅读:
    C++入门经典-例3.4-根据成绩划分等级
    C++入门经典-例3.3-if-else语句的奇偶性判别
    C++入门经典-例3.2-根据分数判断是否优秀
    C++入门经典-例3.1-判断输入的数字是否为奇数
    C++入门经典-例2.17强制类型转换
    C++入门经典-例2.16-隐式类型转换
    C++入门经典-例2.15-逗号表达式的应用
    C++入门经典-例2.14-使用移位运算
    C++入门经典-例2.13-左移运算
    Spring之Bean管理------注解方式
  • 原文地址:https://www.cnblogs.com/isoftware/p/3763641.html
Copyright © 2011-2022 走看看