ORACLE中常用的知识点


ORACLE中常用的知识点

一:oracle的导入导出

1. 导入

IMP 用户名/密码@数据库名称  file=数据库存储地址  fromuser=指对方数据库用户名  touser=指你的数据库的用户名

//例如:
  imp AA_AA/kingo@ORCLE  file=D:\AA_AA_dmp.DMP  fromuser=BB_BB touser=AA_AA

2. 导出

EXP 用户名/密码@数据库名称  将要保存的地址

//例如:
 exp  AA_AA/kingo@ORCLE    file=E:\xxxx.dmp

二:oracle中的时间转换

1. 将 2016-5-20 10:30 转换为 2016-5-20

to_char(to_date(a.rdt,'yyyy-mm-dd,hh:mi'),'yyyy-mm-dd') as sj

2. 将2015/5/7 转换为2015-5-7

to_char(m.fbsj,'yyyy-MM-dd') as sj

三:查询排序

1. rownum

  1. 查询前10条数据,oracle中不支持top,应用rownum
    select * from (
    select rownum as nums, x.xxzt,x.fssj, x.id from OA_FXX  x  order  by x.fssj desc
                   ) w where w.nums<9    

2. 排序

  1. rownum和row_number()排序
    select **rownum** as num, v.*  from V_OA_GWCXLB v

    select  **row_number() over (order by LRSJ desc)** as nums,
m.* from OA_XZMK m
  1. 按照笔划排
    select * from dept order by **nlssort(name,'NLS_SORT=SCHINESE_STROKE_M')**; 
  1. 按照部首排序
    select * from dept order by **nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M')**;
  1. 按照拼音排序,此为系统的默认排序方式
    select * from dept order by **nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M')**;

四:csae…when 和decode()的用法

DECODE 与CASE WHEN 的比较:
1、DECODE 只有Oracle 才有,其它数据库不支持;
2、CASE WHEN的用法, Oracle、SQL Server、 MySQL 都支持;
3、DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,<,<=,<>,is null,is not null 等的判断;
4、DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活;

1、 case….when的用法

    to_char(case h.sf_crfs when '02' then '挂牌' when '03' then '招标' else '拍卖' end) as crfs

2. decode()的用法

用法:  decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)  

注释:
        if (条件==值1)
        then    
        return(翻译值1)
        elsif (条件==值2)
        then    
        return(翻译值2)  

例如: decode( x.gdzmj_dw,0,x.gdzmj,1,(x.gdzmj*15)) as gdzmj 

五: oracle中行转列函数WMSYS.WM_CONCAT()用法

  1. 将查询出来的字段用 “,” 拼接起来。期望结果:
id cname pname
1 百度 技术部,市场部
2 Google 研发部
    select WMSYS.WM_CONCAT(to_char(TDYTXL)) as tdyt_name  From tdgy_dkyt t 

四:oracle表中的一些修改

1. 修改表中字段的长度

用法: alter table 表名 modify 字段名 NVARCHAR2(200)

例子: alter table TDGY_JBXX modify pzbh NVARCHAR2(200)

2. 修改表中字段的名称

用法: alter table 表名rename column 原字段名 to 新字段名 

例子: alter table test  rename column aa to bb

你可能感兴趣的:(ORACEL)