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 存储过程名 ...
随机推荐
- 基于python的发送邮件案例
#coding:utf-8 #强制使用utf-8编码格式 import smtplib #加载smtplib模块 from email.mime.text import MIMEText from e ...
- 2018.4.27 python使用过的第三方库
Flask flask-login flask-sqlalchemy flask-mail psutil lvm2py oss2 python-ldap pyudev pyOpenSSL urllib ...
- fixed 相对于父容器定位
当一个元素设置为 fixed 或 absolute,不设置 top, left 则会在原位置,而脱离文档流,别的元素可以存在于它之后. 而当使用 fixed 后还想相对于父容器进行定位,或者说在当前位 ...
- Dynamics 365 CRM large instance copy
使用CRM 大家想必都做过copy. 从一个instance 复制到另外一个instance. 如果你是Dynamics 365 CRM 用户, 并且你的instance超过500GB,甚至1TB+的 ...
- solrJ
导入jar包 package com.tzy.solrJ; import java.io.IOException; import org.apache.solr.client.solrj.SolrSe ...
- grep 使用
如果需要搜索含空格的字符串,加双引号 | grep "cd /tmp" 参考链接 1.grep 后加单引号.双引号和不加引号的区别
- keepalive实现MGR的自动切换(二)
10.0.0.7 lemon 10.0.0.8 lemon2 10.0.0.9 lemon3 程序代码里只需写一个VIP连接数据库即可,后面是连接在哪一台通过,keepalived的在服务端实现: ...
- vs2015 加载项目的时启动:无法启动 IIS Express Web 服务器
使用Visual Studio 2015 运行ASP.NET项目时,提示“无法启动IIS Express Web服务器”,无法运行,如图: 一般出现在重装系统之后,或者项目是从别的电脑上复制过来的.解 ...
- Delphi LiveBinds组件
Component Logo Component Name Description TBindSourceDB Is used for creating bindings to databases. ...
- 读取 exe dll 自定义config 文件
ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = GPARAM._configF ...