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 ;
删除用户: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< ;
存储过程
存储过程执行特定的操作,可以指定输入参数、输出参数
create procedure sp_update(empno number) IS
begin
update emp set ename = 'baizhuang' where empno = empno;
end;
exec sp_update();
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;
--修改密码为
alter user test identified by ;
--删除用户
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< ; --建立存储过程
create procedure sp_update(empno number) IS
begin
update emp set ename = 'baizhuang' where empno = empno;
end; --执行存储过程
exec sp_update();
commit;
--测试sql
update emp set ename = 'BA' where empno = '';
--定义视图
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()
);
--执行删除 出发 tigger
delete from emp where empno = ;
Oracle 基本语法、触发器、视图的更多相关文章
- .Net程序员学用Oracle系列(7):视图、函数、过程、包
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...
- .Net程序员学用Oracle系列(23):视图理论、物化视图
1.视图理论 1.1.视图的存储 1.2.视图的作用 1.3.视图的工作机制 1.4.视图的依赖性 1.5.可更新的连接视图 1.6.内联视图 2.物化视图 2.1.刷新物化视图 2.2.物化视图日志 ...
- .Net程序员学用Oracle系列(7):视图、函数、存储过程、包
1.视图 1.1.创建.删除及调用普通视图 1.2.高级视图介绍 2.函数 2.1.系统函数介绍 2.2.创建.删除及调用自定义函数 3.存储过程 3.1.创建.修改及删除存储过程 3.2.调用存储过 ...
- ORACLE| ORACLE基础语法汇总
创 ORACLE| ORACLE基础语法汇总 2018-07-18 16:47:34 YvesHe 阅读数 9141更多 分类专栏: [数据库] 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- ORACLE 创建与使用视图
一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...
- ORACLE基本语法
ORACLE基本语法 一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea.启动ORACLE系统oracle>s ...
- Oracle 创建和使用视图
一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...
- 【转载】oracle更新语法
oracle更新语法:1.一般语法 update tab set col = .... [where ...] =后可以有子查询,但是必须对于tab的每一列返回唯一一行与之对应,where是需 ...
- mysql与oracle的语法对比
数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型:MYSQL ...
- Oracle存储过程语法
原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 ...
随机推荐
- Geoserver 发布shp格式地图服务
本文实践参考https://blog.csdn.net/zj3172172173/article/details/53336704 第一步: 安装geoserver . 自己去官方下载一个安装包 第二 ...
- 关于css样式错乱
在浏览器中的console中执行以下代码会有惊喜哦: [].forEach.call($$("*"), function(a) { a.style.outline = " ...
- springboot解决跨域问题
在启动类里加入corsFilter import org.springframework.boot.SpringApplication; import org.springframework.boot ...
- Matlab关于视觉问题中的一些自有API
[randsample/randperm] y = randsample(n,k);从1:n中随机抽取k个数. y= randperm(n)或者y= randperm(n,k) [rectint] ...
- C# System.IO和对文件的读写操作
System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...
- DateUtils时间单元说明
CompareDate 函数 比较两个日期时间值日期部分的大小 CompareDateTime 函数 比较两个日期时间值的大小 CompareTime 函数 比较两个日期时间值时间部分的大小 Date ...
- TabLayout+ViewPager 标题不显示问题
第一次用TabLayout+ViewPager 组合在布局中写好了三个标题预览没问题而且也设置了 app:tabIndicatorColor="@color/colorAccent" ...
- ARM 编译产生.map之RO RW ZI
RO: 程序中的指令和常量,存储在常量和代码区,因为是不能改变的,所以—READ ONLY; RW: 程序中的已初始化全局变量和静态变量,存储在堆中,因为是变量,所以——READ AND WRITE ...
- springBoot 整合mybaits 逆向工程
pom.xml文件中增加配置项 <build> <plugins> <plugin> <groupId>org.springframework.boot ...
- PV、IV、UV
PV 访问量 UV 独立访客 IV 独立ip数 qps 流量