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 存储过程名 ...
随机推荐
- configparse模块和hashlib模块
# import configparser # # config = configparser.ConfigParser() #config = {} # config['DEFAULT'] = {' ...
- 学习笔记TF045:人工智能、深度学习、TensorFlow、比赛、公司
人工智能,用计算机实现人类智能.机器通过大量训练数据训练,程序不断自我学习.修正训练模型.模型本质,一堆参数,描述业务特点.机器学习和深度学习(结合深度神经网络). 传统计算机器下棋,贪婪算法,Alp ...
- Javascript 蛤蟆可以吃队友,也可以吃对手 比较字符串
Javascript 蛤蟆可以吃队友,也可以吃对手 比较字符串 function mutation(arr) { for(var i = 0; i < arr[1].length; i++) { ...
- zabbix图形化界面乱码(二)
中文字体乱码,解决办法: 1:从Windos下拷贝字体到服务器,C:\Windows\Fonts,有很多,看着喜欢的拷贝 2:然后在zabbix 服务端,进入到zabbix web的工作目 ...
- ID的故事
随心所欲.这个时代比较中二吧,刚出国,也买了房,年纪轻轻的觉得自己好像很牛B的样子. 失败悲观的路人甲.大约是13年的时候,突遭重击,一下子悲观失望,死的心都有.为此买了那种自杀也会给赔偿的保险(买后 ...
- 用C自撸apache简易模块,搭建图片处理服务器。
写C是个撸sir /* ** mod_acthumb.c -- Apache sample acthumb module ** [Autogenerated via ``apxs -n acthumb ...
- win10系统IE浏览器中无法显示Java国际化的问题
http://jingyan.baidu.com/article/656db918e37914e381249c9f.html?qq-pf-to=pcqq.c2c 自从装上Win10系统后,跟随前些IE ...
- 二进制 转换成十进制 BCD码(加3移位法)
"原来的二进制数十几位,则左移时就要左移几位" "二进制数调整BCD码的方法是将二进制码左移8次,每次移位后都检查低四位LSD+3是否大于7,如是则加3,否则不加,高4位 ...
- Java中用字符串常量赋值和使用new构造String对象的区别
String str1 = "ABC"; String str2 = new String("ABC"); String str1 = “ABC”;可能创建一个 ...
- C++Primer第五版——习题答案详解(九)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第10章 泛型算法 练习10.1 #include<iostream> #i ...