Oracle数据库期末总结
基础内容-服务相关
Sql分为
- DDL:(Data Definition Language) 修改数据库对象,create,alter,drop,grant,revoke..
- DML:(Data Manipulation Language)数据操纵,insert,update,delete
- DQL:(Data Query Language)数据检索,select
- 事务控制:commit,rollback,savepoint
SID(Oracle服务标识符):orcl
重要的服务:OracleserviceORCL(必开服务)/OracleOraDb11g_home1TNSListener(监听)
网络配置:服务器端监听:listener.ora 客户端本地网络配置tnsnames.ora
登录sqlplus /切换conn
文件命令:save(保存缓冲)/spool(保存屏幕内容)
环境变量:linesize,pagesize,show linesize;set linesize 300 pagesize 15;
显示表结构:desc
Oracle体系结构:
图1
物理结构:数据文件,重做日志文件,控制文件
逻辑结构:表空间>段>区>数据块
数据块->Oracle最小逻辑存储单元,数据库执行输入输出的最小单位,有一个或多个操作系统块组成,块默认8k
区->Oracle存储空间分配的最小单位,默认64k
表空间与数据文件之间的关系:
图二
内存结构(SGA ,PGA)
- SGA 高速缓存区工作过程 图三
- 重做日志缓冲区:循环使用
- 共享池:库缓存和数据字典缓存区
Oracle后台进程
- (用户进程,服务器进程,后台进程)
- 后台进程:DBWR(数据写),LGWR(日志写),CKPT,SMON,PMON,ARCH(日志归档)
数据字典
- 存于system表空间,属于sys模式
- 静态数据字典表和视图(dba_tables,dba_data_files,user_tables)
- 动态(v$datafile,v$database,v$instance)
表空间概念:
- 数据库可划分为若干逻辑存储单元称为表空间
- 每个数据库必有SYSTEM(系统表空间) && SYSAUX(辅助表空间)
表空间(大题)(tablespace)
创建
Create tablespace T_NAME Datafile 'location\F_NAME.dbf' size ?M
Extent Management Local Uniform size ?M //区定制分配
Segment Space Management Manual; //段手动
修改
添加数据文件:
Alter tablespace T_NAME Add Datafile 'F_NAME' size ?M;
自动拓展:
Alter Database Datafile 'F_NAME' Autoextend On Next ?M Maxsize Unlimited;
修改数据文件大小:
Alter Database Datafile 'F_NAME' Resize ?M;
删除,查询
drop tablespace T_NAME including contents and datafiles;
- v$tablespace,dba_tablespaces
数据文件(大题)(.dbf)
改变数据文件名称和内容(4步)
修改表空间可用性(脱机):
Alter tablespace T_NAME Offline;
操作系统修改文件名称或位置:host copy
重命名:
Alter tablespace T_NAME Rename Datafile 'F_NAME1' to 'F_NAME2';
表空间联机
Alter tablespace T_NAME online;
查询数据文件:v$datafile,dba_data_files
数据文件可用性:alter database datafile 'F_NAME' offline|online
控制文件,记录和维护数据库的物理结构 ()
- 多路复用控制文件(4)
- 逻辑上增加控制文件alter system set control_files=.. scope=spfile
- shutdwon immediate
- host copy
- startup
- Oracle数据库启动(startup)步骤:
- shutdown
- nomount:读初始化参数文件(init.ora),启动实例(instance)SGA和后台进程启动
- mount:打开控制文件,可执行日志归档,数据文件联机脱机,数据库介质恢复
- open:所有文件打开
- 多路复用控制文件(4)
重做日志文件(选择)(redo.log)
默认三组,至少需2组,每组至少一个文件,组内文件不同盘,大小一致
查询:v$log,v$logfile
重做日志文件切换 alter system switch logfile
创建重做日志组
alter database add logfile group 4 ('redo1.log','redo2.log') size 10m;
创建重做日志文件
alter database add logfile member 'redo.log' to group 4;
归档文件(选择)
- archivelog/noarchivelog(非归档状态)
模式(schema)
- 概念:是指一系列逻辑数据结构或对象的集合,在创建用户时会生成一个同名模式。
- 在数据库中一个对象的完整名称为schema.object
创建表(table)
create table table_name( rowname type key )
约束(constraint)
primary key(主键约束),check(检查约束),unique(唯一性约束),null/not null(空约束)
primarykey,unique区别?
primary key:
- 定义主键,起惟一标识作用,其值不能为NULL,也不能重复;
- 一个表只能定义一个主键约束
unique:
- 定义为惟一性约束的某一列或多个列的组合的取值必须惟一;
- 如果某一列或多个列仅定义惟一性约束,而没有定义非空约束,则该约束列可以包含多个空值;
相同点:
- 建立同时在该列上建立一个唯一性索引
- 可以是列级也可以是表级约束
※不同点:
- 在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束;
- 对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。
- 不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARY KEY约束。
修改表 alter
- alter table sub_emp2 add(phone varchar2(10))
- alter table sub_emp2 add(hiredate date default sysdate not null)
- alter table player add constraint p_ck1 check(sage between 20 and 30)
索引(选择)(index)
- 索引作用:加快行的检索,减慢更新
- 平衡树索引和位图索引
- 平衡树索引(B-Tree):高基数,重复率低
- 位图索引:适合索引值取值范围小,重复率高,如性别。
- 创建索引:create index emp_name_index on emp(ename);
视图
- 虚表,来自一个或多个基表
- 创建:create view emp_base_info_view (empno ... ) as select empno from emp;
序列(概念):产生唯一序号的数据库对象,生成不重复连续整数
分区表(大题)
范围分区
Create Table student_range(
sno number primary key
score number )
Partition by Range(score)
( Partition p1 values less than(60) tablespace tbs1
partition p2 values less than(80) tablespace tbs2
partition p3 values less than(MAXVALUE) tablespace tbs3
);
列表分区
Create table student_list(
sno number primary key
sex char(2) check(sex in('M','F')))
Partition by List(sex)
( Partition stu_male values('M') tablespace tbs1
Partition stu_female values('F') tablespace tbs2
);
散列(了解一哈)by Hash(sno) (partition p1 tablespace tbs1)
DML 增删改
- insert
- update
- delete
事务处理:commit,rollback,savepoint
数据查询(基本查询,分组查询,多表查询,无关子查询)
- 基本查询:
- 空值判断:select * from s where sno is (not) null
- 模糊查询:where ename like '%s%' //含s
- 排序:order by
- 统计:select count(*) from s group by sno;
- 分组查询:group by having
- 多表查询:select from table1 a,table2 b where a.sno = b.sno;
- 子查询(无关子查询):select from where sno in (select sno from where)
- 基本查询:
pl/sql语句(两道)
执行部分必需,声明与异常可选
select ..into..(只能查一条记录!)
控制结构:循环选择(小题)
if
if condition1 then statement1
elsif condition2 then statement2
else statement3
end if;
case
case
when condition1 then state1
else state2
end case;
Loop
Loop
statement
EXIT when condition --Exit
end loop;
While
while condition loop
statement
end loop;
For
for i in [reverse] 1..10 loop
statement
end loop;
游标(定义,打开,检索,关闭)(必考)
定义:cursor c_emp IS select empno,sal from emp;
打开:open c_emp;
检索:
loop
fetch c_emp into v_emp; -- v_emp c_emp%ROWTYPE
exit when c_emp%NOTFOUND
do sth.
end loop;
- 关闭:close c_emp;
显示游标的属性(%isopen,%fount,%notfount,%rowcount)
- exit when c_emp%notfound
异常 exception
raise user_define_exception
存储过程(Procedure),函数(Function),触发器(Trigger)(2题) (定义)
DML触发器(!!)
Create or replace Trigger trigger_name [before|After]
trigger_event[insert|update|delete] or trigger_event
on table_name
[for each row]
Begin --Trigger body
if to_char(sysdate,'DY','NLS_DATE_LANGUAGE=AMERIVAN')
in ('SAT','SUN') then
Raise application_error(-20001,'error');
END if;
END trigger_name;
CREATE OR REPLACE TRIGGER trg_emp_update_row
BEFORE UPDATE OF sal
ON emp
FOR EACH ROW -- get your attention here
WHEN(new.sal<=old.sal)
BEGIN
RAISE_APPLICATION_ERROR(-20001,'The salary is lower! ');
END trg_emp_update_row;
/* old.field 修改前, new.field 修改后*/
语句级触发器
安全过程
用户管理
- 创建 :Create User user_name identified by user_passwd account lock;
- 修改:Alter User user_name identified by new_passwd account unlock;
权限管理
- 系统权限 grant creat session,create table to user_name;
- 对象权限 grant update,select on scott.emp to user_name;
- 回收权限 revoke create table from user_name;
概要文件管理
创建
create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
create profile password_1 limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
分配
Alter user user_name profile lock_acount;
Create User user_name identified by password profile password_1;
Oracle数据库期末总结的更多相关文章
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Oracle数据库该如何着手优化一个SQL
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- Oracle数据库升级(10.2.0.4->11.2.0.4)
环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...
- 混合框架中Oracle数据库的还原处理操作
在较早期的随笔<Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作>粗略介绍了Oracle数据库的备份还原操作,本文想从开发框架的基础上介绍Oracle数据库的脚本或者还 ...
- Oracle数据库的链接数目超标
测试场景:Oracle数据库的链接数目超标,iServer是否自动连接. 测试步骤:(1)设置了最大连接数为85,oracle后台进程有83:(2)开启3台iserver(A,B,C)A,B发布tes ...
- 将Oracle数据库中的数据写入Excel
将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...
- Oracle数据库11g各版本介绍及功能比较
.标准版和企 业版.所有这些版本都使用相同的通用代码库构建,这意味着企业的数据库管理软件可以轻松地从规模较小的单一处理器服务器扩展到多处理器服务器集 群,而无需更改一行代码.Oracle数据库11g企 ...
随机推荐
- 通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布
前提 前段时间顺利地把整个服务集群和中间件全部从UCloud迁移到阿里云,笔者担任了架构和半个运维的角色.这里详细记录一下通过Nginx.Consul.Upsync实现动态负载均衡和服务平滑发布的核心 ...
- MSSQL2008下备份好的*.bak--->>>恢复到--->>>MSSQL2014(解决办法)
MSSQL2008下备份好的*.bak--->>>恢复到--->>>MSSQL2014(解决办法) 在进行CTE训练时(同时也要理解下窗口函数的应用),发现不能继续 ...
- 小师妹学JVM之:JVM的架构和执行过程
目录 简介 JVM是一种标准 java程序的执行顺序 JVM的架构 类加载系统 运行时数据区域 执行引擎 总结 简介 JVM也叫Java Virtual Machine,它是java程序运行的基础,负 ...
- Excel经典教程之一
照片名称:未命名 照片名称:自动筛选 照片名称:在Excel中字符替换 照片名称:在Excel中直接编辑“宏” 照片名称:在Excel中为导入外部数据 照片名称:在Excel中行列快速转换 照片名称: ...
- 【JMeter_17】JMeter逻辑控制器__随机顺序控制器<Random Order Controller>
随机顺序控制器<Random Order Controller> 业务逻辑: 当控制器被触发时,将控制器下的所有子节点顺序打乱执行一遍,执行一遍,执行一遍,不是执行一个. 注意:是将子节点 ...
- vulstack红队评估(四)
一.环境搭建: ①根据作者公开的靶机信息整理 虚拟机密码: ubuntu: ubuntu:ubuntu win7: douser:Dotest123 Win2008 DC: administr ...
- Newtonsoft 六个超简单又实用的特性,值得一试 【上篇】
一:讲故事 看完官方文档,阅读了一些 Newtonsoft 源码,对它有了新的认识,先总结 六个超经典又实用的特性,同大家一起分享,废话不多说,快来一起看看吧~~~ 二:特性分析 1. 代码格式化 如 ...
- ASP.NET WebAPI框架解析第一篇
ASP.NET WebAPI有两种寄宿模式,一种是WebHost,一种是SelfHost,为什么可以有两种模式的原因在于WebAPI有一个相对独立的消息处理管道,只要给这个消息管道传递一个封装好的对象 ...
- Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误
上一篇随笔中已经说了简单的Jar是如何封装的,但是我的需求是根据TIPTOP的查询条件产生XML文件并上传到FTP主机中,那么就要涉及到XML生成的方法和FTP上传的方法 所以在Eclipse写的时候 ...
- SpringCloud教程第2篇:Ribbon(F版本)
一.ribbon简介 Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign.在这一篇文章首先讲解下基于ribbon+rest. ribbon是一 ...