开发中常用的sql搜集

原创 2011年01月22日 11:12:00

1.  重复记录问题
 
   显示所有的重复记录
    Select * From 表
 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段
    Having Count(*)>1)
 
    过滤重复记录(只显示一条)
 Select * From 表 Where ROWID In (Select Max(ROWID) From 表 Group By 重复字段)
 注:此处显示ID最大一条记录

2.  业务实体和数据库映射sql

 select ' /*'||c.comments ||'*/'||chr(10)||' private '|| decode(o.DATA_TYPE,'DATE','java.util.Date',
       'NUMBER','Long',
       'CHAR','String',
       'VARCHAR2','String',' none ')||'  ' ||lower(o.COLUMN_NAME)||';'
 as 域成员
 from User_Tab_Columns o,USER_COL_COMMENTS c
 where o.table_name = 'TABLE_NAME_UPPER'--填写需要映射的表名(此处表名要大写)
 and o.TABLE_NAME=c.table_name
 and o.COLUMN_NAME=c.column_name
 order by o.COLUMN_NAME;

  例如:

  /*主要负责人*/
  private String  man_charge;

3. 数据导入导出问题

 将数据库TEST完全导出,用户名system 密码manager 导出到D:/daochu.dmp中
    exp
system/manager@TEST file=d:/daochu.dmp full=y
 将数据库中system用户与sys用户的表导出
    exp
system/manager@TEST file=d:/daochu.dmp owner=(system,sys)
 将数据库中的表inner_notify、notify_staff_relat导出
    exp
aichannel/aichannel@TESTDB2 file= d:/data/newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
 数据导入的例子
 ---imp
username/password@SID file=XXX.dmp fromuser=XXX touser=XXX tables=(XXX,XXX)
 imp
scott/tiger@orcl file=e:/ppm2010.dmp tables=(Iss_affiche_list,wd_crm_zg_exp)
 
4.  字符集问题

 --数据库服务器字符集
 select * from nls_database_parameters;

 --客户端字符集环境
 select *
   from nls_instance_parameters t
  where t.parameter = 'NLS_CHARACTERSET';

 --会话字符集环境  
 select *from nls_session_parameters
    
    alter database character set zhs16gbk;

5.  如何把表数据导出为excel?
 
     可以通过如下的sql文件来完成
 
     set linesize 200 ;

  set term off verify off feedback off pagesize 999; 

  set markup html on entmap ON spool on preformat off;

  spool C:/tables2.xlsx;

  select * from s_emp;

  spool off;

  exit;
   
6.  查询表结构详细信息
 SELECT A.COLUMN_ID 序号,
     A.TABLE_NAME 表名称,
     B.COMMENTS 表描述,
     A.COLUMN_NAME 名称,
     C.COMMENTS 显示说明,
     A.DATA_TYPE 类型,
     A.DATA_LENGTH 长度,
     A.COLUMN_ID 序号,
     DECODE(C.COMMENTS,
      '主键',
      '主键:PK_' || C.TABLE_NAME,
      '外键',
      '外键名:;',
      C.COMMENTS) 说明
   FROM USER_TAB_COLUMNS A, USER_TAB_COMMENTS B, USER_COL_COMMENTS C
  WHERE A.TABLE_NAME = 'USER_TABLE_NAME'
    AND A.TABLE_NAME = B.TABLE_NAME
    AND A.TABLE_NAME || A.COLUMN_NAME = C.TABLE_NAME || C.COLUMN_NAME
  ORDER BY 1;
 
7.  查看函数,存储过程等对象

 select text from user_source  
 where  name='TEST'  
 order  by line;  


8.  赋权语句

    比如,存储过程调试需要赋予权限: grant debug connect session to user

 
9.  Decode语句例子

     select
   a.id,
   a.viewname,
   decode(a.sts,'Y','有效','N','失效') sts,
   b.name
  from s_user a
 
10.  如何查看各个表空间占用磁盘情况
 select
   b.file_id 文件ID号,
   b.tablespace_name 表空间名,
   b.bytes 字节数,
   (b.bytes - sum(nvl(a.bytes, 0))) 已使用,
   sum(nvl(a.bytes, 0)) 剩余空间,
   sum(nvl(a.bytes, 0)) / (b.bytes) * 100 剩余百分比
    from dba_free_space a, dba_data_files b
    where a.file_id = b.file_id
    group by b.tablespace_name, b.file_id, b.bytes
    order by b.file_id;
 
11. 查询数据库表空间信息

 select a.a1 表空间名称,
     c.c2 类型,
     c.c3 区管理,
     b.b2 / 1024 / 1024 表空间大小M,
     (b.b2 - a.a2) / 1024 / 1024 已使用M,
     substr((b.b2 - a.a2) / b.b2 * 100, 1, 5) 利用率
   from (select tablespace_name a1, sum(nvl(bytes, 0)) a2
     from dba_free_space
    group by tablespace_name) a,
     (select tablespace_name b1, sum(bytes) b2
     from dba_data_files
    group by tablespace_name) b,
     (select tablespace_name c1, contents c2, extent_management c3
     from dba_tablespaces) c
  where a.a1 = b.b1
    and c.c1 = b.b1;
   
12.  数据文件信息

 select b.file_name 物理文件名,
       b.tablespace_name 表空间,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
 group by b.tablespace_name, b.file_name, b.bytes
 order by b.tablespace_name
 
13.  Oracle支持多少并发用户数
show parameter processes ;

 

14. sql如何获得用户IP?
select sys_context('userenv','ip_address') from dual;

 

15. 数据库日期操作

    修改数据库日期形式

 alter session set nls_date_format='yyyymmddhh24miss';

    如何获得当月第一天日期

     select trunc(sysdate,'month')  from dual;

    如何查询某天的数据?

    select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');

 

16. Oracle分页sql

      select *
      from (select b.*, rownum rownum_
               from (select a.* from Iss_affiche_list a) b
               where rownum >= 0)
      where rownum_ <10;

     

相关文章推荐

SQL开发中常用的语句总结

  • 2015年05月10日 13:48
  • 97KB
  • 下载

Web开发中常用的SQL语句

  • 2010年07月29日 10:04
  • 66KB
  • 下载

常用的PL/SQL开发原则 by dbsanke

在微博上看到dbsnake 有一个培训,因为是在北京举办的,过去不。所以问dbsnake 能否把相关的文档传我一份。 dbsnake 邮件给我时说有些东西没有写到文档里。 这个文档也是dbsnake ...

ORACLE数据库开发常用sql查询

  • 2011年12月26日 20:05
  • 1.17MB
  • 下载

常用SQL汇总,Java开发工作高频数据库语句

    对于一个开发人员,写SQL语句就像吃饭一样频繁,但是总有那么几个菜,吃来吃去,吃的频率很高,但是怎么很好的去吃,烧着吃,炒着吃,菜里面包含哪些营养物质,不是很懂,或者理解,认识的不是很深...

MS-SQL数据库开发常用汇总

MS-SQL数据库开发常用汇总 1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_c...

java开发中常用的SQL语句

在实际开发过程中常用的sql语句, 以user_table为例。 1)创建语句如下: CREATE TABLE USER_TABLE (USER_ID VARCHAR2(8), USER_NAME ...

mybatis之入门到开发(三)之常用对象SqlSessionFactory和SqlSession,动态sql,输入映射和输出映射

一:Mybatis的常用对象SqlSessionFactory和SqlSession 1、SqlSessionFactory : 它是Mybatis的关键对象,是单个数据库映射关系经过编译后的内存镜...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发中常用的sql搜集
举报原因:
原因补充:

(最多只允许输入30个字)