设为首页 加入收藏

TOP

Oracle数据库之第四篇(一)
2019-09-30 16:46:40 】 浏览:96
Tags:Oracle 数据库 四篇
/*
      授权命令 grant 权限 to 用户
          授权可以授予多个权限
          grant  connect,resource to baidu   
      收回权限  revoke  权限 from  用户
          revoke dba from baidu
          
      创建用户 分配表空间--指定用户的默认表空间
         create  table p(..) 建表存在默认表空间
          --建表时候指定表空间 
         create table p(...) talebspace 表空间名
    */
    /*
     PlSql编程语言  procedure language 过程语言
          是在sql语句中加入一些处理过程的语句
          常见的条件表达式 if else  还有循环结构
     基本结构
        declare
           --声明部分 理解为定义
              --声明使用的变量
        begin
           --处理逻辑的代码块
        end;
    */
    --psSql简单示例
    declare
       v_n number := 1; --声明数值变量 赋值使用符号:=
       v_s varchar2(4) :='s'; --声明字符类型变量
       emp_ename emp.ename%type ;-- 引用类型变量
       emp_row   emp%rowtype ;-- 记录类型变量
    begin
       
       dbms_output.put_line('v_n====='||v_n); --输出语句相当于sys out 
       dbms_output.put_line('v_s====='||v_s);
       
       select ename into emp_ename from emp where empno=7499; --使用into关键字赋值
       dbms_output.put_line('emp_ename====='||emp_ename);
       
       select  * into  emp_row    from emp where empno = 7499; --赋值记录类型变量
       dbms_output.put_line('员工编号=='||emp_row.empno||'员工姓名'||emp_row.ename);
    end;
    /*
      plsql 的条件表达式判断
      if .. 处理语句 else if ..处理语句
      -------------------------
      if .. then  
      elsif .. then  
      else  
      end if;   
    */
    ---使用条件表达式判断员工的工资 使用汉字输出
    declare
      
       emp_row   emp%rowtype ;-- 记录类型变量
    begin
      
       select  * into  emp_row    from emp where empno = 7499; --赋值记录类型变量
       --使用表达式判断工资
       if emp_row.sal > 3000 then
          dbms_output.put_line('员工工资大于3000=='||emp_row.sal);
       elsif   emp_row.sal < 1000  then
          dbms_output.put_line('员工工资小于1000=='||emp_row.sal);
       else
           dbms_output.put_line('员工工资位于1000到3000之间=='||emp_row.sal);
       end if;
       
    end;

    /*
      循环结构
    第一种-----
      loop
        exit when 条件
      end loop;
    第二种 ---
      while 条件 loop
        
      end loop;
    第三种 ---
      for 变量  in  范围 loop
        
      end loop;
    */
    -------使用循环输出数字 1-----10
    /*
    第一种
      loop
        exit when 条件
      end loop;
    */
    declare
       v_n number :=1;
    begin
      
      loop 
        --只是用来判断退出使用的,并不是相当于if()else{}
        exit when v_n>10 ;   --退出条件
        dbms_output.put_line(v_n);
        v_n:=v_n+1;   --自增
      end loop;
    end;
    /*
    第二种
      while 条件  loop
        
      end loop;
    */
    declare
       v_n number :=1;
    begin
      
      while v_n<11  loop
        dbms_output.put_line(v_n);
        v_n:=v_n+1;   --自增
      end loop;
    end;
    /*
      第三种
      for 变量 in 范围 loop  变量的声明和范围的控制是由for循环自动执行
        
      end loop;
    */

    declare
    begin
      
      for i in 1..10  loop
        dbms_output.put_line(i);
      end loop;
    end;
    /*
      游标 光标  是用于接收查询的记录结果集 ResultSet 提示记录使用.next()
      游标的使用步骤
         声明游标 cursor 游标名 is select 语句 指定游标的记录结果集
         打开游标  open  游标名
         提取游标  fetch 游标名 into 记录类型变量 
         关闭游标  close cursor
      游标的两个属性  游标名%found     : 判断它有找到
                      游标名%notfound  : 判断它没有找到
        if  emp_cursor%found then
           dbms_output.put_line('found');
         elsif  emp_cursor%notfound then
           dbms_output.put_line('notfound');
         elsif emp_cursor%notfound is null then
            dbms_output.put_line('null');
         end if;
    */
    --使用while循环结构演示游标
    declare
         --声明游标
         cursor emp_cursor is select * from emp;
         --声明记录类型变量 用于接收游标提取的记录
         emp_row  emp%rowtype; 
    begin
         --打开游标
         open emp_cursor; 
         --提取游标(判断下一个是否有值)
         fetch emp_cursor into emp_row ;
         --有值就执行while循环
         while emp_cursor%found  loop
            dbms_output.put_line(emp_row.empno||'员工姓名'||emp_row.ename);
            --继续提取游标(并判断下一个是否有值)
            fetch emp_cursor into emp_row ;
         end loop;
         close emp_cursor;
    end;
    /*
     loop  
        exit when 游标提取不到
     end loop
    */
    declare
         --声明游标
         cursor emp_cursor is select * from emp;
         --声明记录类型变量 用于接收游标提取的记录
         emp_row  emp%rowtype; 
    begin
         --打开游标
         open emp_cursor; 
         loop
           fetch emp_cursor into emp_row;
           exit when emp_cursor%notfound;
             dbms_outpu
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL Aborted_clients和 Aborted.. 下一篇Oracle数据库之第四篇

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目