码迷,mamicode.com
首页 > 数据库 > 详细

oracle 11g SQL语句补充学习

时间:2016-05-08 13:28:33      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

添加列:

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

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‘

 

oracle 11g SQL语句补充学习

标签:

原文地址:http://www.cnblogs.com/wgbs25673578/p/5470396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!