Oracle数据类型与函数

来源:互联网 发布:如何赚第一桶金 知乎 编辑:程序博客网 时间:2024/06/05 17:46

字符串

字符串类型

  • CHAR存放定长字符,不满补空格,默认单位是字节,可以指定为字符,如CHAR(10 CHAR)表示20字节
  • VARCHAR2存放变长字符,存多少占用多少,默认单位是字节,可以指定单位为字符
  • LONG:VARCHAR2加长版,存储变长字符串,最多2GB字符串数据。但是有诸多限制:每个表只能有一个LONG类的列,不能作为主键,不能建立索引,不能出现在查询条件中等。
  • CLOB:存储定长或变长字符串,最多4GB字符串数据,没有LONG的限制。

字符串函数

  • CONCAT(char1,char2)返回字符串连接后的结果,等价于连接操作符”||”,如果连接的某一个字符串为null,相当于连接了一个空格。过个字符串连接用”||”更方便直观。
  • LENGTH(char):返回字符串的长度,如果字符串是VARCHAR2返回实际长度,如果是CHAR返回长度还包括后补的空格。
  • UPPER(char):将字符串转换为大写形式
  • LOWER(char):将字符串转换为小写形式
  • INITCAP(char):将字符串转换为首字符大写,其他小写,以空格分割
  • TRIM(c2 from c1):从c1前后截去c2
  • LTRIM(c1,c2):从c1左边截去c2,省略c2则截去空格
  • RTRIM(c1,c2):从c1右边截去c2,省略c2则截去空格
  • LPAD(char1,n,char2):左部位函数,在char1左边补n个char2
  • RPAD(char1,n,char2):右部位函数,在char1右边补n个char2
  • SUBSTR(char,m[,n]):返回char中从第m位开始截取n个字符,省略n或n超过长度则截取到末尾,下标是从1开始,m为0则从首字母开始,若为负数则从尾部开始
  • INSTR(char1,char2[,m[,n]]):返回char2在char1中的位置,从m位开始第n次出现的位置,省略则从第1位开始,查找不到返回0

数值

数值类型

  • NUMBER(P,S),S为小数位数,省略S则表示整数,P表示总位数,取值1-38,省略P只写S则P默认为38

数值函数

  • ROUND(m[,n]):表示数字m四舍五入到n为位小数,若n为0则四舍五入到整数,n为负数则四舍五入到小数点前n位,若n省略则默认值为0
  • TRANC(m[,n]):m和n的定义和ROUND中一样,功能是截取
  • MOD(m,n):返回m除以n后的余数
  • CEIL(n):取大于或等于n的最小整数值
  • FLOOR(n):取小于或等于n的最大整数值

日期

日期类型

  • DATE固定存储7个字节,分别对应世纪+100,年,月,日,时+1,分+1,秒+1
  • TIMESTAMP:可以保存小数秒,最高精度到纳秒。若精度为0,则与DATE功能相同,用7个字节存储,若精度大于0,则用11个字节存储,第1-7字节与DATE相同,第8-11字节为纳秒。

日期关键字

  • SYSDATE:返回当前系统时间,精确到秒,默认格式:DD-MON-RR
  • SYSTIMESTAMP:返回当前系统日期和时间,精确到毫秒

日期转换函数

  • TO_DATE(char,format):将字符串按照指定形式转换为日期
  • TO_CHAR(date,format):将日期按照指定形式转换为字符串,若格式中出现中文需要用双引号括起来,Oracle中字符串用单引号

日期常用函数

  • LAST_DATE(date):返回日期所在月最后一天
  • ADD_MONTHS(date,i):返回日期加上i个月后的日期
  • MONTHS_BETWEEN(date1,date2:):两个日期之间间隔多少个月,date1-date2
  • NEXT_DAY(date,char):下一个周几,1-7表示周日到周六
  • LEAST(expr1,expr2…):返回参数值中的最小值
  • GREATEST(expr1,expr2…):返回参数值中的最大值
  • EXTRACT(date FROM datetime):从日期datetime中返回一个指定分量

空值操作

NULL条件查询

NULL不等于任何值,查询是否为空时不能用 = 判断,应该有 IS 判断

空值函数

NVL(expr1,expr2):如果expr1为NULL则返回expr2,否则返回本身
NVL2(expr1,expr2,expr3):如果expr1不为NULL,返回expr2,如果为NULL则返回expr3

0 0