我就不吃芹菜

导航

 

添加列:

alter table tablename add columnName datatype (not null);        -------需要注意一点的是在添加一列为非空的时候, 表必须是空表. 

删除列:

alter table tablename drop column columnName

改变列的数据类型:

alter table tablename modify columnName datatype

改变列名:

alter table tablename rename column columnName to new_columnName

 

删除数据:

delete tablename;

truncate table tablename;

drop table tablename;     --------删除表

 

常用的聚合函数:

  取整函数

    floor()-----向上取整

    ceil()-----向下取整

    trunc()-----取整

    round()-----四舍五入取整

 

查询年龄的时候可以使用这个函数

  select trunc(months_between(*,*)/12) from table-----------前者是未来的日期

  或者

  select trunc(sysdate-dataDate)/365 from table

trunc()聚合函数扩张使用的例子(格式化日期以及格式化数字)

 

  TRUNC(TO_DATE('24-Nov-1999 08:00 pm','dd-mon-yyyy hh:mi am')='24-Nov-1999 12:00:00 am'

  TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'

  trunc(sysdate,'yyyy') --返回当年第一天。

  trunc(sysdate,'mm') --返回当月第一天。

  trunc(sysdate,'d') --返回当前星期的第一天。

  trunc(sysdate,'dd')--返回当前年月日

  2.TRUNC(for number)

  TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

  其具体的语法格式如下

  TRUNC(number[,decimals])

  其中:

  number 待做截取处理的数值

  decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分

  下面是该函数的使用情况:

  TRUNC(89.985,2)=89.98

  TRUNC(89.985)=89

  TRUNC(89.985,-1)=80

  注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。 

 

months_between()返回的是差多少个月, 两个日期数据相减是差多少天

 

union和union all------------一个去除重复一个全部显示

 

case的用法

  先上两种语法:

    case when 字段名=... then ...(无限接) else ... end

    case 字段名 when ... then ...(无限接) else ... end

      不写 end 是猪, 忘了N+1次了

 

decode()函数

  decode()函数有点类似于case...when的用法

  decode(字段名,'值1','值1的对应值','值2','值2的对应值'...(无限接)...,'default')

 

vm_concat()函数

select sname,student.sno,wm_concat(cno) from student join score on student.sno=score.sno group by sname,student.sno order by student.sno

student表:

score表:

查询结果:

concat函数:

将两个查询结果连接到一起去, 最多两个

  select concat(sname,sbirthday) from student

 

replace()函数:

  replace(字段名,'值1',值2)

  查询字段的内容, 如果他是'值1', 就替换成'值2'

 

nvl()和nvl2():

  nvl(字段名,'值')

  如果查询的这个字段的值为空(null), 就返回'值'

  nvl2(字段名,'值1','值2')

  如果查询结果不为空, 返回'值1', 如果为空返回'值2'

 

posted on 2016-05-08 13:04  我就不吃芹菜  阅读(198)  评论(0编辑  收藏  举报