关于oracle自带的表
- 格式:doc
- 大小:51.50 KB
- 文档页数:12
O r a c l e9i动态性能(V$)视图说明本节介绍动态性能视图。
这些视图一般作为V$视图引用。
本节包括下列内容:动态性能视图。
视图说明。
C.1动态性能视图Oracle服务器包括一组基础视图,这些视图由服务器维护,系统管理员用户SYS可以访问它们。
这些视图被称为动态性能视图,因为它们在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关。
虽然这些视图很像普通的数据库表,但它们不允许用户直接进行修改。
这些视图提供内部磁盘结构和内存结构方面的数据。
用户可以对这些视图进行查询,以便对系统进行管理与优化。
文件CATALOG.SQL包含这些视图的定义以及公用同义词。
必须运行CATALOG.SQL创建这些视图及同义词。
C.1.1V$视图动态性能视图由前缀V_$标识。
这些视图的公用同义词具有前缀V$。
数据库管理员或用户应该只访问V$对象,而不是访问V_$对象。
动态性能视图由企业管理器和Oracle Trace使用,Oracle Trace是访问系统性能信息的主要界面。
建议:一旦实例启动,从内存读取数据的V$视图就可以访问了。
从磁盘读取数据的视图要求数据库已经安装好了。
警告:给出动态性能视图的有关信息只是为了系统的完整性和对系统进行管理。
公司并不承诺以后也支持这些视图。
C.1.2GV$视图在Oracle中,还有一种补充类型的固定视图。
即GV$(Global V$,全局V$)固定视图。
对于本章介绍的每种V$视图(除V$CACHE_LOCK、V$LOCK_ACTIVITY、V$LOCKS_WITH_COLLISIONS和V$ROLLNAME外),都存在一个GV$视图。
在并行服务器环境下,可查询GV$视图从所有限定实例中检索V$视图的信息。
除V$信息外,每个GV$视图拥有一个附加的名为INST_ID的整型列。
INST_ID列显示从其获得相关的V$视图信息的实例号。
INST_ID列可用作一个从可得到的实例集检索V$信息的过滤器。
oracle数据库中的表与视图Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。
对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。
表和视图 Oracle中表是数据存储的基本结构。
ORACLE8引入了分区表和对象表,ORACLE8i 引入了临时表,使表的功能更强大。
视图是一个或多个表中数据的逻辑表达式。
本文我们将讨论怎样创建和管理简单的表和视图。
管理表 表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。
用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。
例如:CREATE TABLE products ( PROD_ID NUMBER(4), PROD_NAME VAECHAR2(20), STOCK_QTY NUMBER(5,3) ); 这样我们就建立了一个名为products的表,关键词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。
在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。
在建立或更改表时,可以给表一个缺省值。
缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。
下列数据字典视图提供表和表的列的信息: . DBA_TABLES . DBA_ALL_TABLES . USER_TABLES . USER_ALL_TABLES . ALL_TABLES . ALL_ALL_TABLES . DBA_TAB_COLUMNS . USER_TAB_COLUMNS . ALL_TAB_COLUMNS 表的命名规则 表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。
一、概述Oracle E-Business Suite(EBS)是一种集成的应用套件,可帮助企业管理他们的业务流程。
在EBS中,表名是特别重要的标识,它们用于存储各种业务数据。
在本文中,我们将介绍一些常见的Oracle EBS标准表名,这些表名对于理解和使用EBS系统非常重要。
二、常见表名1. FND表FND是Oracle EBS中的一个重要模块,包含了许多用于存储系统配置和元数据的表。
常见的FND表名包括FND_USER、FND_APPLICATION、FND_RESPONSIBILITY等,这些表存储了用户、应用程序、责任等信息,对于管理和维护EBS系统非常重要。
2. AR表AR模块是EBS中用于管理应收账款的模块,其中包含了许多与客户、发票、付款等相关的表。
常见的AR表名包括AR_CUSTOMERS、AR_INVOICES_ALL、AR_PAYMENT_SCHEDULES_ALL等,这些表存储了客户、发票、付款等信息,对于财务管理非常重要。
3. AP表AP模块是EBS中用于管理应付账款的模块,其中包含了许多与供应商、发票、付款等相关的表。
常见的AP表名包括AP_SUPPLIERS、AP_INVOICES_ALL、AP_PAYMENT_SCHEDULES_ALL等,这些表存储了供应商、发票、付款等信息,对于采购管理非常重要。
4. GL表GL模块是EBS中用于管理总账的模块,其中包含了许多与会计期间、账户、凭证等相关的表。
常见的GL表名包括GL_PERIODS、GL_ACCOUNTS、GL_JE_BATCHES等,这些表存储了会计期间、账户、凭证等信息,对于财务报告非常重要。
5. HR表HR模块是EBS中用于管理人力资源的模块,其中包含了许多与员工、岗位、薪酬等相关的表。
常见的HR表名包括HR_EMPLOYEES、HR_POSITIONS、HR_PAYROLL等,这些表存储了员工、岗位、薪酬等信息,对于人力资源管理非常重要。
O r a c l e9i动态性能(V$)视图说明本节介绍动态性能视图。
这些视图一般作为V$视图引用。
本节包括下列内容:动态性能视图。
视图说明。
C.1动态性能视图Oracle服务器包括一组基础视图,这些视图由服务器维护,系统管理员用户SYS可以访问它们。
这些视图被称为动态性能视图,因为它们在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关。
虽然这些视图很像普通的数据库表,但它们不允许用户直接进行修改。
这些视图提供内部磁盘结构和内存结构方面的数据。
用户可以对这些视图进行查询,以便对系统进行管理与优化。
文件CATALOG.SQL包含这些视图的定义以及公用同义词。
必须运行CATALOG.SQL创建这些视图及同义词。
C.1.1V$视图动态性能视图由前缀V_$标识。
这些视图的公用同义词具有前缀V$。
数据库管理员或用户应该只访问V$对象,而不是访问V_$对象。
动态性能视图由企业管理器和Oracle Trace使用,Oracle Trace是访问系统性能信息的主要界面。
建议:一旦实例启动,从内存读取数据的V$视图就可以访问了。
从磁盘读取数据的视图要求数据库已经安装好了。
警告:给出动态性能视图的有关信息只是为了系统的完整性和对系统进行管理。
公司并不承诺以后也支持这些视图。
C.1.2GV$视图在Oracle中,还有一种补充类型的固定视图。
即GV$(Global V$,全局V$)固定视图。
对于本章介绍的每种V$视图(除V$CACHE_LOCK、V$LOCK_ACTIVITY、V$LOCKS_WITH_COLLISIONS和V$ROLLNAME外),都存在一个GV$视图。
在并行服务器环境下,可查询GV$视图从所有限定实例中检索V$视图的信息。
除V$信息外,每个GV$视图拥有一个附加的名为INST_ID的整型列。
INST_ID列显示从其获得相关的V$视图信息的实例号。
INST_ID列可用作一个从可得到的实例集检索V$信息的过滤器。
关于oracle自带的表***********************************8emp:empno:员工编号;ename:员工名字;job:员工工种;mgr: 上司;hiredate:入职时间;sal:基本工资;comm:补贴;deptno:所属部门编号;dept:deptno:部门编号;dname:部门名称;loc:地理位置;salgrade:grade:工资等级;losal:最低限额;hisal:最高限额;dual:系统自带的一张空表;可用于计算数据:select 2*3 from dual;**sql_function1**********************************************************select lower(ename) from emp; 取出的名字全部变成小写。
select ename from emp where lower(ename) like '_a%';取出的名字变成小写后不含字母aselect substr(ename, 2, 3) from emp;从第二个字符截,截取三个字符。
select cha(65) from dual; 将数字转化为字符(显示为a)。
select ascii('A') from dual; 将字符转化为数字。
select round(23.652) from dual; (显示24)select round(23.652, 2) from dual; (显示23.65)select round(23.652, -1) from dual; (显示20)select to_char(sal, '$99,999.9999')from emp;强制转化为指定的格式。
select to_char(sal, 'L0000.0000')from emp;同上。
数据字典dict总是属于Oracle用户sys的。
、用户:select username from dba_users;改口令alter user spgroup identified by spgtest;2、表空间:select * from dba_data_files;select * from dba_tablespaces;//表空间select tablespace_name,sum(bytes), sum(blocks)from dba_free_space group by tablespace_name;//空闲表空间select * from dba_data_fileswhere tablespace_name='RBS';//表空间对应的数据文件select * from dba_segmentswhere tablespace_name='INDEXS';3、数据库对象:select * from dba_objects;CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PAC KAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:select * from dba_tables;analyze my_table compute statistics;>dba_tables后6列select extent_id,bytes from dba_extentswhere segment_name='CUSTOMERS' and segment_type='TABLE'order by extent_id;//表使用的extent的信息。
segment_type='ROLLBACK'查看回滚段的空间分配信息列信息:select distinct table_namefrom user_tab_columnswhere column_name='SO_TYPE_ID';5、索引:select * from dba_indexes;//索引,包括主键索引select * from dba_ind_columns;//索引列select i.index_name,i.uniqueness,c.column_namefrom user_indexes i,user_ind_columns cwhere i.index_name=c.index_nameand i.table_name ='ACC_NBR';//联接使用6、序列:select * from dba_sequences;7、视图:select * from dba_views;select * from all_views;text 可用于查询视图生成的脚本8、聚簇:select * from dba_clusters;9、快照:select * from dba_snapshots;快照、分区应存在相应的表空间。
Oracle数据库⾃带表空间的详细说明需求:需要整理现场⽤户创建的表空间以及其存储数据,进⾏规范化管理。
在整理⽤户现场建⽴的表空间时,需要排除掉⾮⽤户创建的表空间,所有⾸先需要那些表空间是⽤户创建的,那些是Oracle⾃带的。
本机测试建⽴⼀个新库,发现⾃带表空间如下:下⾯对每⼀个表空间进⾏简单说明(部分内容引⾃⽹络):1、SYSAUX表空间SYSAUX表空间在Oracle Database 10g中引⼊,作为SYSTEM表空间的辅助表空间.以前⼀些使⽤独⽴表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.SYSAUX 表空间存放⼀些其他的 metadata 组件,如 OEM,Streams 等会默认存放在 SYSAUX 表空间⾥。
通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建⼀些相关对象及组件引起SYSTEM表空间的碎⽚问题得以避免。
2、SYSTEM表空间SYSTEM表空间是Oracle创建数据库时候⾃动创建的,每个Oracle数据库都会有SYSTEM表空间,⽽且SYSTEM表空间总是要保持在联机模式下,因为其包含了数据库运⾏所要求的基本信息,如:数据字典、联机求助机制、所有回退段、临时段和⾃举段、所有的⽤户数据库实体、其它ORACLE软件产品要求的表等等。
3、TEMP表空间临时表空间⽤来管理数据库排序操作以及⽤于存储临时表、中间排序结果等临时对象,当ORACLE⾥需要⽤到SORT的时候,并且当PGA中sort_area_size⼤⼩不够时,将会把数据放⼊临时表空间⾥进⾏排序。
像数据库中⼀些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能会⽤到临时表空间。
当操作完成后,系统会⾃动清理临时表空间中的临时对象,⾃动释放临时段。
oracle数据库的scott用户的四张表的结构Oracle数据库的Scott用户的四张表的结构表一:部门表DEPT(使用DESC DEPT;查询)NO 名称类型描述1 DEPTN NUMBER(2) 表示部门编号有两位数字所组成O2 DNAME VARCHAR2(1 表示部门名称最多由14个字符所组成4)3 LOC VARCHAR2(1 表示部门所在位置3)(SELECT * FROM DEPT;)NO DEPTNO DNAME LOC1 10 ACCOUNTING( NEWYORK(纽约财务部,会计部) )2 20 RESEARCH(调 DALLAS(达拉斯研部) )3 30 SALES(营业部, CHICAGO(芝加市场部) 哥)4 40 OPERATIONS( BOSTON(波士顿运营部) )表二:雇员表EMP(使用DESC EMP;查询)名称类型描述EMPNO NUMBER(4) 表示雇员编号,由四个数字组成 ENAME VARCHAR2( 表示雇员姓名,由10个字符组成10)JOB VARCHAR2( 表示雇员的职位,由9个字符组成9)MGR NUMBER(4) 表示雇员对应的领导编号,领导也是雇员HIREDA DATE 表示雇员的雇佣日期TESAL NUMBER(7,2 表示雇员的基本工资,由两位小数5位) 整数和2位小数组成,共7位COMM NUMBER(7,2 表示雇员的奖金)DEPTNO NUMBER(2) 表示雇员所在部门的编号(SELECT * FROM EMP;) NO EMPN ENAM JOB MGR HIREDA SAL COM DEPTNO E TE M O1 7369 SMITH CLERK( 7902 17-12月- 800 20(史密斯办事员) 80)2 7499 ALLEN SALESMA 7698 20-2月-81 1600 300 30(艾伦) N(销售员)3 7521 WARD SALESMA 7698 22-2月-81 1250 500 30(沃德) N81 2975 20 4 7566 JONES MANAGE 7839 02-4月-(琼斯) R(经理主管)5 7654 MARTI SALESMA 7698 28-9月-81 1250 1400 30 N()马 N丁6 7698 BLAKE MANAGE 7839 01-5月-81 2850 30(布雷克 R)7 7782 CLARK MANAGE 7839 09-6月-81 2450 10(克拉克 R)8 7788 SCOTT ANALYST 7566 19-4月-87 3000 20(斯科特 (分析员))9 7839 KING( PRESIDE 17-11月- 5000 10金) NT(总经理 81,总裁)10 7844 TURNE SALESMA 7698 08-9月-81 1500 0 30 R(特纳 N)11 7876 ADANS CLERK 7788 23-5月-87 1100 20(奥丹斯)12 7900 JAMES CLERK 7698 03-12月- 950 30(詹姆斯 81)13 7902 FORD( ANALYST 7566 03-12月- 3000 20福特) 8114 7934 MILLE CLERK 7782 23-1月-82 1300 10R(米勒)表三:工资等级表:(DESC SALGRADE) NO 名称类型描述1 GRADE NUMBER 工资的等级2 LOSAL NUMBER 此等级的最低工资3 HISAL NUMBER 此等级的最高工资(SELECT * FROM SALGRADE;查询)NO GRADE LOSAL HISAL1 1 700 12002 2 1201 14003 3 1401 20004 4 2001 30005 5 3001 9999表四:工资表BONUS:(DESC BONUS)NO 名称类型描述1 ENAME VARCHAR2(10) 雇员姓名2 JOB VARCHAR2(9) 雇员职位3 SAL NUMBER 雇员基本工资4 COMM NUMBER 奖金,提成。
关于oracle自带的表***********************************8emp:empno:员工编号;ename:员工名字;job:员工工种;mgr: 上司;hiredate:入职时间;sal:基本工资;comm:补贴;deptno:所属部门编号;dept:deptno:部门编号;dname:部门名称;loc:地理位置;salgrade:grade:工资等级;losal:最低限额;hisal:最高限额;dual:系统自带的一张空表;可用于计算数据:select 2*3 from dual;**sql_function1**********************************************************select lower(ename) from emp; 取出的名字全部变成小写。
select ename from emp where lower(ename) like '_a%';取出的名字变成小写后不含字母aselect substr(ename, 2, 3) from emp;从第二个字符截,截取三个字符。
select cha(65) from dual; 将数字转化为字符(显示为a)。
select ascii('A') from dual; 将字符转化为数字。
select round(23.652) from dual; (显示24)select round(23.652, 2) from dual; (显示23.65)select round(23.652, -1) from dual; (显示20)select to_char(sal, '$99,999.9999')from emp;强制转化为指定的格式。
select to_char(sal, 'L0000.0000')from emp;同上。
select to_char(hiredate, YYYY-MM-DD HH:MI:SS) from emp; 对时间格式显示处理。
select to_char(sysdate, YYYY-MM-DD HH:MI:SS) from emp; 12进制。
select to_char(sysdate, YYYY-MM-DD HH24:MI:SS) from emp; 24进制。
*************************************************************************sql_function2*******************************************************select ename, hiredate from emp where hiredate > to_date('1981-2-20' 12:34:52, 'YYYY-MM-DD HH24:MI:SS'); 函数to_date 将字符转化为时间格式。
select sal from emp where sal > to_number('$1,250.00', '$9,999.99'); 函数to_number将字符转化为数字格式,以作比较。
select ename sal*12 + nvl(comm 0) from emp; 函数nvl作用为当comm为null的时候当作处理,避免了comm为null给结果带来的不便。
***************************************************************************group_function*******************************************************select max(sal) from emp;输出薪水值最高的。
select min(sal) from emp;输出薪水值最低的。
select avg(sal) from emp;输出平均薪水值。
select to_char(avg(sal),'99999999.99') from emp;按照指定格式输出平均薪水值。
select round(avg(sal),2) from emp; 精确到小数点后面2位。
select sum(sal) from emp; 输出薪水值的总和。
select count(*) from emp;求出一共有多少条记录。
select count(*) from emp where deptno = 10; 求部门为10号的记录条数。
select count(ename) from emp; 求一共有几个名字。
select count(comm) from emp; 求非空comm的记录条数。
select count(deptno) from emp;select count(distinct deptno) from emp;***************************************************************************group_by*************************************************************select deptno, avg(sal) from emp group by deptno; 将部门薪水平均分组。
select deptno, job, max(sal) from emp group by deptno; 按组合分组。
select ename, max(sal) from emp where sal = (select max(sal) from emp);select ename max(sal) from emp group by deptno; 这样是错误的。
select deptno max(sal) from emp group by deptno; 这样可行。
**************************************************************************having****************************************************************select avg(sal), deptno from emp group by deptno;select avg(sal), deptno from emp group by deptno having avg(sal) > 2000; having是对分组进行限制。
1 select avg(sal) 选择2 from emp 表原3 where sal > 1200 条件过滤4 group by deptno 分组5 having avg(sal) > 1500 对结果进行限制6 order by avg(sal) desc 对产生的结果进行排序************************************************************************子查询**************************************************************select 语句里面套另外一个select语句。
select ename, sal from emp where sal > (select avg(sal) from emp);select ename,sal from emp join(select max(sal) max_sal, deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno = t.deptno);**self_table**********************************************************自连接:select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno; 把一个表当成两个来使用。
*************************************************************************sql1999_table_connections********************************************1999年标准:select ename, dname from emp cross join dept;旧:新:select ename, dname from emp join dept on (emp.deptno = deptno);select ename, dname from emp join dept using(deptno);(了解即可,不推荐使用)select ename, grade from emp e join salgrade s on (e.sal between s.losal and s.hisal);左外连接:select e1.ename, e2.ename from emp e1 left join emp e2 on(e1.mgr = e2.empno);右外连接:select ename, dname from emp e right outer join dept d (e.deptno = d.deptno);全外连接:select ename, dname from emp e full join dept d (e.deptno = d.deptno);**************************************************************************求部门平均薪水等级****************************************************select deptno, avg(grade) from (select deptno, ename, grade from emp join salgrade s on (t.avg_sal between s.losal and s.hisal)) t group by deptno;***************************************************************************部门中那些人是经理人**************************************************select ename from emp where empno in (select distinct mgr from emp);**************************************************************************不用组函数求薪水的最高值(面试题)************************************select distinct sal from emp where sal not in (select distinct e1.sal from emp e1 join emp e2 on(e1.sal <e2.sal));**************************************************************************平均薪水最高的部门的编号****************************************select deptno, avg_sal from(select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from(select avg(sal) avg_sal , deptno from emp group by deptno))***********************************************************************求平均薪水最高的部门的部门名称select dname from dept where deptno =(select deptno, avg_sal from(select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from(select avg(sal) avg_sal , deptno from emp group by deptno)))方法二:select dname from dept where deptno =(select deptno, avg_sal from(select avg(sal) avg_sal , deptno from emp group by deptno) where avg_sal = (select max(avg_sal) from(select avg(sal) avg_sal, deptno from emp group by deptno)))************************************************************************求平均薪水的等级最低的部门的部门名称****************************************creat new user and insert****************************************1--backup scott2--create usercreate user wp identified by wp default tablespace users quota 10M on users;(创建新用户)grant create session, create table , create view to wangpeng(赋予新用户权限)3--import the datainsert into dept values (50, 'game' 'bj'); 插入数据。