开发中常用的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;

     

【离散数学】搜集、并搜集、交搜集、求A = {{Φ, 2}, {2}}的并搜集和交搜集

做题的时候发现一个叫“搜集”的名词…… 不知道是什么意思…… 后来才在书上找到…… 集合的概念:集合在某些场合又称为类、族或搜集。 【手动再见- -||】 并搜集和交搜集的概念: 简而言...
  • liuchuo
  • liuchuo
  • 2016年07月21日 19:47
  • 629

常用sql搜集

去重(根据title字段删除重复的,只保留重复项中最小id的数据)delete from tencent_news where id not in (select minid from (select...
  • lk7688535
  • lk7688535
  • 2017年10月30日 16:47
  • 106

Sql语句常用关键字

--语 句              功 能--数据操作SELECT   --从数据库表中检索数据行和列INSERT   --向数据库表添加新数据行DELETE   --从数据库表中删除数据行UPDA...
  • kenkao
  • kenkao
  • 2009年10月17日 14:38
  • 5110

软件测试中常用的SQL语句

查询语句语法格式:SELECT    [ALL | DISTINCT | DISTINCTROW ]      [HIGH_PRIORITY]      [STRAIGHT_JOIN]      [S...
  • winteroak
  • winteroak
  • 2009年12月01日 13:23
  • 3523

Java开发中三种常用集合

开发中常用的三种集合 1.    Java.util包中List接口 List是有序集合(也称为序列 )。用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并...
  • Ezreal_geng
  • Ezreal_geng
  • 2017年06月17日 23:33
  • 237

开发中常用英文单词

2016-11-19 -----------------------------------------------------------------------------------------...
  • wjarvis
  • wjarvis
  • 2016年11月19日 12:45
  • 963

浅谈开发中常用的设计模式

设计模式在开发中占很重要的地位。在大型项目中使用好设计模式往往会取得事半功倍的效果。本篇博客就介绍下几种在开发中常用到的设计模式。设计原则先看下一些约定俗成的设计原则,其实要遵守以下所有原则很难,但开...
  • u014486880
  • u014486880
  • 2016年04月12日 00:21
  • 7151

常见SQL注入语句

1.判断有无注入点   ; and 1=1 and 1=2   2.猜表一般的表的名称无非是admin adminuser user pass password 等..   and 0   a...
  • JBxiaozi
  • JBxiaozi
  • 2012年04月12日 10:18
  • 973

软件测试中常用的SQL语句(初级篇)

软件测试人员对数据库需要熟悉的常用操作语句就是增删改查。 新增记录语句 语法格式: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]...
  • smj811504083
  • smj811504083
  • 2017年01月10日 15:05
  • 2086

常用的SQL语句

 删除数据库中表的某些相同的某些记录 OR 查找数据库的表中的相同记录 一、删除数据库中表的某些相同的某些记录delete from tablename where only_Id not in(se...
  • changemyself
  • changemyself
  • 2006年10月19日 22:36
  • 4617
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发中常用的sql搜集
举报原因:
原因补充:

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