Oracled数据库的进一步理解


  • 博客分类:
-- PL/SQL编程 
-- SQL:   Structed Query Language 
-- PL:    Procedure Language 
        --是对sql语言的补充 
        
--为什么需要PL/SQL编程[在数据库服务端编程] 
        --减小网络开销 
        --提高性能 
        --提高了安全性 
        
        
-- PL/SQL块 是基本单元 

--允许输出 
set serveroutput on; 

伦理片 http://www.dotdy.com/

--案例1 
declare 
    str varchar2(20) := 'Hello World'; 
begin 
        --输出语句 
        dbms_output.put_line(str);  
end; 

--修改7499的工资 
begin 
  update empbak set sal=2000 where empno=7499; 
end; 

-------------------------------------------------------- 
/* 
数据类型 
  标量类型 
         数字型 Binary_Integer  Number    PLS_Integer 
         字符型  Char   varchar2  long    raw    long Raw 
         时间日期型: Date   Timestamp 
         布尔型: Boolean 
         
  LOB类型 
         BFile 
         BLOB 
         CLOB 
         NCLOB 
  
  属性类型 
         %type 
         %rowtype 
         
  复合类型 
         自定义类型,类似于C语言中的结构体 
---------------------------------------------------- 
操作符 
         :=  赋值操作符   相当于Java中的 = 
         ||  连接操作符   相当于Java中的 + 
         --  单行注释 
        <<>> 标签分隔符 
        ..   范围操作符 
        **   求幂操作符 

比较运算符 
        =            等于      相当于Java中的 == 
        <> !=        不等于 
        > 
        < 
        >= 
        <= 

逻辑运算符 
        and       并且  相当于Java中的 && 
        or        或者  相当于Java中的 || 
        not       非    相当于Java中的 ! 
*/ 

--查询执行编号的员工的姓名 
declare 
  v_ename varchar2(5);--声明一个变量用来接收查询的结果 
begin 

  dbms_output.put_line('名字是:'||v_ename); 
  --处理异常 
  exception 
     when no_data_found then 
        dbms_output.put_line('没有这个编号的员工!'); 
end; 

----------------------------------------------- 
--属性类型 
--  %type  参照字段类型 

--根据编号查询员工的姓名和工资 
declare 
  --变量的类型参照empbak表中ename字段的类型 
  v_ename empbak.ename%type; 
  v_sal empbak.sal%type; 
begin 

  dbms_output.put_line('名字是:'||v_ename||' ,工资:'||v_sal); 
  --处理异常 
  exception 
     when no_data_found then 
        dbms_output.put_line('没有这个编号的员工!'); 
end; 

  影音先锋电影 http://www.iskdy .com/
--------------------------------------------------------------------- 
--复合类型 
declare 
  --定义一个复合类型 
  type myrecord is record( 
        v_ename empbak.ename%type, 
        v_sal empbak.sal%type 
  ); 

  --定义一个复合类型的变量 
  aa myrecord; 
begin 

------------------------------------------------------------------------ 
--根据员工编号查询员工的所有信息 
--使用 %rowtype表示整行数据 
declare 
     --%rowtype 表示变量是一个包含了empbak表所有字段的复合类型 
     aa empbak%rowtype; 
begin 
   dbms_output.put_line('姓名:'||aa.ename||' 工资:'||aa.sal); 
end; 

---------------流程控制------------------------------------------ 

--分支 
   --  if 
   --根据编号查询员工工资,如果发现工资低于1500,就给涨工资200 
   -- 否则减少200 
   declare 
       v_sal empbak.sal%type; 
       v_no empbak.empno%type; 
   begin 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值