一个Oracle数据库服务器包括:
1、 存储oracle数据的物理数据库,即保存oracle数据库数据的一系列物理文件,包含控制文件、数据文件、日志文件和其他文件。
2、 Oracle实例:这是物理数据库和用户之间的一个中间层,用来分配内存,运行各种后台进程,这些分配的内存区和后台进程统称为oracle实例。
实例不是数据库,数据库主要是指用于存储数据的物理结构,总是实际存在的。而实例是由操作系统的内存结构和一系列进程组成的,可以对实例进行启动和关闭。
一台计算机上可以创建多个oracle数据库,但要使用这些数据库,就需要创建多个实例,因此oracle系统要求每个实例要使用SID进行区分,即在创建数据库时要指定SID。SID是实例的标识。 实例和数据的关系是一对一或多对一的关系, 多对一的架构成为集群(RAC, oracle Real application clusters)
PL/SQL语句不区分大小写,每一条语句以分号进行结尾。
PL/SQL和SQL两种语句分别使用了两种不同的引擎进行处理, 而PL/SQL引擎可以整合在服务器或客户端, 当此引擎整合在客户端时,如果PL/SQL包含了对服务器端存储过程的调用,那么仍然需要发送到服务端进行处理,也就是说,SQL和存储调用的PL/SQL必须由服务器端进行处理。
当使用SQL时,可以以分号结束或者回车后使用“/”结束。
当使用PL/SQL时,一定要以DECLARE或BEGIN来标识语句的开始,内部的单条语句都已分号结束,同时整个语句块结束后要用”/”来标识结束,并发送。
如下PL/SQL语句块:
declare mnttime date; begin select sysdate into mnttime from dual; dbms_output.put_line(‘time is:‘||mnttime); -- set serveroutput on/off 打开或关闭屏显 dbms_output.put_line(‘ok, im fine‘); end; /
可以将语句保存到文件,然后是用那个”@ /path/filename.sql” 调用。
替换变量:
SELECT empno, ename FROM emp WHERE deptno=&部门编号;
如果替换变量为数值列提供数据,则可以直接饮用;如果为字符类型或日期类型提供数据,则需要在SQL语句中将替换变量用单引号引起来。
SELECT &empno, ename FROM emp WHERE ename=’&ENAME’;
使用双&&则是全局替换变量,当前SQL*PLUS环境下通用。
语句:
启用被锁定的账户:
ALTER USER tom ACCOUNT UNLOCK;
链接数据库:
CONNECT tom/tom123; --默认使用ORACLE_SID变量指定的SID
CONNECT tom/[email protected]; 手动指定要链接的SID