A.alter命令相關:
1、更換列名,增加列,修改列類型,更換表名
ALTER TABLE (表名) ADD (列名 數據類型);
ALTER TABLE (表名) RENAME (列名) TO (新列名);
ALTER TABLE (表名) MODIFY (列名 數據類型);
ALTER TABLE (當前表名) RENAME TO (新表名);
2、更換表空間,索引空間
alter table (tablename) move tablespace (spacename);
alter index (indexname) rebuild tablespace (spacename);
3、增加分區,刪除分區,刪除分區數據
alter table [tname] add partition [parname] values('') tablespace [spname]; (列表分區類型,由於分區字段已經在建表時指定,此處僅指定對應值
值域分區的情況要考慮到邊界分區的情況,可以採用對邊界分區split 的形式進行添加:
alter table custaddr split partition p_other values('552') into (partition t_list552 tablespace icd_service, partition p_other tablespace icd_service);
表已更改。
--注意這裏紅色的地方,如果是Range類型的,使用at,List使用Values。
詳細參考
http://blog.csdn.net/hijiankang/article/details/9173877刪除分區使用
alter table [tname] drop partition (pname);
對分區數據進行刪除使用
alter table [tname] truncate partition (pname);
4、增加約束
使用alter table [tname] add constraint [constraint type](....)
如 alter table student add constraint primary key (id);
alter table student add constraint primary key (id,name); --聯合主鍵
其他還有外鍵,唯一,非空等。
B.
ROW_NUMBER()OVER(PARTITION BY AC_ID ORDER BY NAME ASC) RN 返回排序值
其中partition by 後接分類值,類似group by
C.CASE WHEN
可用於指定變量的條件值判斷,或多個值多種條件聯合判斷(使用前注意邏輯包含關係)
CASE B22.DATA_CODE WHEN '0152' THEN '1'
WHEN '0155' THEN '2'
ELSE '3' END
--指定條件變量
或
CASE WHEN LN_TX_TYPE ='1' THEN '1'
WHEN LN_TX_TYPE IN ('2','4') THEN '2'
ELSE '3'
END TX_TYPE
--多條件
D.雜項的雜項
nvl函數:nvl(arg,value)代表如果前面的arg的值爲null那麼返回的值爲後面的value
to_char對小於1的數轉換時會產生.234的情況,需要另外處理
如使用case when:
case substr(var,1,1) when '.' then '0'|| var
else var end
返回對此處理的結果。