参考文章: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 基本语法、触发器、视图的更多相关文章

  1. .Net程序员学用Oracle系列(7):视图、函数、过程、包

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...

  2. .Net程序员学用Oracle系列(23):视图理论、物化视图

    1.视图理论 1.1.视图的存储 1.2.视图的作用 1.3.视图的工作机制 1.4.视图的依赖性 1.5.可更新的连接视图 1.6.内联视图 2.物化视图 2.1.刷新物化视图 2.2.物化视图日志 ...

  3. .Net程序员学用Oracle系列(7):视图、函数、存储过程、包

    1.视图 1.1.创建.删除及调用普通视图 1.2.高级视图介绍 2.函数 2.1.系统函数介绍 2.2.创建.删除及调用自定义函数 3.存储过程 3.1.创建.修改及删除存储过程 3.2.调用存储过 ...

  4. ORACLE| ORACLE基础语法汇总

    创 ORACLE| ORACLE基础语法汇总 2018-07-18 16:47:34 YvesHe 阅读数 9141更多 分类专栏: [数据库]   版权声明:本文为博主原创文章,遵循CC 4.0 B ...

  5. ORACLE 创建与使用视图

    一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...

  6. ORACLE基本语法

    ORACLE基本语法 一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea.启动ORACLE系统oracle>s ...

  7. Oracle 创建和使用视图

    一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...

  8. 【转载】oracle更新语法

    oracle更新语法:1.一般语法   update tab set col = .... [where ...]   =后可以有子查询,但是必须对于tab的每一列返回唯一一行与之对应,where是需 ...

  9. mysql与oracle的语法对比

    数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型:MYSQL ...

  10. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

随机推荐

  1. 664. Strange Printer

    class Solution { public: int dp[100][100]; int dfs(const string &s, int i,int j) { if(i>j)ret ...

  2. 解决WPF中异常导致的程序Crash

    通常在WPF中出现异常,会导致程序Crash,即使把异常Throw出来,依旧会报错,解决方法只需在App.xaml.cs中进行处理即可,废话不说,代码如下: private int exception ...

  3. Java高级特性 第6节 注解初识

    一.注解概述 Java注解也就是Annotation,是Java代码里的特殊标记,它为Java程序代码提供了一种形式化的方法,用来表达额外的某些信息,这些信息是代码本身无法表示的. 注解以标签的形式存 ...

  4. zabbix之 自定义内存使用率监控报警

    配置zabbix当内存剩余不足15%的时候触发报警   zabbix默认的剩余内存报警:Average Lack of available memory on server {HOST.NAME}{T ...

  5. php正则判断是否同时有数字和字母

    1.php正则判断是否同时有数字和字母$subject = 'qq2';var_dump(preg_match('/^(?![0-9]+$)(?![a-zA-Z]+$)/', $subject)); ...

  6. @RequestParam接收解析不到 POST 提交的 数据

    1.使用postman或者其他发送请求模拟器进行模拟访问,需要指定Headers为Content-Type:application/x-www-form-urlencoded;指定body类型为x-w ...

  7. Office_PPT_让你一分钟完成上百张图片的快速保存

    1 方式 修改PPT文件格式,由PPT修改为rar,再进行解压操作 进入到ppt->media中找到你在PPT为文件中使用的图片. 2 PPT北京图片下载网址 别样网:https://www.s ...

  8. ubuntu14.04 安装jdk1.8及以上

    安装xmind1.8 碰到jvm版本太低的错误: Version 1.7.0_131 of the JVM is not suitable for this product. Version: 1.8 ...

  9. 读书笔记——《redis入门指南(第2版)》第三章 入门

    3 .redis的5种数据类型及相应命令 redis不区分命令大小写. string 512m 一个散列类型键可包含至多232-1个字段 一个列表类型键最多能容纳232-1个元素 一个集合类型键最多能 ...

  10. Docker基本命令与使用 —— Docker容器的网络连接(四)

    一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...