Oracle数据类型和函数

数值类型

NUMBER(precision,scale)

precision指定数字的总位数。

scale指定小数点后的数字位数。

--number(5)   最大99999
--number(5,2)  最大999.99
--number(18)   固定长度

字符类型

CHAR(size) --定长字符数据
size --指定字符串的最大长度
size --必须是正整数且不超过32767
VARCHAR2(size) --可变长字符数据
size  --指定字符串的最大长度
size  --必须是正整数且不超过32767
LONG  --可变长字符数据,最大可达到 2G

CLOB  --字符数据,最大可达到 4G
BLOB  --二进制数据,最大可达到 4G
BFILE --存储外部文件的二进制数据,最大可达到 4G

日期时间类型

--date和timestamp都是既有日期又有时间的日期类型
--DATETIME 需要使用外部传入的日期,如果没传这个值就是 NULL
--TIMESTAMP 会使用系统当前的时间作为这个值的默认值

其他类型

--LONG RAW 长二进制数据
--ROWID 行地址,十六进制串,表示行在所在的表中唯一的行地址

创建序列

--创建序列 默认是1
create sequence teacher_seq;

--提取下一个值
select teacher_seq.nextval from DUAL;

--提取当前值
select teacher_seq.currval from DUAL;


--创建序列  从100开始
create sequence teacher_seq2 start with 100;  

--创建序列 从5开始超出100无法创建
create sequence teacher_seq3 minvalue 5 maxvalue 100;  

--创建序列 从1开始,每次加3
create sequence teacher_seq4 increment by 3;   

字符函数

select lpad(id,6,'0')from TEACHER;    --左补齐 长度不足6 就用0来补从左边补 ,超过的截取
select rpad(name,6,'-') from TEACHER; --右补齐
select upper(name)from teacher;            --转大写
select lower(upper(name))from teacher;     --转小写
select initcap(name) from teacher;         --首字母大写
select id,name,length(name) from  teacher; --获取字符长度
select id,name,pwd,substr(name,1,3)from teacher;  --字符串截取 ,从字符的第一位开始截取,截取三个字符
select id,name,pwd,substr(name,-3,3)from teacher;  -- -3表示字符串的倒数第三位开始,截取3个字符
select name, instr(name,'a')from teacher;  --返回 name 第一次出现’a‘的位置,没找到返回0
select name,reverse(name) from teacher;    --字符反转
select name ,concat('hello:',name)from teacher; --字符串拼接
select trim(' hello java '),      --去除左右两端的空格
       length(' hello java '),
       length(trim(' hello java ')),
       rtrim(' hello java '),     --去除右边空格
       ltrim(' hello java ')      --去除左边空格
from DUAL;
select name, replace(name,'a','x') from teacher;  --替换name里所有’a‘ 换成’x‘
select name,regexp_replace(name,'a.g','x')from teacher; --正则 字段name里边a开头g结尾的字符替换成x

数值函数

select round(12.1284234,2)from DUAL;   --四舍五入,2是保留两位小数
select ceil(12.3)from dual;            --向上取整
select floor(123.45)from dual;         --向下取整
select mod(32,7)from dual;     --取模
select abs(-128)from DUAL;     --绝对值
select sign(-12) from DUAL; --判断正负,如果数字大于零,则函数返回 1,否则返回 -1。如果指定的数字为零,则函数在结果中返回零
select sqrt(4) from DUAL; --开根号
select power(2,3) from DUAL; --2的3次方
select trunc(123.456,3)from DUAL; -- 保留3位小数 ,不写后面的参数就取整
select to_char(12345678.45,'$00,000,000.00')from DUAL;  --将数字转换成字符串   按照'$00,000,000.00'格式转换

日期函数

select last_day(add_months(d1,1))from t_date where id=1;  --当前月的最后一天
select  trunc(sysdate), sysdate from DUAL;      --按日截取
select trunc(sysdate,'yyyy'),sysdate from dual; --当前年份第一天
select  trunc(sysdate,'mm'),sysdate from dual;  --当前月的第一天
select  trunc(sysdate,'hh'),sysdate from DUAL;  --按小时截取
select  trunc(sysdate,'mi'),sysdate from DUAL;  --按分钟截取
select to_timestamp('2022-12-14', 'yyyy-MM-dd hh24:mi:ss:ff') from DUAL; --字符串转日期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值