oracle

使用

  创建用户

create user 名字 identified by 密码;


授权

CONNECT角色: --是授予最终用户的典型权利,最基本的

    RESOURCE角色: --是授予开发人员的

grant connect,resource,dba to 名字;

 表创建

  1  CREATE TABLE selection (
  2    s_no     varchar(12),
  3    c_no     varchar(4),
  4    sc_grade number(4,1),
  5    primary key (s_no, c_no),//创建主键
  6    FOREIGN KEY (s_no) REFERENCES student (s_no),//创建外键
  7    FOREIGN KEY (c_no) REFERENCES course (c_no)
  8* )

函数

时间 转化成oracle存储的时间格式

TO_DATE('2000-01-01', 'YYYY-MM-DD')

avg() 平均函数

sum()求和函数

max()最大值函数

floor()向下取整

sysdate 调用当前时间

count()统计有效值行函数

decode(列名,条件一,结果一,条件二,结果二,其他的结果)

 RAISE_APPLICATION_ERROR(-20001,'错误内容');错误提示

一.常见问题

(1)创建不了用户

解释:在12c以后oracle创建用户名需要前边加c##

(2)找不到scott测试用户

原因在10c之后scott用户便被取消掉了,需要的话需要自己创建,或者导入

解决方案戳这里

二 注意事项

在oracle中变量名的使用不能和函数名相同,会报错,显示缺少(

oracle中pl中需要自定义异常需要命名

三学习过程

PL学习

(1)基本模板

set serveroutput on //打开输出开关,如果这句话显示报错可以去掉

declare  //变量的定义位置

begin 程序开始的地方

dbms_output.put_line('hello');

end; 程序结束

set serveroutput off//关闭

(2)条件

     Ⅰ if 条件 then

      .....

     elsif 条件 then

.    ....

     else 

   .  ...

     end if;

     Ⅱ

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2 ...

ELSE result_else END

(3)循环


loop

exit when 条件;
end loop;
for i in1..100
loop

end loop;

while 条件
loop

end loop;
(4)游标 

定义在declare中

格式为 cursor 名字 if 语句

使用

for i in 名字://类似于增强型for循环,可以直接取出不用打开

其他使用方法

open 名字

fetch 名字 into 变量名字 这里是要列出全部变量名

close 名字

//过程存储

(函数)
格式
create or replace procedure 名字(变量名 方式 变量类型)
//   or replace 是代表如果存在则覆盖 如果不存在变量名则新建
// ()如果是无参构造,则不需要括号
is
声明
begin
exception
end;


//函数


格式
create or replace function 函数名(变量名 变量类型)
return 返回类型
is
声明
begin
正常
exception
异常处理
end;

删除 drop function 名字


//触发器 


格式 create or replace tigger 触发器名字
      before
      insert or delete or update (可以单选,也可以多选 ,多个之间用or 链接,如果是对某一列为条件,那就设置 of +列名)
      on 表名
      for each row(加这句也就是每行都会执行,不加则为一个命令执行一次)
      when(条件)//可有可无
      begin
        内容
      end;

   注意:在when里边的 new和old不需要写成:new和:old形式,new为更改后,old为更改前的 (例子::old.sal)
删除触发器 drop rtigger 名
查看某表上的触发器:
select * from all_triggers WHERE table_name='表名‘
查看某触发器详细信息
select    text      from all_source 
   where type='TRIGGER' AND name='TR_XXX'; ?
查看某用户下的所有的触发器
SELECT * FROM USER_SOURCE WHERE TYPE='TRIGGER';


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值