操作函数(续)

一、

  --练习:
    -- 1:DB与DBMS的区别
      -- DB:按照一定的数据结构存储数据的仓库
      -- DBMS:使用SQL语言管理DB的数据库管理系统
    -- 2:修改表中的某一字段名
      -- alter table tname rename column oldname to newname
    -- 3:向表中添加一个新的字段的格式
      -- alter table tname add (colName type)
    -- 4:修改表中某一字段类型的格式
      -- alter table tname modify colName type
    -- 5:查询emp表中的所有人的姓名,首字母大写
      select initcap(ename) from emp;
      -- 6:查看所有员工的职位,使之右对齐
      select lpad(job,10,' ') from emp;
    -- 7:查看所有员工的在职月份,保留整数位
      select round(months_between(sysdate,to_date(to_char(hiredate,'yyyy-mm-dd'),'yyyy-mm-dd'))) from emp;
    -- 8:查看自己40岁的日期
      select add_months(to_date('1987-10-12','yyyy-mm-dd'),40*12) from dual;
--==========================================
  二、日期函数(续)
  1:next_day(date,num)
    表示查看参数date的下一个周几的日期
    date:某一日期
    num:范围为1-7,表示周日到周六
  2:least(p1,p2,p3,...)
    多个参数比较,显示最小的数据
  3.greatest(p1,p2,p3,………………)
    多个参数比较,显示最大的数据
  注意:
    ①要求:参数为同一类型,
       ②或者可以默认转换成第一个参数的类型。
    ③参数类型基于第一个参数类型,以第一个参数的类型为基准  
    ④字符串类型比较大小:比较的字符的ascii码的大小。
  4:extract( p1分 from p2):
    表示从日期p2中提取分量p1
    ①日期的分量:
        year
        month
        day
        hour
        minute
        second
    ②日期类型关键字sysdate和systimestamp,表示当前系统时间
      可以从sysdate中提取年月日
      可以从systimestamp中提取年月日时分秒
 三、空值操作:
    null:表示空的意思。
  1:表中的任何字段,默认情况下都可以为null值。
  2:not null表示 非空,是一种约束,
  3.设置为非空约束的字段,必须有有效值,不能为空
  4:插入数据时,没有赋值的字段都是null值。
    reg:
      insert into emp (empno,ename) values(2001,'张三');
      此记录中,没有赋值的字段都是null值。
    reg:
      insert into emp (empno,ename) values(2002,null);
      此记录中,字段ename为null值。
  5:修改数据时,
    (1)当空值为条件时
      update emp set ename='张三' where comm is null;
    (2)当被设置为null时,
      update emp set ename = null;
  6:当空值参与计算时。
    null:相当于无穷大
    1+null为null
    null也不等于null
    reg:计算员工的月收入
      select sal+comm from emp; 明显结果有问题。

  四、空值操作函数:
    1)nvl(p1,p2)
      表示:如果p1这个字段的值为null,就使用p2
      否则使用本身p1
    (2)nvl2(p1,p2,p3)
      表示:如果p1是null,就使用p2,
      如果p2是null,使用p3

原文地址:https://www.cnblogs.com/xiaozelulu/p/8857413.html