Oracel从入门到精通@明日科技

 

一,基本操作

  1. 登录用户 SYSTEM 或者SYS
  2. 开启关闭数据库  STARTUP   ,SHUTDOWN  

二,ORACLE体系

  1. ORACLE逻辑存储结构:ORACLE>表空间>表,索引,视图>段>数据区>数据块
  2.     SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME='DB_BLOCK_SIZE'; --查看块大小
  3.     在执行CREATE INDEX,SELECT ORDER BY , SELECT DISTINCT 和SELECT GROUP BY 等,会在临时表空间分配临时段。
  4.     表空间是最大逻辑划分,任何数据对象,在创建是都必须指定某个表空间。

三,SQL*PLUS 命令

  1.   SET system_variable  value  :  常用变量设置
  2.    DESC;
  3.    SPOOL 查询结果输出到文件;
  4.   SAVE 缓冲区SQL保存到文件;  GET同SAVE相反;
  5.   START/@  执行一个SQL脚本文件;
  6.   格式化: COL  , HEADING,  ON/OFF,  TTI;BTI 

四,SQL语言基础

  1.     SQL 结构化查询语言;在关系数据库中定义和操纵数据;
  2.   数据定义语言(CREATE TABLE,ALTER TABLE )自动COMMIT;
  3.  数据控制语言(GRANT ,REVOKE )自动COMMIT;
  4. 模式是一个数据库对象的集合
  5. 账户被锁定:   alter user scott identified by tiger;  alter user scott account unlock;
  6. WHERE 子句比较筛选 :    any   , all 
  7. 下划线_表示匹配一个字符 
  8. 空值是不存在,空字串是长度为0;   IS NULL , IS NOT NULL
  9. 分组用来汇总,HAVING 子句对GROUP BY 子句折结果进行过滤,可以包含聚合函数  。
  10. 多表关联; JOIN表示内连接; 关联的查询效率高;子查询要慢些;
  11. 常用函数 : acii(i) , chr(i), concat(s1,s2),  initcap(s), instr(s1,s2,n),  LTRIM,RTRIM,TRIM(S1,S2)  REPLACE, SUBSTR 
  12. CEIL,ROUND , POWER,SYSDATE,ADD_MONTHS,
  13. truncate 删除表中所有记录(推荐命令,而不是delete)
  14. 事务:原子性 ,一致性,隔离性和持久性

五,PL/SQL

  1. PL/SQL是一种过程化语言,可以控制程序的执行流程,是对标准SQL的扩展
  2. 与ORACLE类型区别:varchar2最大32767而sql 最大4000 ; char最大32767默认1后面补空格,而oracle最大2000;long最大32767而oracle最大2GB
  3. %rowtype 类型:一种能够存储表中一行数据的结构类型
  4. for语句使用Reverse 时计数器循环递减
  5. 游标使用:声明-打开-读取-关闭
  6. 隐式游标:update ,delete 中自带
  7. 游标属性:%found   %notfound  %rowcount  %isopen

 

六,过程,函数 ,触发器

  1. 存储过程是已经编译好的代码,执行效率非常高,入参可以有default 
  2. 函数必须有返回值
  3. 触发器:强化安全性,启用业务逻辑,日志记录操作,
  4. 程序包:由规范和包体组成;DBMS_OUTPUT是程序包

七,管理控制文件和日志文件

日志文件和数据库备份文件用来恢复到最近一次记录日志时状态

八,管理表空间和数据文件

创建表空间时必须创建数据文件,增加数据文件时也要指定表空间;

如果表上大量INSERT操作,设置较大的PCTFREE

九,数据表对象

  1. 每一个表都被一个模式或者用户拥有,是一种典型的模式对象。
  2. char存储固定长度;varchar2 根据实际字符长自动调整;
  3. lob型:BLOB 存储二进制128MB;CLOB存储字符128M对象,oracle首先把字符思考unicode格式再存储;BFILE字段;
  4. rowid:伪列类型,保存记录的物理地址,可以获得最快的访问速度
  5. alter table  XXX add / drop (col)/ modify / rename to / move tablespace /read only(write)
  6. 主键约束:constraint XX_PK primary key(Y); 或者alter table XX add constraint XX_PK primary key(Y);  
  7. 系统自动分配名称: alter table XXX add primary key(Y);
  8. alter table XX drop constraint XX_PK

十,其它数据对象

  1. 索引:包含字段值 +ROWID,加快查找
  2. 将索引和对应的表放在不同硬盘的不同表空间,能提高并行查询速度
  3. 索引应建在WHERE子句频繁引用列上,建在经常使用排序的列上,限制表索引个数(会降低DML),不要在小表上建索引,使用NOLOGGING,多表连接时要在连接列上建索引
  4. 视图:是一个虚拟表,
  5. 同义词对象:表/索引/视图的别名,
  6. 序列对象:以提供唯一主键

十一,表分区与索引分区

  1. 使用分区来提高查询性能,简化日常维护工作,
  2. 创建索引分区:

十二,用户管理与权限分配

  1. 角色 是一组权限集合
  2.  

十三,系统调优

  1. 调优参数:
  2. SGA优化:调整内存分配,日志缓冲区,共享池,缓冲区
  3. 排序区优化:

十四,优化SQL查询 

  1. 不要用*代替列名
  2. 用TRUNC代替DELET
  3. 多用COMMIT
  4. 减少表查询次数(子查询)
  5. 用(not) exists 代替 (not) in
  6. 表连接前WHERE过滤掉的越多越好
  7. 合理使用索引 
  8. 避免扫描全表:没有索引 ,返回全部行,like % ;使用了函数 ,is null, is not null, != 

 

 

十五,备份与恢复

RMAN 的使用

十六,导入导出

EXPDP,IMPDP

十七,闪回技术

 

 

 

------------------------------------------------------------for comments:

 

https://github.com/HaoLaoshi/oracle_scripts

 

 

展开阅读全文

没有更多推荐了,返回首页