ORACLE学习第一天

来源:互联网 发布:c语言if可以不写else吗 编辑:程序博客网 时间:2024/05/17 07:09
1.ORACLE的别名:
   书写方法:
    *列名 列别名
    *列名 AS 列别名
   列名中包含有空格或者要求区分大小写或者含有特殊字符
   列别名的两侧要双引号起来
2.NUMBER(10,2)代表一共10位,小数两位
3.BETWEEN AND 
  包括边界值
4.拼接符号
   SELECT PID||PNAME FROM PERSON
   PID和PNAME将在一列显示
5.oracle中的数据类型
  *CHAR 定长字符串,当数据达不到最大长度的时候将以空格填充余下字节,在内容计算上以字节为单位
  *VARCHAR2(SIZE) 可变长度字符数据,最小字符数是一,最大字符数是4000,与CHAR相比不会用空格填充
  *NVARCHAR2(SIZE) 可包含UNICODE格式数据的可变长度字符数据,与VARCAHR相比,它是字符
  **N字字符开头的以字符为单位计算数据,不以N开头的以字节为单位计算长度
6.删除表
   *drop
    删除表:
    DROP TABLE 表名  将表和数据全部删除   
 误删表DROP恢复命令
 FLASHBACK TABLE TAB01 TO BEFORE DROP;
7.ORACLE的自增列,使用序列来实现
*序列 SEQUENCE
*语法 CREATE SEQUENCE TESTSEQ
MINVALUE 1
MAXVALUE 10000
START WITH 1              --起始值
INCREMENT BY 1            --增长的数量级
CATCH 20;                 --制定存入缓存(也就是内存)序列值的个数 
*属性 NEXTVAL每次调用序列值加一
CREATE SEQUENCE TESTS;
SELECT TESTS.NEXTVAL FROM DUAL;

只保证递增不保证连续
8.删除表中的数据
   *DELETE DELETE FROM 表名 WHERE 条件 --加where是删除指定条件的数据,不加删除表中所有数据
   *TRUNCATE TABLE 表名 --删除所有数据
   **区别是:delete 只是将数据打上作废标记,在查询时不可见,是可以恢复的
    truncate 是把数据直接从磁盘上擦出,并且收回了空间,不可恢复
   
9.ORACLE中的日期处理
  *日期元素的格式
  YYYY-MM-DD HH24:MI:SS   2010-02-02 13:30:29
  *--获取系统当前日期
    SELECT SYSDATE FROM DUAL;
  *字符串转换为日期
   UPDATE PERSON SET PDATE = TO_DATE('1997-04-08','YYYY-MM-DD');
  *日期转换为字符串
    SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;




SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'HH24:MI') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;

*ORACLE中的日期加减
   **ORACLE中的日期加减以天为单位
 *昨天今天和明天
SELECT TO_CHAR(SYSDATE-1,'YYYY-MM-DD') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
SELECT TO_CHAR(SYSDATE+1,'YYYY-MM-DD') FROM DUAL;
*时分秒的加减
  SELECT SYSDATE + 5/24 五小时后,
                   SYSDATE - 2/24 两小时前,
          SYSDATE + 30/24/24 三十分钟前,
          SYSDATE + 20/24/24/24 二十秒后
                   FROM DUAL;
       
       TO_CHAR加个格式比较好
SELECT TO_CHAR(SYSDATE + 5/24,'YYYY-MM-DD HH24:MI:SS') 五小时后,
      TO_CHAR(SYSDATE - 2/24,'YYYY-MM-DD HH24:MI:SS') 两小时前,
      TO_CHAR(SYSDATE + 30/24/24,'YYYY-MM-DD HH24:MI:SS') 三十分钟前,
  TO_CHAR(SYSDATE + 20/24/24/24,'YYYY-MM-DD HH24:MI:SS') 二十秒后
FROM DUAL;

*月份加减
直接调用Oracle系统函数add_months(日期x,数值y)来完成
为日期x增加y个月,y可正可负
SELECT SYSDATE 现在的日期,ADD_MONTHS(SYSDATE,3) 三个月之后
   FROM DUAL
  *某月的最后一天
   SELECT LAST_DAY(SYSDATE) FROM DUAL;
  *某月的第一天
    获取上一个月的最后一天然后加一
    SELECT LAST_DAY(ADD_MONTHS(SYSDATE,-1)) + 1 FROM DUAL;

  SELECT ADD_MONTHS(TO_DATE('2016-05-01','YYYY-MM-DD'),-1) FROM DUAL;
  *下一个周几是哪天
SELECT NEXT_DAY(日期,数值) FROM DUAL;
从哪一天向后查找,数值1--周天,2--周一....,7--周六
  *上周几是几号
SELECT  TRUNC(SYSDATE,'DAY')-2 FROM DUAL; trunc函数可以获取本周的周天,注意是在歪果仁眼中的周日也就是我们的上周周日
                                         减一就是
   


   

0 0
原创粉丝点击