二、Oracle学习笔记:常用数据类型和关键字

一、Oracle数据中常用的数据类型
   1.number(p[,s]):表示数字类型。
          p:表示数字的有效长度
          s:表示小数点后的位数。
          整数位最大位数: p-s
          reg:number(5,2):最大值999.99。
           number(2):最大值为99
    2.char 表示定长字符串类型。
        不规定 默认为1个字节。
        规定:char(n)
        最大字节数:2000个。
        定长:在存储时,不满规定个数时,也会占用内存规定的字节数。
        reg: char(10),当存了"a"时,也占用内存10个字节。
     3.varchar2 表示可变字符串类型
          规定:varchar2(n):
          可变,会按照实际存储的字节数占用内存,不可以超出规定长度。
          最大字节数4000.
     4.long类型:
          最多存2G的字节数
     5.clob类型:
          最多存4G的字节数。
     6.date类型:日期类型
          默认格式: dd-mon-rr
          占用7个字节。
     7.timestamp:时间戳类型
          可以精确到时分秒。

二、null 关键字   NOT null 非空约束
    1.建表期间,可以对某一字段进行非空约束,在insert时 ,此字段必须是要有数据。
         reg: create table temp(
                    id number(4),
                    name varchar2()not null,
          ) ;
         在insert时 name字段必须有值。
    2.没有进行非空约束的字段都可以插入数据null
    3.表中存在数据,不可以新增字段为非空字段。
    4.对表中的任何字段进行非空约束的修改,eg:alter table tname modify colName null;

     5.空值操作:
       null:表示为空
       (1)表中的任何字段,默认情况下都可以为null值
       (2)not null 表示非空是一种约束,表示不能为空,必须有有效值
       (3)插入数据时
             reg: insert into emp (ename,empno) values('张三',2001)--此条记录中其他字段都是null
             reg: insert into emp (empno,ename) values(2002,null)--此条记录中ename字段为null,别的字段也是null
       (4)修改数据时
            a.当空值为条件时
                   update emp set ename='zhangsan' where comm is null;
            b.当被设置为空值时
                   update emp set ename=null where comm is null;
       (5)当空值参与计算时,任何值加null都是null,null也不等于null
       (6)空值操作函数
                   a.   nvl(p1,p2)
                          如果p1的值为null,就用p2补上,否则使用p1
                          eg:计算员工的年收入
                          select ename,sal*12+nvl(comm,0) from emp;
                          eg:统计每个员工的奖金,如果没有奖金就发放50元
                          select nvl(comm,50) from emp;
                   b.  nvl2(p1,p2,p3)
                          如果p1是null是用p3,如果不是null使用p2
                          eg:统计员工的额外补助,如果有奖金,补助50元,没有奖金补助10元
                          select nvl2(comm,comm+50,10) from emp;
                          

三、default关键字: 
    1.建表期间,可以对某一字段设置默认值,在insert期间 ,如果不对此字段进行传值,那么此记录的这个字段就是默认值。
      reg : create table temp(
                    id number(4),
                    name varchar(30)not null,
                    gender char(1) default 'm', 
            );
            insert into temp (id,name) values(1001,'zhansna');
      此记录的gender的值为'm'
      

猜你喜欢

转载自blog.csdn.net/qq_38741971/article/details/81410480
今日推荐