zoukankan      html  css  js  c++  java
  • Orcle数据库编程:一

    1.PL/SQL是一种块结构的语言,一个PL/SQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明。

    declare
    mstu student%ROWTYPE;--定义参数,只能在一条记录下使用
    begin
      select * into mstu from student where sid=10003;--查询语句
      dbms_output.put_line('姓名为'||mstu.sname||',性别为'||mstu.ssex);--打印结果。
      end;
    --打印张三和李四年龄和年龄之和
    declare 
     age1 student.sage%TYPE;--定义参数age设置类型为student表age字段的类型
     age2 student.sage%TYPE;
     total  int:=1000; 
     fage total%type;
    begin
      select sage into age1  from student where sname in('李宁');
       select sage into age2  from student where sname in('李四');
        fage:=age1+age2;
       dbms_output.put_line(age1||age2||fage);
    end;

    2.PL/SQL中的IF 语法

    if 条件1 then
    --条件1成立结构体
    elsif 条件2 then
    --条件2成立结构体
    else
    --以上条件都不成立结构体
    end if;
    --根据张三的均分给出评判如果大于90输出a 80b  70 c
    declare
    avgsc  mark.cmark%type;
    begin
    select avg(cmark) into avgsc from mark  where sid=(select sid from  student where sname='张三') ;
      if avgsc>=90 then
          dbms_output.put_line('a');
        elsif avgsc>=80 then
           dbms_output.put_line('b');
               elsif avgsc>=70 then
           dbms_output.put_line('c');
           else 
               dbms_output.put_line('d');
               end if;
      end;

    3.游标

    /*游标的使用方法:
    第一步:声明游标
    第二步:打开游标
    第三步:使用游标进行循环操作
    第四步:关闭游标*/
     
    --普通游标,游标本身就是一个变量
    declare     
         --下面的这行代码声明了一个游标
         cursor mycur is select * from emp where deptno = 20;
         emprow emp%rowtype;
    begin
         open mycur; --打开游标
         loop
             fetch mycur into emprow; --把游标所指的纪录放到变量中
             exit  when (mycur%notfound); --当游标没有指向行时退出循环
             dbms_output.put_line('名字:' || emprow.ename || '薪水:' || emprow.sal);
         end loop;
         close mycur;  --关闭游标
    end;
    /**隐式开启游标*/
      declare 
    cursor csr is 
    select  sid ,ssex||'同学:'||sname||',今年'||to_char(sage)||'' sinfo from student;
    begin
      --隐含打开游标
      for v_stu in csr loop
        --隐含执行一个fetch语句
        dbms_output.put_line(to_char(v_stu.sid)||'的个人信息为:'||v_stu.sinfo);
        --隐含检测c_sal%notfound
        end loop;
        --隐含关闭游标
        end;
  • 相关阅读:
    leetcode:655. 输出二叉树
    leetcode:763. 划分字母区间
    leetcode:3. 无重复字符的最长子串
    leetcode:2. 两数相加
    leetcode每日一题:409. 最长回文串
    leetcode:1381. 设计一个支持增量操作的栈
    leetcode:1380. 矩阵中的幸运数
    [数据结构] 迷宫问题(栈和队列,深搜和广搜)
    [数据结构] N皇后问题
    [2011山东ACM省赛] Sequence (动态规划)
  • 原文地址:https://www.cnblogs.com/huguodong/p/5854002.html
Copyright © 2011-2022 走看看