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

本文详细介绍了Oracle数据库的管理操作,包括用户管理、权限分配、数据类型、存储过程、视图和触发器的创建与使用。同时,还探讨了数据库分类及项目选择原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章: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;

 

转载于:https://www.cnblogs.com/baizhuang/p/10521593.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值