zoukankan      html  css  js  c++  java
  • oracle 11g SQL语句补充学习

    添加列:

    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'

  • 相关阅读:
    2019-01-28 dubbo安装并启动测试
    JAVAWEB项目获取服务器、项目相关路径方法
    Hibernate中的查询方式
    Hibernate在eclipse中的简单运用
    JQuery Tips(2)----关于$()包装集你不知道的
    JQuery Tips(3)----关于$()包装集内元素的改变
    JQuery Tips(4)----一些关于提高JQuery性能的Tips
    利用FireBug使JQuery的学习更加轻松愉快
    asp.net core2 mvc 基础教程--中间件
    asp.net core2 mvc 基础教程--服务注册和管道
  • 原文地址:https://www.cnblogs.com/wgbs25673578/p/5470396.html
Copyright © 2011-2022 走看看