体系结构:
数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。
体系结构包括:实例(instence),数据库文件(database),用户进程(user process)
,服务器进程(server process),以及其他文件(如参数文件(parameter file),密码文件(password file),归档日志文件(archive log file)等)。
Oracle服务器由数据库文件和数据库实例组成。
其中数据库实例包括SGA(即内存结构的集合)和管理数据库的后台进程。
数据库文件包括三种:数据文件(data files),控制文件(control files)和重做日志文件(redo log files)。
Oracle中的3个主要内存区域是:
– 系统全局区域(system global area,SGA)--当数据库实例启动时会首先分配
– 程序全局区域(program global area,PGA)
– 用户全局区域(user global area,UGA)
SGA内存结构包括: 共享池(Shared Pool),数据缓冲区(Database Buffer Cache),重做日志缓冲区(Redo Log Buffer Cache)。共享池的作用:共享池由库缓存和数据字典缓存组成。缓存和共享SQL或PL/SQL代码;数据缓冲区的作用:存储从数据文件中读入的数据,提高查询速度;重做日志缓冲区的作用:变化前和变化后的数据在写入数据缓冲区前都会先写入重做日志缓冲区,这样在数据恢复时,Oracle就知道哪些需要回滚。日志数据首先产生于重做日志缓冲区,当重做日志缓冲区的日志数据达到一定数量时,由日志写进程LGWR将日志数据写入重做日志文件中。
PGA是为单独的服务器进程存储私有数据的内存区域,只为各个服务器进程提供一个PGA。PGA只能由他们的服务器进程访问。
UGA是用于存储会话状态的内存区域。UGA的位置依赖于服务器是运行在共享服务器模式中,还是专用服务器模式中。在专用服务器模式中,UGA会在PGA中分配,只能够由服务器进程访问。
Oracle进程主要有用户进程、服务器进程和后台进程。
用户进程是一个需要与Oracle服务器进行交互的程序。
服务器进程犹如一个中介,完成用户的各种数据服务请求,而把数据库服务器返回的数据发给客户端。
后台进程主要作用是协调好系统的性能。其主要包括进程监控进程(PMON,服务器进程的管理和维护)、系统监控进程(SMON,在数据库出现故障时进行实例恢复)、数据库写进程(DBWR,主要负责将数据缓冲区内的数据写到数据文件)、重做日志写进程(LGWR,主要负责将重做日志缓冲区内的数据写到重做日志文件)及检查点进程(CKPT,其作用是保证所有修改过的数据库缓冲区都被写入数据库文件)。以上5个进程也是数据库启动过程中必须启动的。
数据库启动和关闭
数据库的启动3个状态:
1:NOMOUNT 只打开数据库实例
2:MOUNT 打开实例并读取控制文件
3:OPEN 打开数据库
按123顺序启动
数据库的关闭3个状态:
1:CLOSE 关闭数据库
2:DISMOUNT
3:SHUTDOWN 关闭数据库实例
事务
事务的概念:事务是一组逻辑工作单元,它由一条或多条SQL语句组成。
事务的4个特性:原子性,一致性,隔离性和持久性
事务控制:commit,rollback
SQL语言
SQL语言分为数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。
DDL用于定义SQL模式、基本表、视图和索引的创建和撤消操作。常用命令有:CREATE、ALTER、DROP。
DML用于数据的插入、修改、删除和查询。常用命令有:INSERT、UPDATE、DELETE、SELECT。
DCL用于对基本表的授权、完整性规则的描述和事务的控制等。常用的命令有:GRANT、REVOKE、COMMIT、SAVEPOINT、ROLLBACK。
Char和varchar2两种数据类型的区别:
在数据库中char(n)表示固定长度n的字符串,当实际数据不足定义长度时,将使用空格补全右边不足位,当实际数据的长度大于其固定长度时,Oracle将不允许数据存储于对应列或者变量中,并抛出异常;
而varchar2(n)是可变长的字符串,意味着该列或变量的最大长度不大于n,但当实际数据小于n时,并不在其右端补齐空格。
delete和truncate的区别。
Delete是DML语句,在删除数据时要记录重做信息,且删除数据后不释放表空间,速度慢。Truncate是数据定义语言,执行后数据直接删除且释放表空间,不记录日志信息,速度快。
 
PL/SQL语言
PL/SQL语言的叙述:
PL/SQL是一种块结构的语言,它将一组语句放在一个块中。构成PL/SQL程序的基本单元是逻辑块(如过程、函数或匿名块),每个逻辑块对应要解决的问题或子问题。PL/SQL块共分为3个部分,分别为声明部分、可执行部分和异常处理部分。
属性数据类型包括两种,分别是%TYPE和%ROWTYPE。
1、%TYPE将某种数据类型的变量或列提供给其他变量。
其语法格式为:var1 table_name.column_name%TYPE;其中声明了变量var1,它的数据类型与table_name表中的column_name字段的数据类型相同。
2、%ROWTYPE提供一种表示表中的某行的记录类型。
   其语法格式为:var1 table_name%ROWTYPE;其中声明了变量var1,可以用来存储从table_name表中提取的一个记录。
过程、函数、程序包
过程和函数的区别:过程没返回值,而函数有返回值。
程序包是对相关过程、函数、变量、游标和异常等对象的封装。
程序包由规范和主体两部分组成。规范可以在没有程序包主体的情况下存在,主体不能在没有程序包规格说明的情况下存在。
游标和触发器
游标的4种属性:%Isopen 、%found、%notfound、%rowcount。
使用游标的4个步骤:定义游标(declare)、打开游标(open)、循环取数据(fetch)、关闭游标(close)。
显式游标和隐式游标在使用过程中的区别:显示游标使用时要定义、隐式游标不需要定义,在上下文中的dml语句默认使用隐式游标。
触发器定义:触发器是当特定事件出现时自动执行的代码块。
触发器与过程的区别:过程是由用户或应用程序甚至是触发器显式调用的,而触发器是由Oracle根据发生的事件而隐式激活的,它不能被直接调用执行。
触发器的类型及其运行时机:
Oracle触发器分为DML触发器、模式(DDL或用户事件)触发器和数据库级触发器。
1:DML触发器:当DML语句在表中发生时执行。DML语句包括以下3种类型:
a.语句级触发器:无论受触发语句影响的行数是多少,都只激活一次。
b.行级触发器:每当触发器语句影响表时就会激活行级触发器,行级触发器在被修改的每一行上执行一次。
c.INSTEAD OF触发器:允许用户修改不能使用DML语句修改的视图。INSTEAD OF触发器只可用于视图,不可用于表。
2:模式(DDL或用户事件)触发器:在数据库模式中执行DDL语句时激活。
3:数据库(系统事件)触发器:在发生LOGOFF(退出)、LOGON(登录)、STARTUP(打开)、SHUTDOWN(关闭)数据库和SERVERERROR(生成错误消息)等系统事件时执行。
数据库对象(同义词,序列,视图,索引) 
同义词的定义:是现有对象的一个别名。
同义词的作用:
1:简化SQL语句。2:隐藏对象的名称和所有者。3:提供对对象的公共访问。
同义词的两种类型:
1:公有同义词。CREATE public synonym emp_syn FOR SCOTT.emp;
2:私有同义词。CREATE synonym emp FOR SCOTT.emp;
公有的同义词只能建立在超级用户下定义。
序列是用来生成唯一、连续的整数的数据库对象。
在表中使用序列:
1.创建序列:
CREATE SEQUENCE sequence_name [START WITH startnum] [INCREMENT BY step];
2.创建表时使用序列:
CREATE TABLE table_name ( uid smallint not null, ...);
3.插入数据时使用序列:
INSERT INTO table_name VALUES(sequence_name.NEXTVAL, ...);
视图是从若干基本表和(或)其他视图构造出来的虚表。
视图和表的区别是:创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,而表会存储对应的数据。
视图的目的和作用:筛选表中数据,简化查询语句,对表起到保护作用。
注:加WITH READ ONLY 选项可使视图不允许DML操作

oracle的知识点总结的更多相关文章

  1. 【体系结构】有关Oracle SCN知识点的整理

    [体系结构]有关Oracle SCN知识点的整理 1  BLOG文档结构图   BLOG_Oracle_lhr_Oracle SCN的一点研究.pdf 2  前言部分 2.1  导读和注意事项 各位技 ...

  2. oracle 数据库——知识点总结(加示例)

    新入oracle数据库,把目前学到的知识点记录下来,可能都比较基础,但还是比较全的,里面的示例都是自己在PL/SQL中跑过的,如果有错误,还望各位大侠指出哈. 创建用户 1.创建用户(使用管理员身份创 ...

  3. 数据从mysql迁移至oracle时知识点记录(一)

    最近在做数据的迁移,再将数据从mysql迁移至oracle时,部分sql语句进行了修改,在此对部分知识点进行记录: 参考资料:https://dev.mysql.com/doc/refman/5.5/ ...

  4. Oracle 相关知识点结构图

    最近在学Oracle数据库,制作了些结构图方便记忆!主要涉及到Oracle数据类型,Oracle的表操作以及Oracle的游标,还有的之后再分享...... Oracle 数据类型 因为图片上只能看到 ...

  5. oracle数据库知识点

    1.oracle启动后的服务 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存 ...

  6. Oracle基础知识点——Oracle服务端和客户端

    Oracle服务端 服务端提供oracle服务的实例,其是数据库的核心,用于数据库的管理,对象的管理与存储.数据的存储.查询.数据库资源的监控.监听等一些服务. 例子:比如一台机子上安装了Oracle ...

  7. oracle小知识点

    一 . procedure和function: procedure和function在语法上几乎完全一样,使用上却有小小的差别, procedure可以单独的调用 在命令行直接exec pro_xxx ...

  8. Oracle 重要知识点

    这些是最简单的,理解这些再去看其他的高深一点的吧....... 游标 oracle里面的游标分为四种情况,分别是LOOP循环,FOR循环,删除,更新 1.LOOP循环 检索EMP表.使用LOOP循环语 ...

  9. oracle 基本知识点

    //创建临时表空间create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserver ...

随机推荐

  1. codeforces gym 101611C 重链剖分构造

    给一棵树 要求在一个20*1e6的矩阵上放下这棵树,每个点的坐标都是整数且所有边都不相叉 题解 按照重链遍历,先给轻儿子坐标,然后沿着重儿子向下走即可 #include <bits/stdc++ ...

  2. npm vue ivew vue-cli3

    2019-4-10 10:56:20 星期三 学习iview时需要搭建一套node环境, 这里记录下来 1. 下载安装nodejs  //自带了npm包管理器 2. 设置npm的全局配置: 全局包默认 ...

  3. 如何用java实现一个p2p种子搜索(2)-路由表实现

    路由表实现 回顾一下上一篇讲的内容,上一篇提到从dht网络中获取infohash,那么加入dht网络后的最重要的第一步就是怎么去建立路由表. 路由表里面保存的是dht中其他node的信息,所以node ...

  4. 小程序如何传数组数据到vs后台中

    首先小程序要跟vs运行的状态打通,首先要修改配置,也就是说调试的时候,小程序一使用Post请求后台的方法时就能让vs进入调试状态. 1.修改vs中的配置,注意这个.vs文件,如图: 找到这个文件 然后 ...

  5. Ext z自写checkbox

    软件弹出框Exr.window里面有许多个CheckBox,用ext自带的CheckBoxGroup也可以实现,但是在后期处理的时候远没有自写的CheckBox灵活,还出了一些莫名其妙的bug 忍无可 ...

  6. C#基于websocket-sharp实现简易httpserver(封装)

    一.背景 其实就是很简单的,公司会桌面开发的人员紧缺啊,项目又赶,而我们公司的前端人员人多还厉害(ps:吐槽下,后端的人真的少啊,会桌面开发的更少啊),所以萌生出了使用html+js来构建本地应用程序 ...

  7. J2EE_Maven_POM文件配置的详解(转)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. fastjson与net.sf.json区别

    在现在的开发当中,绝大多数引用阿里巴巴的fastjson.当然net.sf.json同样可以使用. 一.引入net.sf.json包 首先用net.sf.json包,当然你要导入很多包来支持commo ...

  9. VisualVM远程监控Java

    1.服务器启动jstatd服务设置: jstatd将使用RMISecurityPolicy,并且需要指定安全策略文件. 安全策略文件必须符合安全策略语法,通过命令 jstatd -J-Djava.se ...

  10. PADS Layout VX.2.3 制作PCB封装(Decal)时,导入DXF文件

    操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 进入PCB封装编辑器(Decal Editor),点击Drafting Toolbar > Import D ...