• 几个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位小数

  • 相关阅读:
    php文件 基本语法
    DBDA类 连接数据库 返回Json 返回字符串
    全选复选框做法
    弹窗js
    AJAX
    弹窗JS CSS
    JavaScript
    链接数据库 类
    PHP 分页 查询
    Foreach嵌套Foreach
  • 原文地址:https://www.cnblogs.com/isoftware/p/3763641.html
Copyright © 2020-2023  润新知