oracle基础小细节

创建表时,sysdate不能直接放在check结构里,可以直接放在default中

sequence.nextval不能当做default值

 

日期类型的运算:系统当前默认时间格式为:dd-mon-rr

select sysdate - 10 from dual;

select sysdate - '10' from dual;

select sysdate - to_date('10-JANUARY-2007' /* 这里的格式很随意月份可简写可全写,可用-,可用/,也可混合用。与默认的时间格式关联不大 */) from dual;

select * from hr.employees t where sysdate > t.HIRE_DATE;

select sysdate - '10-JAN-07' from dual;×不能直接这样写

 

create table test2 as select * from test1;

test1表中的所有约束只有明确的not null才会被继承到test2中(只有这种约束才会被继承)(主键中的那个隐藏的not null不会被继承) 

 

字符连接:从10g开始引入该特性。q'后面的字符可以是:(下面这几个[]、{}、<>测试过OK的,其他的可能有问题,以后有时间再看看官方的文档或者自己试试)

  •     !
  •     [ ]
  •     { }
  •     ( )
  •     < >

前提是这些字符不会出现在后续的SQL中。

 

posted @ 2017-06-15 13:16  太古丶凶兽  阅读(176)  评论(0编辑  收藏  举报