oracle基础积累-常用知识

场景:
        基础知识积累.
环境:
        Oracle Database 11g; PL/SQL Developer
1.单表多次子查询关联

SELECT WENDU.SENSOR_ID,
   WENDU.DATA_DATE,
   WENDU.REGION,
   DECODE(WENDU.S1, NULL, 0, WENDU.S1) AS WENDU1,
   DECODE(WENDU.S1, NULL, 0, WENDU.S2) AS WENDU2,
   DECODE(WENDU.S1, NULL, 0, WENDU.S3) AS WENDU3,
   DECODE(SHIDU.S1, NULL, 0, SHIDU.S1) AS SHIDU1,
   DECODE(SHIDU.S1, NULL, 0, SHIDU.S1) AS SHIDU2,
   DECODE(SHIDU.S1, NULL, 0, SHIDU.S3) AS SHIDU3
FROM (SELECT * FROM SENSOR_COLLECT_DATA WHERE DATA_TYPE = 1) WENDU
LEFT JOIN (SELECT *FROM SENSOR_COLLECT_DATA WHERE DATA_TYPE = 2) SHIDU
ON WENDU.SENSOR_ID = SHIDU.SENSOR_ID
AND WENDU.DATA_DATE = SHIDU.DATA_DATE;

2.截取时间

SELECT TRUNC(SYSDATE, 'YYYY') FROM DUAL;
SELECT TRUNC(SYSDATE, 'MM') FROM DUAL;
SELECT TRUNC(SYSDATE, 'DD') FROM DUAL;
SELECT TRUNC(SYSDATE, 'HH') FROM DUAL;
SELECT TRUNC(SYSDATE, 'MI') FROM DUAL;
SELECT TRUNC(SYSDATE - 1) FROM DUAL;

3.取上个上个月下个月

SELECT TRUNC(ADD_MONTHS(SYSDATE,-1),'MM') FROM DUAL;
SELECT TRUNC(ADD_MONTHS(SYSDATE,1),'MM') FROM DUAL;
--上月1号,上月最后一天,本月1号
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1),TRUNC(SYSDATE, 'MM') - 1,TRUNC(SYSDATE, 'MM') FROM DUAL;

4.时间转字符串

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF') FROM DUAL;

5.用户授权

GRANT UPDATE,SELECT  ON  TABLE_A  TO USER_ZBZ;  
GRANT INSERT,UPDATE,SELECT  ON  TABLE_A  TO USER_ZBZ; 

6.取出最大值

SELECT GREATEST(SUM(A.S1),SUM(A.S2),SUM(A.S3) FROM SENSOR_COLLECT_DATA  A;

7.查询某个用户表和视图列表

SELECT * FROM ALL_VIEWS WHERE OWNER='USER_ZBZ';
SELECT * FROM ALL_TABLES WHERE OWNER='USER_ZBZ';

8.查看分区文件名

SELECT * FROM DBA_DATA_FILES;

9.查看分区

SELECT * FROM  ALL_TAB_PARTITIONS;

10.查出一个表数据导入另一个表,两表字段相同

INSERT  INTO SENSOR_COLLECT_DATA_A  SELECT *  FROM SENSOR_COLLECT_DATA_B;

11.LEFT函数使用

SELECT * FROM SENSOR_COLLECT_DATA A WHERE LEFT(A.REGION,2)='11';
SELECT COUNT(1)  FROM SENSOR_COLLECT_DATA A WHERE LEFT(A.REGION,2)='11';

以上,感谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值