Oracle表空间及系统函数

Ø  表空间

 Oracle数据表存储在表空间里边

 

在表空间上无权限

 

创建表空间:Grant unlimitedtablespace to xx

 

 

临时表空间:列如排序,索引会使用临时表空间,

使用完之后立即释放

 

--查询默认的表空间

select * fromdba_tablespaces

 

--查询表空间下面的表

select * fromdba_tables where tablespace_name='USERS'

 

--查询用户默认的表空间

select * fromdba_users where username='SCOTT'

 

--查询表空间的存储位置

select * fromdba_data_files

 

 

 

--指定默认的表空间

alteruser cz defaulttablespace users

当添加数据时insertinto text values(20)

报错:ORA-01950:对表空间'USERS' 无权限

所以不能直接使用默认表空间,需要创建表空间。

 

 

 

--自定义表空间

createtablespace mytb(表空间名)

datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\Mydb.DBF'(路径)

size 20m (存储内存大小)

 

 

--使用自定义表空间(注意:自定义表空间后,要重新添加表)

alteruser cz defaulttablespace mytb

 

 

Ø  数值函数

 

求绝对值

  selectabs(-12) from dual->(12)

 

进一法

selectceil(12.3) from dual—->(13)

 

去尾法select floor

selectfloor(12.5121) from dual—->(12)

selectfloor(-12.5121) from dual—->(-13)

 

四舍五入

selectround(12.3) from dual—->(12)

selectround(12.5) from dual—->(13)

 

四舍五入保留2..n位小数

selectround(-12.5161,2) from dual—->(12.52)

selectround(12.5161,-1) from dual—->(10)

ü  selectround(-412.5161,-2) from dual—->(400)

ü  selectround(-412.5161,-2) from dual—->(-400)

 

   数字截取

     默认截取整数

selectabs(-412.5161) from dual—->(-412.5161)

 

截取小数后几位

selecttrunc(-412.5161,2) from dual—->(-412.51)

 

截取小数点前几位select trunc

ü  selecttrunc(412.5161,-2) from dual—->(400)

ü  selecttrunc(-412.5161,-2) from dual—->(-400)

 

 

 

 


Ø  字符函数

 

转换成大写 upper

selectupper('adb') from dual—->(ADB)

 

转换成小写 lower

  selectlower('ABd') from dual—->(abd)

    

去掉空格(有时间空格的问题很坑)trim

selecttrim('   ABd  ') from dual—->(ABd)

selecttrim('   AB d   ') from dual—->(AB  d)

  

 去掉左边空格

    selectltrim('   AB d   ') from dual—->(AB d   )

selectltrim('   AB d   ') from dual—->(  AB  d)

 

去掉左边指定的字符

         selectltrim('   AB d   ') from dual—->(AB d   )

         selectltrim('   AB d   ',' A') from dual—->(B d   )

    selectltrim('   AB d   ','B') from dual—->(  AB  d   )不能去掉中间

 

去掉右边指定的字符

         selectrtrim('   AB d   ','d ') from dual—->(   AB)

 

   替换函数replace

         selectreplace('   AB d   ',' ','') from dual—->(ABd)

    selectreplace('   AB d   ',' d','') from dual—->(AB)

 

  字符串相加 concat ||

      select'AB'||'d'from dual—->(ABd)

    selectconcat('ni','hao') from dual—->(nihao)

 

  截取字符串的函数 substr

         selectsubstr('abcdef',0,3) from dual—->(abc) 3表示长度

    selectsubstr('abcdef',1,3) from dual—->(abc) 3表示长度

    selectsubstr('abcdef',2,3) from dual—->(bcd) 3表示长度

    selectsubstr('abcdef',-2,3) from dual—->(ef) 3表示长度

    selectsubstr('abcdef',-1,3) from dual—->(f) 3表示长度

 

  求长度的函数 length

    selectlength('abcdef') from dual—->(6)

 

 

Ø  转换函数

  

     转化成数字 to_number

          selectto_number('12345') from dual—->(12345)

解释:输出是123456,而不是 12345’

                  

     转化成字符串 to_char

          selectto_char(12345) from dual—->(12345)

      解释:输出是’ 12345’,而不是 12345

                  

     *转化成字符串,格式化时间to_char(sysdate,’yyyy-mm-ddhh24:mi:ss’) to_date

      selectto_char(sysdate,'yyyy-mm-ddhh:mi:ss') from dual

—->(2017-12-06 03:02:14)

      selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss') from dual

       —->(2017-12-06 15:03:07)

      selectto_date(sysdate) from dual

       —->(2017/12/6)

 

     来个完整年月日时分秒的时间 

      selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss') from dual

       —->(2017-12-06 15:03:07)

      

     时间24小时制

      selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss') from dual

       —->(2017-12-06 15:03:07)

            

Ø  处理Null的函数nvl nvl2

 

     *为空返回制定的代替,不为空返回自己

       selectnvl('','a') from dual—->(a)

selectnvl(null,'a') from dual—->(a)

       selectnvl('b','a') from dual—->(b)

 

   

     *不为空返回参数2为空返回参数3

       selectnvl2('a','b','c') from dual—->(b)

       selectnvl2('','b','c') from dual—->(c)

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值