oracle练习题

oracle练习题
oracle练习题

oracle练习题

查询练习一

--查询首字母为“A”或第二个字符为“A”的所有员工信息

SELECT*

FROM emp

WHERE ename LIKE'A%'

OR ename LIKE'_A%';

--查询部门20和30中的、岗位不是“CLERK”或“SALESMAN”的所有员工信息SELECT*

FROM emp

WHERE job !='CLERK'

AND job !='SALESMAN'

AND deptno IN(20,30);

--查询出工资在2500-3500之间,1981年入职的,没有奖金的所有员工信息SELECT*

FROM emp

WHERE EXTRACT(YEAR FROM hiredate) =1981

AND sal BETWEEN2500AND3000

AND comm IS NULL;

--查询比平均员工工资高的员工信息

SELECT deptno, dname, loc

FROM dept

WHERE deptno IN(

SELECT deptno

FROM emp

GROUP BY deptno

HAVING AVG(sal) >2000

);

--查询平均工资高于2000的部门信息

select deptno ,dname,loc

from dept

where deptno in(select deptno

from emp

group by deptno

having avg(sal)>2000);

--查询出ward的工作所在地

SELECT loc

FROM dept

WHERE deptno IN(

SELECT deptno

FROM emp

WHERE ename ='WARD'

);

--查询出工资比ADAMS高的所有人、部门、所在地SELECT a.ename, b.dname, a.sal

FROM emp a, dept b

WHERE a.deptno = b.deptno

AND a.sal > (

SELECT sal

FROM emp

WHERE ename ='ADAMS'

);

--查询出工资排名第7的员工信息

SELECT*

FROM(

SELECT rank() OVER (ORDER BY sal DESC)AS rk, emp.*

FROM emp

)

WHERE rk =7;

/*minue:两个结果值相减,

uniou:两个结果集拼到一起

(1~7)-(1~6)=排名第7

*/

--查询与部门20岗位不同的员工工资

SELECT sal, job,deptno

FROM emp

WHERE job NOT IN(

SELECT job

FROM emp

WHERE deptno =20

);

--验证--20部门的岗位

/*select job

from emp

where deptno=20;*/

--查询与smith部门岗位完全相同的员工、工作、工资SELECT*

FROM emp

WHERE deptno IN(

SELECT deptno

FROM emp

WHERE ename ='SMITH'

)

AND job IN(

SELECT job

FROM emp

WHERE ename ='SMITH'

);

--查询emp表中的所有信息

select*

from emp;

--查询emp表中的员工和工资

select ename,sal

from emp;

--查询emp表中部门编号为20的并且sal大于3000的所有员工信息select*

from emp

where deptno=20and sal>3000;

--查询emp表中部门编号为20的或者sal大于3000的所有员工信息select*

from emp

where deptno=20or sal>3000;

--使用between and查询工资在2000到4000之间的员工

select*

from emp

where sal between2000and4000;

--使用in查询部门编号10,20的所有员工

select*

from emp

where deptno in(10,20);

--使用like查询所有名字中包括W的员工信息

select*

from emp

where ename like'%W%';

--使用like查询所有员工名字中的第二子字母为W的员工信息select*

from emp

where ename like'_W%';

--查询所有员工信息并按照部门编号和工资进行排序

select*

from emp

order by deptno,sal ;

--显示员工共工资上浮20%的结果

select sal+sal*0.2

from emp;

/*最后一题的另一种思路

minue:两个结果值相减,

uniou:两个结果集拼到一起

(1~7)-(1~6)=排名第7

*/

--11显示emp表的员工以及工资和奖金的和

--12显示dept表的容,使用别名将表头转换成中文显示

--13查询员工和工资,并按工资从小到大排序

--14查询员工和雇佣日期,并按雇佣日期排序,后雇佣的先显示

--15查询员工信息,先按部门标号从小到大排序,再按雇佣日期的先后排序多表查询练习

/*多表查询练习*/

/*多表查询练习*/

select*from emp where job ='MANAGER';

select*from dept;

select*from salgrade;

--列出在部门sales工作的员工的

select ename

from emp a, dept b

where b.dname ='SALES'

and a.deptno = b.deptno;

--列出所有员工的,部门名称和工资

select ename, dname, sal from emp a, dept b where a.deptno = b.deptno;

--列出所有部门的详细信息和部门人数

select*

from dept

full join(select deptno,count(*)from emp group by deptno) b on dept.deptno =

b. deptno;

--列出各个部门职位为manager的最低薪金

select deptno,min(sal) 最低薪金

from emp

where job in'MANAGER'

group by deptno;

--查询出部门人数至少是1的部门名字

select dname

from dept

full join(select deptno,count(*) 人数from emp group by deptno) b on dept.deptno =

b.deptno

where人数>=1;

--列出工资比smith多的员工

select*from emp where sal > (select sal from emp where ename ='SMITH');

--列出所有员工的对应领导的

select a.*, b.ename 领导from emp a left join emp b on b.empno = a.mgr;

--求出某个员工的领导,并要求这些领导的薪水高于或等于3000

select a.ename, a.sal

from emp a, emp b

where a.empno = b.mgr

and a.sal >=3000;

--列出部门名称,和这些部门的员工信息

select dname, a.*from emp a, dept b where a.deptno = b.deptno;

--列出所有职位为clerk的员工及其部门名称,部门的人数

SELECT ename, dname, a.*, job

FROM emp, dept b

FULL JOIN(SELECT deptno,COUNT(*)AS人数FROM emp GROUP BY deptno) a ON

b.deptno =

a.deptno

WHERE emp.deptno = a.deptno

AND job ='CLERK';

--列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级

select e1.ename, dname, e2.ename 领导, e1.sal,s.grade

from emp e1, dept d, emp e2, salgrade s

where e1.mgr = e2.empno(+)

and e1.deptno = d.deptno

and e1.sal > (select avg(sal)from emp)

and e1.sal between s.losal and s.hisal;

--列出与scott从事相同工作的所有员工共及部门名称

select ename, dname

from dept d, emp e

where d.deptno = e.deptno

and e.job = (select job from emp where ename ='SCOTT');

--列出薪金大与部门30中的任意员工的薪金的所有员工的和薪金

select ename, sal

from emp

where sal >ANY(select sal from emp where deptno =30);

--列出薪金大雨部门30中的全部员工的信息的所有员工的和薪金,部门名称

SELECT e.*, dname

FROM emp e, dept d

WHERE sal >ALL(SELECT sal FROM emp WHERE deptno =30)

AND d.deptno = e.deptno;

--列出每个部门的员工数量,平均工资

SELECT count(*) 人数,avg(sal), deptno FROM emp GROUP BY deptno;

--列出每个部门的员工数量,平均工资和平均服务期限(月)

select deptno,

count(*) 员工数量,

trunc(avg(sal + nvl(comm,0))) 平均工资,

to_char(to_date('0001-01','yyyy-mm') +avg(sysdate- hiredate) -366-31,

'yy"年"mm"月') 平均服务期限

from emp

group by deptno;

/*select sysdate sysdate+(sysdate-hiredate),

from emp*/

--列出各种工作的最低工资及从事工资最低工资的雇员名称

select e.ename, a.*

from emp e

right join(select min(sal) 最低工资, job from emp group by job) a on e.job =

a.j ob

where e.sal = a.最低工资;

--求出部门名称带字符‘S’的部门员工,工资合计,部门人数

select dname, a.*

from dept d

full join(select sum(sal) 工资合计, deptno from emp group by deptno) a on d.deptno =

a.deptno

where dname like'%S%';

--求出部门平均工资以及等级

select d.dname, b.*, s.grade

from salgrade s,

dept d,

(select avg(sal) 平均工资, deptno from emp group by deptno) b

where d.deptno(+) = b.deptno

and b.平均工资between s.losal and s.hisal;

--不使用函数查询工资最高人的信息

select*from emp where sal >=all(select sal from emp);

--求出平均工资最高的部门名称

select d.dname, b.平均工资

from dept d,

(select avg(sal) 平均工资, deptno from emp group by deptno) b

where d.deptno = b.deptno

and b.平均工资>=all

(select avg(sal) 平均工资from emp group by deptno);

--求平均工资的等级最低的部门名称

select dname, b.grade

from dept,

(select grade, deptno

from salgrade,

(select deptno,avg(sal) 平均工资from emp e group by deptno) a where a.平均工资between losal and hisal) b

where b.grade =

(select min(grade)

from salgrade,

(select deptno,avg(sal) 平均工资from emp e group by deptno) a where a.平均工资between losal and hisal)

and b.deptno = dept.deptno;

--部门经理人中平均工资最低的部门名称

select dname, a.*

from dept,

(select avg(sal), rank() over(order by avg(sal)) rk, deptno

from emp

where job ='MANAGER'

group by deptno) a

where a.rk =1

and dept.deptno = a.deptno;

select sysdate,sysdate-hiredate,sysdate+(sysdate-hiredate)

from emp

select deptno,count(*) 员工数量,

trunc(avg(sal+nvl(comm,2))) 平均工资,

to_char(to_date('0001-01','yyyy-mm') +avg(sysdate-hiredate)-366-31,'yy"年"mm"月') 平均服务期限

from emp group by deptno;

to_char(to_date('0001-01','yyyy-mm') +

avg(sysdate-hiredate)-366-31,'ddddd"天') 平均服务期限

pl/sql练习题

--1.自定义输入任意员工编号,输出该员工编号、、工资、部门名称、所在地

declare

empno integer;

ename varchar2(10);

sal integer;

dname varchar2(20);

loc varchar2(20);

i integer;

begin

select empno, ename, sal, dname, loc

into empno, ename, sal, dname, loc

from emp,dept

where emp.deptno = dept.deptno

and empno = &i;

dbms_output.put_line(':'||ename||chr(13)||'工资:'||sal||chr(13)||'部门名称:'||dname||chr(13)||'所在地:'||loc);

exception

when no_data_found then

dbms_output.put_line('工号不存在');

end;

--2.自定义输入任意员工编号,如果该员工入职时间大于10年,则奖金加1W,如果该员工入职时间大于五年,奖金加5000,否则奖金不加,最终输出员工编号、、入职时间、原奖金、现奖金

--【--第六天1.2】

declare

empno integer;

ename varchar2(10);

hiredate date;

comm integer;

comm1integer;

years int;

i number;

begin

i := &i;

select empno, ename, hiredate, comm

into empno, ename, hiredate, comm

from emp

where empno = i;

select months_between(sysdate, hiredate)

into years

from emp

where empno = i;

dbms_output.put_line('员工编号:'|| empno || chr(13) ||':'|| ename ||

chr(13) ||'入职时间'|| hiredate || chr(13) ||'原奖金'|| comm ||

chr(13));

if years /12>10then

select comm +10000into comm1from emp where empno = i;

elsif years /12>5then

select comm +5000into comm1from emp where empno = i;

end if;

dbms_output.put_line('现奖金'|| comm1);

end;

--3.自定义输入部门编号,查询出该部门编号下所有员工信息(、工资、部门编号),并显示信息条数

declare

ename emp.ename%type;

sal emp.sal%type;

deptno emp.deptno%type;

i number:= &i;

cursor c1is

select ename, sal, deptno from emp where deptno = i;

begin

open c1;

loop

fetch c1

into ename, sal, deptno;

if c1%found then

dbms_output.put_line(''|| ename || chr(13) ||'工资'|| sal ||

chr(13) ||'部门编号:'|| deptno || chr(13));

else

dbms_output.put_line('查询完毕!');

dbms_output.put_line('共有'|| c1%rowcount||'条记录');

exit;

end if;

end loop;

close c1;

end;

--4.自定义输入员工编号,若该员工工资低于5000,则加奖金500l;

--若员工工资高于5000,则加奖金100;

--最终输出员工编号、、工资、原奖金、先奖金

declare

empno emp.empno%type;

ename emp.ename%type;

sal emp.sal%type;

comm https://www.360docs.net/doc/f514955585.html,m%type;

comm1 https://www.360docs.net/doc/f514955585.html,m%type;

i number:= &i;

begin

select empno, ename, comm, sal

into empno, ename, comm, sal

from emp

where empno = i;

dbms_output.put_line('员工编号:'|| empno || chr(13) ||':'|| ename ||

chr(13) ||'原奖金:'|| nvl(comm,0) || chr(13));

if sal <5000then

select nvl(comm,0) +5001into comm1from emp where empno = i;

else

select nvl(comm,0) +100into comm1from emp where empno = i;

end if;

dbms_output.put_line('现奖金'|| comm1);

exception

when no_data_found then

dbms_output.put_line('工号不存在');

end;

--5.对每位员工的薪水进行判断,如果该员工薪水高于其所在部门的平均薪水,则将其薪水减50 ,更新前后的薪水,员工,所在部门编号

declare

t_ename emp.ename%type;

t_sal emp.sal%type;

sal1emp.sal%type;

t_deptno emp.deptno%type;

avsal emp.sal%type;

cursor c_1is

select ename, sal, deptno from emp;

begin

open c_1;

loop

fetch c_1

into t_ename, t_sal, t_deptno;

exit when c_1%notfound;

select avg(sal)into avsal from emp where deptno = t_deptno;

if t_sal > avsal then

sal1 := t_sal -50;

else

sal1 := t_sal;

end if;

dbms_output.put_line('员工:'|| t_ename || chr(13) ||'部门编号'||

t_deptno || chr(13) ||'原薪水:'|| t_sal || chr(13) ||

'现薪水'|| sal1 || chr(13));

end loop;

close c_1;

end;

--6.创建一个存储过程,实现:通过输入员工编号查看员工、工资、奖金:

--1.1如果输入的编号不存在,进行异常处理;

--1.2如果工资高于4000,进行异常处理提示;

--1.3如果奖金没有或为0,进行异常处理提示

create or replace procedure proc(t_empno in emp.empno%type)as t_comm https://www.360docs.net/doc/f514955585.html,m%type;

t_sal emp.sal%type;

t_name emp.ename%type;

i number;

begin

select count(*)into i from emp where empno = t_empno;

if i =0then

RAISE_application_error(-20114,'编号不存在');

else

select comm, sal, ename

into t_comm, t_sal, t_name

from emp

where empno = t_empno;

end if;

if t_sal >4000then

RAISE_application_error(-20112,'工资高于4000');

elsif t_comm =0or t_comm is null then

RAISE_application_error(-20113,'奖金为空');

else

dbms_output.put_line(':'|| t_name || chr(13) ||'工资:'|| t_sal ||

chr(13) ||'奖金:'|| t_comm);

end if;

end proc;

call proc(654);

Oracle数据库基本知识点

1、数据库基本语句 (1)表结构处理 创建一个表:cteate table 表名(列1 类型,列2 类型); 修改表的名字 alter table 旧表名 rename to 新表名 查看表结构 desc 表名(cmd) 添加一个字段 alter table 表名 add(列类型); 修改字段类型 alter table 表名 modify(列类型); 删除一个字段 alter table 表名 drop column列名; 删除表 drop table 表名 修改列名 alter table 表名 rename column 旧列名 to 新列名; (2)表数据处理 增加数据:insert into 表名 values(所有列的值); insert into 表名(列)values(对应的值); 更新语句:update 表 set 列=新的值,…[where 条件] 删除数据:delete from 表名 where 条件 删除所有数据,不会影响表结构,不会记录日志, 数据不能恢复--》删除很快: truncate table 表名 删除所有数据,包括表结构一并删除: drop table 表名 去除重复的显示:select distinct 列 from 表名 日期类型:to_date(字符串1,字符串2)字符串1是日期的字 符串,字符串2是格式 to_date('1990-1-1','yyyy-mm-dd')-->返回日期的 类型是1990-1-1 (3)查询语句 1)内连接 select a.*,b.* from a inner join b on a.id=b.parent_id

Oracle_Forms开发基础知识

1 相关软件的安装 1.1 Form Builder 安装路径:\\sie-file-svr\01_公司级共享资源\06_工具软件\06 开发工具\6i 在安装的过程中,可以一路默认值下去。 需要注意的时候,在安装时,会不停的自动打开很多文件夹和命令提示符的窗口,不要手工去关闭这些窗口,安装程序会自动关闭,知道提示你安装成功(这时可以手工关闭余留下来的没有被关闭的窗口)。 注册表修改 <1>、NLS_LANG HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 搜索NLS_LANG,出现NLS_LANG=ZHS16GBK或者NLS_LANG=ZHS16CGB231280的地方请全部修改成 NLS_LANG=AMERICAN_AMERICA.UTF8 <2>、FORMS60_PATH变量 在后面加上TEMPLATE/APSTAND.FMB所在的路径(F:\WORK\FORM)和PLL文件所在的路径 (F:\WORK\PLL)。 1.2 Patch 安装路径:\\hi4-sv11\Oracle\Software\patch\p3095277_9204_WINNT\Disk1 安装这个Patch的原因(来自MetaLink): The information in this article applies to: Oracle Server - Enterprise Edition - Version: 9.2.0.1 to Oracle Provider for OLE DB - Version: 9.2.0.1 Microsoft Windows 2000 Microsoft Windows XP Microsoft Windows (32-bit) Symptoms Using the Oracle Provider for OLEDB 9.2.0.1.0 with web applications, the data retrieved and sent to the webpage is good for the first 100 rows. After the First 100 rows, th data is displayed as garbage or ????. The OLEDB registry default fetchsize has been changed from the default of 100.

oracle复习大纲(1)

chapter 7 1.Oracle数据库物理存储结构的组成及各个部分的功能、性质。 数据文件:用于存储数据库中的所有数据 控制文件:用于记录和描述数据库的物理存储结构信息 重做日志文件:用于记录外部程序(用户)对数据库的改变操作 归档文件:用于保存已经写满的重做日志文件 初始化参数文件:用于设置数据库启动时的参数初始化值 跟踪文件:用于记录用户进程、数据库后台进程等的运行情况 口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名和SYS用户口令; 警告文件:用于记录数据库的重要活动以及发生的错误; 备份文件:用于存放数据库备份所产生的文件。 2.数据文件管理: (1)数据文件与表空间的关系 从物理角度看,数据库由数据文件构成,数据存储在数据文件中;从逻辑角度看,数据库是由表空间构成的,数据存储在表空间中。一个表空间包含多个数据文件,但一个数据文件只能属于一个表空间。 在oracle数据库中,数据文件是依附于表空间而存在。一个表空间可以包含多个数据文件,但一个数据文件只能从属于一个表空间。在逻辑上,数据库对象都存放在表空间中,实质上是存放在表空间所对应的数据文件中。 (2)数据文件的添加、数据文件大小的修改autoextend on 、resize(操作)、数据文件的移植 添加: 向表空间添加一个大小为xMB的数据文件: alter tablespace 表空间名add datafile ‘路径\*.dbf’ size xMB; 向表空间添加一个自动增长的数据文件: alter tablespace 表空间名add datafile ‘路径\*.dbf’ size xMB autoextend on next 1M maxsize 50MB; 向临时表空间添加一个大小为xMB的数据文件: alter tablespace 表空间名 add tempfile‘路径\*.dbf’ size xMB; 修改: ①修改大小 修改数据文件大小为yMB: Alter database datafile ‘路径\*.dbf’ resize yMB; 修改文件的自动增长方式: Alter database datafile ‘路径\*.dbf’ autoextend on next 1M maxsize unlimited;

大学数据库全面知识点资料整理

第1章绪论 1 .数据库管理系统是数据库系统的一个重要组成部分,它的功能包括数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。 2 .数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 3 .数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:人工管理阶段,文件系统阶段和数据库系统阶段。 4 .数据库具有数据结构化、最小的冗余度、较高的数据独立性等特点。 5 .DBMS还必须提供数据的安全性保护、数据的完整性检查、并发控制、数据库恢复等数据控制功能。 6 .数据库管理系统的主要功能有哪些? (填空题) ①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能。 7.三级模式之间的两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 (问答题) 8 .试述概念模型的作用。 (填空题) 概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 9 .根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。第一类是概念模型,第二类是数据模型。 (问答题) 10 .定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图(E-R 图) (填空题) 实体:客观存在并可以相互区分的事物叫实体。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。 实体集:同型实体的集合称为实体集。 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。 码:唯一标识实体的属性集称为码。 实体联系图:E-R图提供了表示实体型、属性和联系的方法: 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。 11 .数据模型的三要素是指数据结构,数据操作,完整性约束。实际数据库系统中所支持的主要数据模型是关系模型,层次模型,网状模型。 13 .数据模型中的数据结构是对数据系统的静态特征描述,包括数据结构和数据间联系的描述,数据操作是对数据库系统的动态特征描述,是一组定义在数据上的操作,包括操作的涵义、操作符、运算规则及其语言等。 (问答题) 14 .定义并解释以下术语:DDL、DML (填空题) DDL:数据定义语言。用来定义数据库模式、外模式、内模式的语言。 DML:数据操纵语言。用来对数据库中的数据进行查询、插入、删除和修改的语句。 15 .关系模型是目前最常用也是最重要的一种数据模型。采用该模型作为数据的组织方式的数据库系统称为关系数据库系统。 (问答题) 16 .关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

Oracle数据库简答题-考试重点

1.简单描述Oracle数据库体系结构的组成及其关系? 答:Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成。逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成。实例是数据库运行的软件结构,由内存结构和后台进程组成。数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。 2、说明Oracle数据库物理存储结构的组成? Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。 3、说明Oracle数据库数据文件的作用? 数据文件中保存了数据库中的所有数据,包括数据字典以及用户数据。 4、说明Oracle数据库控制文件的作用? 控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件。 5、说明Oracle数据库重做日志文件的作用? 重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。 6、说明数据库逻辑存储结构的组成和相互关系。 Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。 7、说明数据库表空间的种类,以及不同类型表空间的作用。 数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。 SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 8、说明数据库、表空间、数据文件以及数据库对象之间的关系。 一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数

Oracle复习

一.创建用户 在YGGL数据库中创建一个用户MANAGER,授予DBA角色和SYSDBA系统权限,它可以替代system系统用户。 CONNECT SYSTEM/123456 AS SYSDAB CREATE USER MANAGER PROFILE "DEFAULT" IDENTIFIED BY manager DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT SYSDBA TO "MANAGER"; GRANT "COUNTNECT" TO "MANAGER"; GRANT "DBA" TO "MANAGER"; ALTER user MANGER GRANT CONNECT THROUGH SYSTEM; 二:创建角色 在YGGL数据库中创建一个角色ADMIN,授予DBA角色和SYSDBA系统权限。CREATE ROLE ADMIN IDENTIFILED BY "manager"; GRANT SYSDAB TO ADMIN ; GRANT SYSOPER TO ADMIN; GRANT "CONNECT" TO ADMIN; GRANT "DBA" TO "ADMIN"; 一.创建概要文件 在YGGL数据库中创建概要文件YGGL_PROFILE并分配给用户MANAGER。CREATE PROFILE "XSCJ _PROFILE"LIMIT COMPOSITE_LIMIT DEFAULT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 20 PASSWORD_GRACE_TIME 60 PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_MAX UNLIMITED PASSWORD_REUSE_TIME 120 PASSWORD_VERIFY_FUNCTION DEFAULT (1)使用命令方式分别向YGGL数据库个表中插入一行记录 INSERT INTO ZPEMPLOYEES V ALUES('011112','罗林 ',TO_DATE('26-06-1973','DD-MM-YYYY'),1,'解放路100 ',210002,4055663,5); INSERT INTO ZPDEPARTMENTS V ALUES('6','人力资源',NULL); INSERT INTO ZPSALARY V ALUES ('011112',1200.09,50) (2)修改表salry的记录值 UPDATE ZPSALARY SET InCome=2890 WHERE EmployeeID='011112'; (3)删除Salary中的一行记录 DELETE FROM ZPSALARY WHERE EmployeeID='01112'; 3.索引和完整性 (1).对YGGL数据库中的Employees表的DepartmentID列建立索引 CREATE INDEX PK_XS_BAK ON ZPEMPLOYEES(DepartmentID) TABLESPACE USERS PCTFREE 48 INITRANS 10 MAXTRANS 100 STORAGE (INITIAL 64K NEXT 64K MINEXTENTS 5 MAXEXTENTS 20

数据库 知识点 完整版

1.数据管理:对数据的收集、整理、组织、维护、存储、检索、传送、利用 2.数据处理:采集、存储、加工、传播 3.DB:计算机存储设备上,以一定方式,数据的集合 4.DB与文件系统的区别: 4.DBMS:建立、管理、维护数据库的软件系统,例:SQL SERVER 功能: 定义(语言、外模式、逻辑模式、内模式); 操纵(插入、查询、更新、删除), 控制(安全、完整、并发、恢复), 维护(备份、转储), 通信(远程作业通信接口) 5.硬件(DB)→操作系统(OS)→DBMS(系统软件)→应用软件→应用程序 6.DBAS:以计算机为平台,以操作系统、数据库管理系统、某种程序语言等为软件环境,以某一领域需求为背景,利用数据库技术建立起的可用的应用软件系统;三要素:数据,物理存储器,数据库管理系统软件。例:教学管理系统

现实世界——客观世界 概念化 信息世界——实体—联系模型(概念模型) 形式化 数据世界——数据模型(层次、网状、关系) 8.数据模型:用数据、数据间的联系表示现实世界。包括: 层次模型——树状 网状模型——有向图 关系模型——表示数据与数据联系的二维表格 9.关系模型: 关系——一个二维表格 元组——每一行数据 元组分量——元组在每一个属性上的取值 属性——每一列名 属性值——行列交汇处的元素的取值 关系模式——每个关系表的表头所描述的数据结构 候选键——唯一标识元组且不含多余属性的属性集 主键——只有一个侯选建时的侯选键;具有唯一性、非冗余性、有效性(不可为空)外键——属性集X的子集不是自己的主键,却是别人的主键,则称之为自己的外键主属性——包含于侯选键里的属性 非主属性——不包含于侯选键 10.数据库的三级结构体系:

关于数据库知识点的再学习和整理

个人声明:本文档所有代码并没有经过上机验证,仅供参考,另外,因为只是自己总结的关于最基本的知识点,所以难免遗漏,所以请参阅相关材料观看,最后,版权所有,翻版没事!哈哈~~~~ 1,关系模型的数据结构非常简单,它只含有单一的数据结构——关系,在用户看来就是一张二维表,关系数据库就是用二维表表示关系以及他们之间的联系。 2.关于数据库的操作主要就是增删改查,其中尤其以查最重要,下面正对这几种数据库操作做一些sql语句方面的简单整理,以用来加强印象: 由于今天使用了mysql数据库,所以呢,先将一些使用的必须基本命令总结一些: 首先是安装了mysql数据库之后,进入dos命令提示窗口, 接下来我们要进入我们的数据库,那么要先进入mysql的bin路径下, 然后输入mysql -u root -p,然后会提示输入密码,然后进入, 进入后的命令提示符是mysql> 在mysql新建表之间和使用oracle 10g还是不一样的,先新建数据库, Create database 数据库名字; 增 A.首先是新建表:create table table_name( [列级完整性约束条件] [,[列级完整性约束条件]] ...... [,<表级完整性约束条件>]); E.g creatable table students( id int(4) primary key, Name char(20) not null, Foreign key id references teachers(no)); B.接着是添加信息:insert into [[,]...] values(常量[,常量]...); E.g insert into students values(1,'tom'); 注意,如果不列出来表格的属性的话,就说明添加一条完整的信息。 如果列出来表格的属性的话,那么没有列出来的就做,空值处理。 C.添加约束条件(注意,下面的语法只在oracle 10g中验证过,仅供参考)。 关于创建表格约束的时候是使用add constraint还是modify语法,我进行了可行性的测试,现在结果如下: 《》关于创建外键,两种语法都可以,语法如下 1,alter table 表格名add constraint 外键名foreign key(列名)references 被参照的表名(列名); 2,alter table 表格名modify foreign key(列名)references 被参照的表名(列名); 注意:alter table 表格名modify 列名foreign key references 被参照的表名(列名);是不可以的。 《》关于创建主键,两种方法都可以,语法如下 1,alter table 表格名add constraint 外键名primary key(列名) enable; 2,alter table 表格名modify 列名primary key;

oracle 基础题

一、判断题。(10小题) 1、题目:【Oracle基础知识】oracle 是甲骨文公司开发出的数据库软件:() 答案:正确 2、题目:【Oracle基础知识】oracle 的安装分为两种安装方式:1.基本安装和高级 安装。() 答案:正确 知识点:oaclede 安装分为两种方式:a.基本安装b.高级安装。我们通常选择基本安装。 3、题目:【Oracle基础知识】oracle 中的服务进程是在一个oracle数据库实例 启动后当一个用户建立链接后创建的。 () 答案:错误 知识点:这个服务是oracle的实例服务,oracle启动首先要启动此服务,此服务必须开启。 4、题目:【Oracle基础知识】commit语句使你能够保持数据的一致性,可在永 久地更新数据前预览修改,将逻辑相关地所有操作组合起来。() 答案:正确 知识点:commit的作用。 5、题目:【Oracle基础知识】任何DML(数据操作语言,用于查询,生成, 修改,删除数据库的操作)操作都离不开事物控制命令。() 答案:错误 知识点:并不是所有的数据操作语言都需要事物控制命令。例如:查询就不需要。 6、题目:【Oracle基础知识】Informix数据库中的char 数据类型和oracle数据 库下V ARCHAR2的数据类型相对应。() 答案:正确 知识点:Informix和oracle的数据类型不同。 7、题目:【Oracle基础知识】表空间是oracle 最大的逻辑组成部分。Oracle数 据库由一个或多个表空间组成。一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。() 答案:正确 知识点:关于表空间的知识。 8、题目:【Oracle基础知识】表空间分为永久表空间和临时表空间两种类型。 () 答案:正确 知识点:oracle表空间的分类。

Oracle数据库必会知识点 v1.0

Oracle数据库必会知识点 一、概念部分 1、什么是实例(Instance) 包括数据库的内存结构和一组后台进程。实例是存在于内存里面的,数据库中的数据操作均由实例中的进程来完成。 2、Oracle数据库(Database)概念 数据库是由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合。 3、Oracle数据块的概念 数据块是Oracle逻辑存储结构中的最小的逻辑单位,也是执行数据库输入输出操作的最小存储单位。Oracle数据存放在“Oracle数据块”中,而不是“操作系统块”中。通常Oracle数据块是操作系统块的整数倍,如果操作系统快的大小为2048 Bytes,并且Oracle数据块的大小为8192 Bytes,则表示Oracle数据块由4个操作系统块构成。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BlOCK_SIZE中。另外,Oracle支持在同一个数据库中使用多种大小的快,与标准块大小不同的块就是非标准块。注意该参数在创建数据库实例时设置,且后续不可被修改,默认8192Bytes。 4、Oracle表空间的概念 Oracle使用表空间将相关的逻辑结构(比如段、数据区等)组合在一起,表空间是数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象(即Segment),任何数据对象在创建时都必须被指定存储在某个表空间中。表空间(属逻辑存储结构)与数据文件(属物理存储结构)相对应,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间;Oracle数据的存储空间在逻辑上表现为表空间,而在物理上表现为数据文件。举个例子来说,表空间相当于操作系统中的文件夹,而数据文件就相当于文件夹中的文件。每个数据库至少有一个表空间(即SYSTEM表空间),表空间的大小等于所有从属于它的数据文件大小的总和。 5、Oracle数据文件的概念 数据文件是用于保存用户应用程序数据和Oracle系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件,Oracle在创建表空间的同时会创建数据文件。Oracle数据库在逻辑上由表空间组成,每个表空间可以包含一个或多个数据文件,一个数据文件只能隶属于一个表空间。 6、Oracle控制文件的概念 控制文件是一个二进制文件,它记录了数据库的物理结构,其中主要包含数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。控制文件一般在Oracle系统安装时或创建数据库时自动创建,控制文件所存放的路径由服务器参数文件spfileorcl.ora的control_files参数值来指定。由于控制文件存放有数据文件、日志文件等的相关信息,因此,Oracle实例在启动时必须访问控制文件。如果控制文件正常,实例才能加载并打开数据库;但若控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,则实例无法正

Oracle基础知识大全,

课程目标: 1. 了解数据库系统在项目开发中的地位 2. 了解目前主流数据库系统 3. 熟练掌握查询命令 4. 熟练掌握数据操作方式 5. 熟练使用数据库内置函数 6. 掌握pl/sql程序设计语法结构 7. 掌握视图 8. 掌握存储过程 9. 掌握用户自定义函数 10. 掌握触发器 了解: 1.数据库组件: 1.1 实施应用集群 1.2 Oracle OLAP 1.3 数据挖掘 1.4 应用程序接口 1.5 网络组件 1.6 SQL Plus 1.7 企业管理器OEM

2. 几个版本间的差异: 2.1 增加了服务器参数文件SPFILE 2.2 使用了OMF免去了手工管理数据库文件的繁琐 2.3 支持多种数据库块大小 2.4 会话可以自动调整PGA的大小 2.5 引入了列表分区 课程内容: 1. 操作数据之前的准备工作: 1.1. 要保证有一个数据库: 1.2. 要保证创建一个表空间 create tablespace hbjr datafile 'E:\dbs\hbjr.dbf' size 100M; 1.3. 要创建一个用户,用户默认的表空间就是你创建的表空间 create user hbjr identified by orcl default tablespace hbjr; //授权限: grant dba to hbjr; 1.4. 用户/密码登录:

2. 表名/列字段名起名规范: 2.1 使用常规字母和数字 2.2 长度不要超过30 2.3 表名/列名不能重复 2.4 不能使用oracle的保留字 3. 数据类型 3.1 char:定长,存储单位--字节(bite) 3.2 varchar2:变长,存储单位--字节 3.3 nchar:定长,存储单位--字符 3.4 nvarchar2:变长,存储单位--字符 3.5 date:日期类型,7个字节,存储着--世纪,年,月,日,时,分,秒 3.6 timestamp:日期类型,11个字节,存储着--世纪,年,月,日,时,分,秒,毫秒 3.7 number:数据类型(数值类型) 3.8 clob:大字段类型,适合存储纯文本信息(例如:*.txt 文件)

Oracle知识点总结

Oracle知识点总结 根据阎赫老师讲义整理Zealjiang 1、Oracle数据库的安装和配置 ⑴Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 ⑵Oracle的安装 注意:来源和目标的目录不允许有中文或空格 ⑶Oracle数据库启动时必需开启的后台服务 ①OracleOrahome90TNSListener 使第三方的软件或语言访问 ②OracleServiceETC Oracle的实例 CRUD 增删改查 注意:②中的ETC是你起的实例的名字 ⑷Oracle的开发工具 ①DOS界面的开发平台 -> 运行->sqlplus ②Oracle本身基于DOS的平台 ->运行-> sqlplusw ③Oracle Enterprise Manager Console ④PL/SQL Developer7.1.5 ⑸创建一个表的完整流程 ①创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启 create tablespace etc

datafile 'f:\etc.dbf' size 1m autoextend on; 删除表空间 drop tablespace 数据库名称; ②为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在Oracle中账号和数据库one2one绑定 2、Oracle的密码不允许为纯数字或空 3、需要在system账号完成动作 修改Oracle的账号密码 语法:alter user 用户 identified by 新密码 ③用grant 权限 to 用户为该帐户授权 语法: grant 权限名称 to 用户; 撤销权限 语法:revoke 权限名称 from 用户名; ④在该帐号下创建表

Oracle_RAC知识汇总

一、Oracle RAC原理 ORACLE RAC原理在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。 逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。 二、RAC中的特点是: 每一个节点的instance都有自己的SGA 每一个节点的instance都有自己的background process 每一个节点的instance都有自己的redo logs 每一个节点的instance都有自己的undo表空间 所有节点都共享一份datafiles和controlfiles Oracle还提出了一个缓存融合的技术(Cache fusion) 目的有两个 1.保证缓存的一致性 2.减少共享磁盘IO的消耗 因此在RAC环境中多个节点保留了同一份的DB CACHE 缓存融合(Cache fusion)工作原理: -**************************************** 1.其中一个节点会从共享数据库中读取一个block到db cache中 2.这个节点会在所有的节点进行交叉db block copy 3.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改 4.为了达到存储的一致最终修改的结果也会写到磁盘上 三、ClusterWare组件 ******************* 有四种Service Crsd - 集群资源服务 Cssd - 集群同步服务 Evmd - 事件管理服务 oprocd - 节点检测监控 有三类Resource VIP - 虚拟IP地址(Virtual IP) OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息

oracle xtts迁移防坑知识点

oracle xtts迁移防坑知识点 作者美创运维中心数据库服务团队 大家在做数据库迁移的时候难免会碰到这各种问题,我们不保证每一次的迁移都能顺利完成,只能尽量少踩坑,下面介绍几个oracle xtts迁移防坑知识点。 在讲防坑技巧之前首先罗列部分在做xtts迁移之前的前置条件,在做迁移之前一定要仔细检查条件是否都满足,因为任何一步没检查到位很可能会对你的迁移工作造成不必要的麻烦! 1.源端不能是windows 2.源库的版本必须大于10.2 3.源库的compatible参数不能大于目标端 4.源库和目标库字符集需要保持一致 5.目标端db_files参数必须大于源端 6.源库和生产必须处于归档模式 7.源库的rman配置中DEVICE TYPE DISK不能设置为COMPRESSED 8.要迁移的表空间数据文件必须都是online的或者不包括offline数据文件 9.排除系统表空间,避免冲突并检查业务表空间是否自包含 10.源库和目标库db block size必须一致 防坑点一 编辑xtt.properties文件,表空间书写格式问题,特别是数据库表空间数量非常多的时候,一定要注意,表空间名字都要书写在同一行,不得自行换行!也不可以有任何空格! 格式一: 格式二:

格式三: 你们认为哪种格式是正确的? 无论写成什么样子,他只认第一行的表空间名字,所以在编辑的时候一定要写成一行,也不要有任何空格。如果书写错了在做增量备份恢复的时候是不会报任何错误的,因为对于相关表空间来说,他确实增量成功了,但是在最后元数据导入的时候就会报数据文件不一致,所以最简单的方法是去检查xttsnewdatafiles.txt 里面的表空间数量是否与生产查询出来的一致。 防坑点二 xtts发明的目的就是为了加快迁移速度,这里很重要的一个点就是打开块跟踪。打开块跟踪可以大大缩短执行增量备份时间。alter database enable block change tracking using file'/rman/trace.log';但是迁移结束后记得要关闭块跟踪。alter database disable block change tracking; 防坑点三 生产是裸设备,如果rman copy时候,数据文件加了“.dbf”那么,在增量恢复的时候需要编辑xttnewdatafiles.txt,否则恢复的时候会提示找不到数据文件。文件系统忽略此步骤,解决方法如下:

Oracle数据库考试重点

1、Which two statements about online redo log members in a group is true? B、All members in a group are the same size C、The members should be on different disk drivers 2、Which command does a DBA user to list the current status of archiving? A、ARCHIVE LOGLIST 3、How many control files are required to create a database? A、one 4、Complete the following sentence: The recommended configuration fro control files is? C Two control files on two disks 5、When you create a control file, the database has to be: C Open 6、Which data dictionary view shows that the database is in ARCHIVELOG mode? C、V$DATABASE 7、What is the biggest advantage of having the control files on different disks? B Guards against failure 8、Which file is used to record all changes made to the database and is used only when performing an instance recovery? A,Archive log file 9、How many ARCn processes can be associated with an instance? C ten 10、Whichtwo parameters cannot be used together to specify the archive destination? A.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DUPLEX_DEST 第七章 1、A collection of segments is a (an): C、TABLESPACE 2 When will the rollback information applied in the event of a database crash? C immediately after re-opening the database before the recovery 3、The data dictionary tables and views are stored in B、SYSTEM tablespace 4 PCTFREE and PCTUSED together should not exceed: A 100

oracle数据库 复习提纲 及其答案详解

Oracle数据库复习提纲 一、Oracle10g简介 1、Oracle10g一共有哪几个版本? Oracle数据库10g标准版1,Oracle数据库10g标准版,Oracle数据库10g企业版,Oracle数据库10g个人版. 2、 Oracle10g中的g是什么含义? Oracle 10g的g就代表grid computing。 3、理解Oracle数据库中的方案、数据块、区间、段、表、表空间之间的关系。 Oracle 数据库的逻辑结构包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成 4、标准数据块大小由初始参数(DB_BLOCK_SIZE)指定。 5、理解数据库、表空间、数据文件之间的关系。 每个表空间由一个或多个数据文件组成。数据文件用于在物理上存储表空间中所有逻辑结构的数据。 表空间中数据文件的大小之和就是表空间的存储容量(图中系统表空间存储容量为2MB,用户表空间的存储容量为4MB)。 数据库中表空间的存储容量之和就是数据库的存储容量。 6、叙述Oracle数据库的物理结构。(每个Oracle数据库都由3类文件组成:数据文件、日志文件、控制文件,……) Oracle数据库有一个或多个物理的数据文件。数据库的数据文件包含全部数据库数据。逻辑数据物理地存储在数据文件中。数据文件有下列特征: 一个数据文件仅与一个数据库联系。 当数据库容量越界时,数据文件能够自动扩展。 一个或多个数据文件组成一个表空间。 每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。 日志的主要功能是记录对数据所作的修改,所有对数据库作的全部修改记录在日志中。 每个Oracle数据库有一个控制文件,记录数据库的物理结构。 控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数

Oracle数据库开发知识点

Oracle数据库开发指南 前言 参考 第一部分基础 一、数据库对象 表空间Tablespace:存储数据库对象的容器 模式Schema 表Table 表名最长为30个字符,不能以数字开头。一个表最多254个列。 CREATE TABLE tablename AS select_statement,通过子查询建立新表 DESC tablename,查看表或其它数据库对象的定义 ALTER TABLE tablename RENAME new_tablename,修改表名 RENAME tablename TO new_tablename,修改表名,注意修改表名后,视图必须重建。 索引Index 保证表中数据的唯一性;减少定位和检索数据所需要的I/O操作 Oracle允许对列值创建索引,也可对表达式创建索引。所以既可是UNIQUE,也可是UNIQUE Oracle对DESC(降序)索引认为是基于函数的索引。 序列Sequence 使用序列为表的码值生成唯一的序列值 聚簇Cluster 视图View 由一个预定义的查询构成,可看作为数据库的逻辑表。 SELECT text_length FROM user_views WHERE view_name = …viewname? Set long 5000 SELECT text FROM user_views WHERE view_name = …viewname? 快照Snapshot 快照与视图都是基于查询结果的。但快照使用物理的存储空间,快照中的数据一般都是静态的,只有刷新时才改变。 快照的目的是提供某个时间点的数据。 二、数据类型 CHAR(n),255字符 V ARCHAR2(n):2000字符 LONG,2G字符,只能用在列SELECT列表,UPDATE语句的SET子句或INSERT语句的V ALUES子句中,一个表中只能有一个LONG列,LONG列不能建索引,也不能有完整性约束,不能用于表达式。DATE

相关文档
最新文档