• Oracle 基本语法、触发器、视图


    参考文章:https://www.cnblogs.com/linjiqin/category/349944.html

    数据库分类

    1.小型数据库:access、foxbase

    2.中型数据库:inormix、sqlserver、mysql

    3.大型数据库:sybase、db2、oracle

    项目合理的使用数据库,参考原则:

    1.项目规模

    2.负载量、即用户量

    3.成本

    4.安全

    小型数库:

    1.负载小,大概100人左右

    2.案例:留言板、信息管理系统

    3.成本低、千元左右、安全性低

    中型数据库:

    1.负载量:日访问5000 - 10000

    2.成本:万元内

    大型数据库:

    1.海量负载,可以处理海量数据(sybase < oracle < db2 数据处理能力)

    2.安全性高,价格昂贵

    Oracle 入门

    1.oracle 默认的管理员 sys 、sysdba

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

    create user test identified by test;

    修改用户密码: alter user 用户名 identified by 新密码;

    alter user test identified by 123456;

    删除用户:drop user 用户名【cascade】; 

    drop user test;

    给用户赋予角色

    grant connect,resource to test; 

    不同用户之间的对象权限授权

    grant select on scott.emp to test;
    revoke select on scott.emp from test;

    Oracle 命名规则

    1.必须以字母开头

    2.长度不能超过30个字符

    3.不能使用保留字

    4.只能使用字符:a-z A-Z 0-9 # $

    数据类型:

    char 固定长度

    varchar2(N) 长度可变

    number 数字类型

    date

    timestamp 

    blob 二进制数据

     Oracle 分页:

    分页通过rownum 字段实现

    select e.*,rownum rw from  emp e where rownum< 5;

    存储过程

    存储过程执行特定的操作,可以指定输入参数、输出参数

    create procedure sp_update(empno number) IS
    begin
      update emp set ename = 'baizhuang' where empno = empno;
      end;
    exec sp_update(7369);
    commit;

    视图

    视图是一张虚拟表,内容有查询定义,视图是动态生成的,并不是真实存在的

    --定义视图
    create view v_emp as
    select * from emp;
    --scott权限不足定义视图,转换为sys 给scott授权
    grant resource,dba to scott;
    --使用视图
    select * from v_emp;

     触发器

    触发器是在定义的条件成立时,触发器里面的定义语句就会自动执行, 触发器不需要人为调用。触发器分为:语句级触发器、行级触发器

    create or replace tigger t_emp before delete
    on emp
    for each row
    begin
      insert into log(msg) values('emp 又执行删除任务了');
    end;

     语句清单:

    --c创建用户 test 密码 test
    create user test identified by test;
    --修改密码为 123456
    alter user test identified by 123456;
    --删除用户 
    drop user test;
    --权限 保留用户权限(connect、resource、dba)、对象权限(insert、delete、pudate、select)
    --获取 oracle 数据库对象
    SELECT * FROM Dba_Object_Size;
    --给用户赋予角色
    grant connect,resource to test; 
    --权限传递 ,不同用户之间授权访问表
    grant select on scott.emp to test;
    --收回权限
    revoke select on scott.emp from test;
    
    select * from emp;
    select * from dept;
    select count(*),avg(sal)  from emp;
    --oracle 分页通过 rownum 
    select e.*,rownum from emp e;
    --对 emp 分页
    select e.*,rownum rw from  emp e where rownum< 5;
    
    --建立存储过程
    create procedure sp_update(empno number) IS
    begin
      update emp set ename = 'baizhuang' where empno = empno;
      end;
    
    --执行存储过程
    exec sp_update(7369);
    commit;
    --测试sql
    update emp set ename = 'BA' where empno = '7369';
    --定义视图
    create view v_emp as
    select * from emp;
    --scott权限不足定义视图,转换为sys 给scott授权
    grant resource,dba to scott;
    --使用视图
    select * from v_emp;
    --使用触发器
    create or replace trigger t_emp before delete
    on emp
    for each row
      begin
        insert into log(msg) values('emp 又执行删除任务了');
        end;
        
    --创建 log 表
    create table log(
       msg varchar2(20)
    );
    --执行删除 出发 tigger
    delete from emp where empno = 7369;
  • 相关阅读:
    2014下半年软考总结
    Java学习之Filter
    java学习之PreparedStatement
    java学习之dom4j 对 xml的读取
    Windows查看端口占用及杀掉进程
    CentOS压力测试工具Tsung安装和图形报表生成Tsung安装配置
    Tsung压力测试:Openfire
    CentOS Mysql安装配置
    nodejs、webpack
    IOS操作系统上执行monkey测试
  • 原文地址:https://www.cnblogs.com/baizhuang/p/10521593.html
Copyright © 2020-2023  润新知