oracle数据库实践笔记.docx
文本预览下载声明
oracle 结构oracle serverinstance(例程)内存结构SGA系统全局区域,数据被多会话使用共享Shared poolLibrary cache(是代码)Sql区0pl /sql区(后台编程,oracle对sql的扩展) t-sql sql.pldata dictionary cache(数据字典,像注册表一样重要,是系统数据。Dict是表名和注释的表)数据字典视图(静态)(来自数据文件)USER_做前缀:当前用户是所有者如USER_TABLES,UESR_INDEXESALL_做前缀:当前用户能访问到的对象DBA_做前缀:管理员动态性能视图(来自内存)V$做前缀如V$SGAINFODatabase buffer cache缓存数据Redo log buffer cache(log:日志,记录事务)事务:A: 原子性C:一致性I:隔离性D:持久性PGA专用区域,被某特定会话专用(对堆表进行排序处理等操作的内存)进程结构用户进程(界面)服务器进程由名称解析找到相应的服务器进程解析的是服务名,找到监听程序,进而找到相应进程分为专用服务器进程(只为一个用户)和共享服务器进程(为很多用户服务,与用户之间存在调度系统)后台进程PMON进程监视进程(监视进程异常终止,类似垃圾回收)SMON系统监视进程(恢复例程)DBWR数据库书写器(将数据缓存写入数据文件即内存到外存)LGWR日志书写器(将日志缓存写入日志文件即内存到外存)CKPT检查点进程(检查点:1同步所有数据文件2同步所有控制文件3通知DBWR进程将内存写入文件中)Othersdatabase(文件集合)分为内部文件和外部文件内部文件:数据库用的文件,可能会随时变化外部文件:配置,不主动修改则不会变SQLQL(SELECT)DML(INSERT;UPDATE;DELETE;MERGE(INSERT+UPDATE))DDL数据定义语言(CREATE,ALTER,DROP,TRUNCATE,RENAME,COMMENT)DCL数据控制语言,控制数据的访问(GRANT;REVOKE)TCL事务控制(COMMIT;ROLLBACK;SAVEPOINT)Dual是空表如SELECT 3+4 FROM DUAL;SELECT SYSDATE FROM DUAL;ORACLE 双引号表示名称,单引号是字符串如SELECT ‘A’“B” FROM DUAL;单引号中加单引号,用两个连续单引号表示SELECT 3+’4’ FROM DUAL;结果还是7,因为加号只表示运算,字符串连接用||SQL 大小写不敏感:大小写结果相同,但是解析过程有所不同。只要有一点不一样,hash_value就不一样,就会重新解析。但是plan_hash_value一样Oltp: similar olap:exactHelp index@c:\demo.sql调用硬盘中的命令Edit + run 修改缓存中的指令,、也是运行Distinct和unique一样Between and 包含临界点通配符:_:一个%:0或多个Escape:’AB$_%’ ESCAPE ‘$’排序:默认升序(ASC),DESC是降序。Order by 数字(第几列)Order department, salary desc前面的升序,相同的department 按salary降序Sql reference参考书SUBSTR(‘DSAF’,2,2); SUBSTR(‘DSAF’,-2,2)INSTR(‘DSAFSS’, ’S’, 1,2):从第一个开始,第二次出现的select lpad( ,(level-1)*2)||ename ename,level from empstart with empno=7839connect by prior empno=mgr从empno=7839开始,(你的)empno=(别人的)mgrShow pagesize; set pagesize 20;cname formate a20Startup mountAlter database openSelect sysdate from dual;Nls:和国家语言有关alter session set nls_date_format=yyyy-mm-dd hh:mi:ss;alter session set nls_date_format=yyyy-mm-dd hh24:mi:ss;alter session set nls_date_format=yyyy-mm-dd hh:mi:ss am;select current_date from dual;alter session nls_language=English;select NEX
显示全部