Oracle角色,函数,循环的分析学习

Sys 超级管理员
System dba
scott

Oracle创建用户

创建用户命令
create user 用户名 identified by 密码;

注意:新创建的用户没有任何权限,包括登陆数据库

Oracle权限

oracle权限分类

系统权限:
比如连接数据库,创建权限过程,创建表等
Oracle规定好能够做的操作

对象权限:
针对某一个对象的权限,对系统权限更细化,细化到某一个对象。 比如对 ,某个表的添加查询,删除,更新等。

授权命令

语法格式
Grant 命令1,命令2 to 用户

授予登陆数据库的权限
Grant create session to cz

授予查询某表的权限
Grant select on 表名 to 用户名

连接命令:
Conn 用户名/密码

在命令窗口打开可以换行写sql的命令:
Ed;
输入/执行

Oracle角色

Oracle角色分类
系统预定义角色:系统定义好的角色
用户自定义角色:如果系统定义好的不够用
自己定义一个

Oracle角色的作用
授予角色的本质就是授予权限,
他是授予的一组权限,为了解决很多权限需要一个一个去授予。

Oracle三个重要的系统角色

查询所以的系统角色:
select * from dba_roles

      CONNECT:连接角色
      RESOURCE:资源角色
      DBA:数据库管理员

查询角色的权限:
select * from dba_sys_privs where grantee = ‘DBA’

授予角色
Grant 角色名 to 用户名

自定义角色
创建角色命令
Create role 角色名

给自定义角色授权
Grant 权限 to 角色名

Oracle撤销权限

撤销权限命令:
Revoke 权限 from 用户

Oracle权限的传递

权限直接不支持传递

在授权的时候可以传递权限的命令
With grant option

对象权限会受连带责任同时被权限
系统权限不受连带责任也就是不会同时被取消

Oracle系统函数

数值函数

求绝对值
select abs(-12.1) from dual
进一法
select ceil(-12.1) from dual
去尾法
select floor(-12.9) from dual
四舍五入
select round(12.5) from dual
四舍五入保留2..n位小数
select round(12.567,2) from dual

数字截取

 默认截取整数
  select trunc(12.967) from dual

截取小数后几位
select trunc(12.917,2) from dual
截取小数前几位
select trunc(912.9,-2) from dual

字符函数

转换成大写
select upper(‘abcd’) from dual
转换成小写
select lower(‘ABCD’) from dual

去掉空格(有时间空格的问题很坑)(前后空格)
select trim(’ accd’) from dual

去掉左边空格
select ltrim(’ accd ‘) from dual
去掉右边的空格

 select rtrim('  accd   ') from dual    

去掉左边指定的字符
select ltrim(‘abcd’,’ac’) from dual

去掉右边指定的字符

select rtrim(‘abcd’,’dd’) from dual

替换函数
select replace(‘this is a girl’,’girl’,’girl 2’) from dual

字符串相加
select ‘aa’||’bb’ from dual
select concat(‘aa’,’cc’) from dual

截取字符串的函数

    select substr('abcd',3,1) from dual

     第一个参数是:截取的位置
     第二个参数是:截取的长度

求长度的函数
select length(‘abcd’) from dual

转换函数

 转化成数字
             select to_number('1')+to_number('2') from dual 
 转化成字符串
              select to_char(11)|| to_char(22) from dual

 *转化成字符串,格式化时间


 来个完整年月日时分秒的时间  
      select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual

 时间24小时制 

      select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual

处理Null值的函数

  Nvl函数:
    select nvl('cc','bb') from dual
     如果第一个参数有值就返回把本身,如果没有值就返回第二个参数
     如果第一个参数为空就返回第二个参数,如果第一个参数不为空就返回本身


  Nvl2函数:

select nvl2(”,’bb’,’cc’) from dual

IF ELSE

declare ptype int:=5;
begin

 --ptype:=1;

 if ptype=1 then
      dbms_output.put_line('河东狮');
 elsif ptype=2 then
   dbms_output.put_line('河南狮');
 elsif ptype=3 then
   dbms_output.put_line('西狮');
 else
      dbms_output.put_line('狮');
 end if;  

end;

Case when

declare ptype int:=6;
begin

  case ptype
    when 1 then
       dbms_output.put_line('大');
    when 2 then 
      dbms_output.put_line('更大');
  else
     dbms_output.put_line('超级大'); 
  end case;

end;

配合查询使用case when

select (
   case job
     when 'CLERK' then '普通员工'
     when 'SALESMAN' then '销售人员'
     when 'MANAGER' then '部门经理'
     when 'PRESIDENT' then '董事长'
     when 'ANALYST' then '数据分析师'
     else
       '其他'
   end 
),
ename
 from scott.emp

oralce循环

loop循环

  loop  
        dbms_output.put_line(ptype);               
        --指定一个退出条件
        exit when  ptype=50;  
         ptype:=ptype+1;

  end loop;  

while循环

     while(ptype<=10)  --和loop循环不同的地方就是退出条件
     loop
         dbms_output.put_line(ptype);      
         ptype:=ptype+1;
     end loop;

for循环

   for ptype in 1..50
     loop
       dbms_output.put_line(ptype);      
     end loop;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值