Oracle编程入门经典 第3章 建立与管理用户和表

  • 多少定义语言(DDL)。
  • 怎样建立我们自己之用户账号。
  • 得用于Oracle表的差数据类型。
  • 怎在表上建立约束。
  • 如何用数据词典获取和数据库中目标有关的消息。

3.1 数据定义语言

DDL通常用于建与治本数据库。它可使用SQL建立目标、配置数据库安全、管理统计数据以及成就其余功能。

在第2回中,我COMMIT和ROLLBACK。在说明中实行插入、更新与去等操作下采用COMMIT语句,就可以假设修改结果当用户数据库被永远存在。

当用户向数据库有DDL语句之时节,则在言辞执行前后就起隐匿之COMMIT语词(即使DDL失败)。这是因DDL不可知进行回滚,而且,这吗象征DDL语句以之前其他没有交到的更动也不能够进行回滚。

当DDL完成以后(由于它们不克进行回滚),ORACLE会调用另一个隐式的COMMIT,为用户开始一个新的事务处理。伪代码如下:

Insert into some_table values(…):

Insert into some_table values(…):

Create table another_table(column1 data type,column2 data type);

Insert into another_table values(…);

Insert into another_table values(…);

这就是说Oracle就见面于后台为咱实践如下操作:

Insert into some_table values(…):

Insert into some_table values(…):

Commit;

Create table another_table(column1 data type,column2 data type);

Commit;

Insert into another_table values(…);

Insert into another_table values(…);

要是展开ROLLBACK,前三修记下仍然在,ANOTHER_TBALE表中的老三久记下就见面掉。

合法的Oracle标识符

Oracle遵守如下规则:

  • 她不能够是Oracle保留字(如SELECT等)
  • 它要利用1暨30只字符。例外的情景数据库的称谓(最多8单字符)和数据库链接(最多128只字符)
  • 其必须盖数据库字符集中之假名字符开头
  • 她仅会包含数据库字集中的字母字符,以及以下字符:#、$、_(另外,数据库连接可以蕴涵‘@’和‘.’)
  • 她不克包含(单或者双)引号

正如的标识符列表为非法:

  • %EMP(不克包含%)
  • SELECT(Oracle保留字)
  • THIS_NAME_IS_LONGER_THAN_30_CHARACTERS
  • 1STCOLUMN(不可知下数字开)
  • SEAN’S_TABLE(不克包含引号)

3.2 表空间

当Oracle中,数据库让划分成了名表空间的独存储单元。这些发明空间是存放表、懿旨以及另外消耗磁盘空间的数据库对象的地方。

3.3 用户

用户可能只要啊自己之数额建立好的用户账号。这项工作不行关键,因为用户应避免用Oracle提供的SYS和SYSTEM账号,或者我们早就于前面的章节中使过之SCOTT账号。

3.3.1 建立用户

DBA角色是一个拥有超过120独网特权的角色。

CREATE_SESSION是一个系统特权,它可吗用户提供连接数据库的力量。

IDENTIFIED BY <标识符>是故来给出用户的密码(如下密码也zyf)

因为SYSTEM最高权力帐户上,建立用户账号,并赋予DBA特权:

SQL> create user oracle_admin identified by zyf

2 /

用户已创建

SQL> grant create session,dba to oracle_admin;

授权成功。

注意:

DBA角色可以为用户完全控制数据库,尽管这种权利在数据库的时段是瓜熟蒂落必要的,但是只要她控制在错误的用户手里,也拿是格外惊险的。

每当建立USER的时光,一些可用的精选项如下所示:

  • DEFAULT
    TABLESPACE。除非另行规定,否则用户所树立的对象还见面蕴藏于它们用户的默认表空间中。如果没明确规定,这个默认值就是SYSTEM。
  • TEMPORARY
    TABLESPACE。例如当询问中开展排序需要空间这样的即字段,都见面在用户的临时表空间中展开分配。在Oracle
    9i之前,这个默认值都是SYSTEM表空间。在Oracle
    9i中,默认的临时表空间是TEMP。
  • QUOTA。用户可吧它们存储数据的表空间赋予配额。这是用户会当表空间中分红的极端要命空间数。
  • PASSWORD
    EXPIRE。使用这子句意味着用户以他们第一不善登录的时光要反他们的密码。

3.3.2 改变用户

当保管数据库的时段,用户可能会见发出各种原因来改用户账号:

  • 重置用户密码
  • 锁定账号和解除账号锁定
  • 修改用户之默认表空间要临时表空间
  • 修改表空间配额

1. 重置密码

ALTER USER命令以及IDENTIFIED BY子句,改变密码。

SQL> create user oracle_admin identified by zyf

2 /

用户已创建

SQL> grant create session,dba to oracle_admin;

授权成功。

SQL> alter user oracle_admin identified by oracle_admin;

用户已更改。

2. 锁定账号和清除账号锁定

于Oracle中,可以将用户账号锁定,以要她不克运用。如下语法:

ALTER USER <username> ACCOUNT [LOCK|UNLOCK];

SQL> connect oracle_admin/oracle_admin;

已连接。

SQL> connect system/zyf

已连接。

SQL> alter user oracle_admin account lock;

用户已更改。

SQL> connect oracle_admin/oracle_admin;

ERROR:

ORA-28000: the account is locked

警告: 您不再连接到 ORACLE。

3. 修改表空间设置

SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME CONTENTS

------------------------------ ---------

SYSTEM PERMANENT

UNDOTBS1 UNDO

TEMP TEMPORARY

CWMLITE PERMANENT

DRSYS PERMANENT

EXAMPLE PERMANENT

INDX PERMANENT

ODM PERMANENT

TOOLS PERMANENT

USERS PERMANENT

XDB PERMANENT

已选择11行。

以默认表空间设置为USERS,临时表空间设置也TEMP。

SQL> alter user oracle_admin default tablespace users temporary tablespace temp;

用户已更改。

4. 修改表空间配额

UNLIMITED关键字指出用户可于USERS表空间被存储数据,直到其深受全占满。我们设置了TEMP表空间被之积存上限为10M,SYSTEM表空间受到也0M。

SQL> alter user oracle_admin

2 quota unlimited on users

3 quota 10M on temp

4 quota 0M on system

5 /

用户已更改。

3.3.3 删除用户

以去用户,使用DROP USER命令。

CASCADE如果将那个用于DROP
USER命令末尾,就好让Oracle知道应当起数据库移走用户之前,删除用户的装有目标(例如:表、视图、以及经过代码)。

试验:建立和去用户

(1) 连接ORACLE_ADMIN账号,建表DROPME授权

SQL> connect oracle_admin/oracle_admin

已连接。

SQL> create user dropme

2 identified by doomed

3 default tablespace users

4 temporary tablespace temp

5 quota unlimited on users

6 /

用户已创建

SQL> grant create session,create table to dropme

2 /

授权成功。

(2) 作为DROPME用户连接数据库,并且建立一个之类所出示之大概说明:

SQL> connect dropme/doomed

已连接。

SQL> create table employees_backup(

2 employee_id number,

3 last_name varchar2(30),

4 email varchar2(100)

5 )

6 /

表已创建。

(3) 使用ORACLE_ADMIN账号(它富有DROP USER特权)删除用户DROPME:

SQL> connect oracle_admin/oracle_admin

已连接。

SQL> drop user dropme;

drop user dropme

*

ERROR 位于第 1 行:

ORA-01922: 必须指定 CASCADE 以删除'DROPME'

(4) DROPME用户所有一个阐明,使用CASCADE关键字,如下所示:

SQL> drop user dropme cascade;

用户已丢弃

3.4 Oracle数据类型

3.4.1 数值类

数值类可以用来存储整数、浮点值以及实数。在Oracle中的NUMBER数据类型具有精度(precision)和限(scale)。精度是数值中之数字总数,可以吗1至38只数字里的其余价值。范围取值可以从0到3,它表达了别样给定数值的稍数碰右侧边的位数。

<column_name>NUMBER(precision[, scale])

宣示示例如:NUMBER(即NUMBER(38))、NUMBER(9,2)、NUMBER(4,10)。

3.4.2 字符类型

1. CHAR

CHAR数据长度的数值将见面被SQL使用空格填充剩余长度。例如:

SQL> create table authorized_blends(

2 bean_name char(50)

3 );

表已创建。

SQL> insert into authorized_blends values('Papua New Guinea');

已创建 1 行。

SQL> insert into authorized_blends values('Ethiopia');

已创建 1 行。

SQL> insert into authorized_blends values('Sumatra');

已创建 1 行。

SQL> select bean_name,length(bean_name)

2 from authorized_blends

3 /

BEAN_NAME LENGTH(BEAN_NAME)

-------------------------------------------------- -----------------

Papua New Guinea 50

Ethiopia 50

Sumatra 50

2. NCHAR

NCHAR数据类型使用了和CHAR数据类型大体相同之办法来囤积固定长度的字符数据。两者之间的反差就在于在数据库被储存NCHAR数据的章程各异。

3. VARCHAR2

VARCHAR2数据类型与CHAR类型非常相似,两者之间的不同之处在于种VARCHAR2的声明是可转换长,而无定点长度(不见面如CHAR一样产生空格对值的填充)。

4. NVARCHAR2

NVARCHAR2列可以储存可转换长的因字符的多寡,它大致以及VARCHAR2数据类型相同之法门展开工作。它们两者之间的重要出入是NVARCHAR2数据以数据库被的积存方。

5. 长短语义

Oracle不可知自行考虑到差不多配节字符集。Oracle
9i中好以排大小附加BYTE或者CHAR,以报Oracle怎样解释数值。

6. RAW

RAW数据类型与VARCHAR2相似,虽然RAW列可以用于存储可更换长的二进制数据,而不是字符数据。RAW列的极致可怜尺寸是2000单字节。

7. LONG和LONG RAW

LONG数据类型可以用来在单身的排列被储存大数据量的可变长度字符数据。LONG列的轻重缓急最高可为2GB。在Oracle8中,可以使用CLOB或者NCLOB数据类型对那进展替代。

LONG
RAW数据类型就像它们的名字所讲述的那么,是一个方可遥超2000单字节的RAW数据类型。当声明LONG
RAW列的时候,不用规定那大小。与这相对,LONG
RAW列能够包含最高及2GB的二进制数据还是字节。在Oracle
8i中,建议管理员使用BLOB或者BFILE数据类型。

8. 大对象

当Oracle
8中引入了充分目标要叫LOB。它们为根据二进制和字符的普遍数据,提供了较以前的LONG
RAW数据类型列灵活的蕴藏机制。特别是:

  • LOB在数据库中存储物理数据时,可以拓展一些抉择。
  • LOB可以于Oracle对象类型中使用。
  • LOB支持对数据的分层访问。
  • 每种型的LOB都得储存4GB的数目。
  • 在Oracle提供的PL/SQL程序包DBMS_LOB中,提供了拍卖LOB的效果。

  • LOB类型

出有见仁见智类别的LOB:

  • 亚上制大对象(BLOB)。
  • 字符大对象(CLOB)。
  • 江山字符大对象(NCLOB)。
  • 第二进制文件(BFILE)。

10. LOB定位符

LOB定位符是在使用外挂方式或当BFILE中存储LOB的时候,在说明底笔录被实际存储的目标。它便是一个对实际LOB的指针,可以告知Oracle怎样在需要的时获得LOB。这种措施可以避免以开展全表搜索的下,让Oracle举历表的数码块被储存的累累的隐含LOB的笔录。通过动以表中蕴藏的LOB定位符来代替实际多少,Oracle就可以读取表的数据块,而如果LOB定位符的影响最为小。

3.4.3 日期和时

Oracle提供如下类别的岁月数额类:

  • DATE
  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE*
  • TIMESTAMP WITH LOCAL TIME ZONE*
  • INTERVAL YEAR TO MONTH*
  • INTERVAL DAY TO SECOND*

这些号了*的种类只在于Oracle 9i中。

1. DATE

TO_DATE和SYSDATE

SQL> connect oracle_admin/oracle_admin;

已连接。

SQL> create table company_events(

2 event_name varchar2(100),

3 event_date date)

4 /

表已创建。

SQL> insert into company_events(event_name,event_date) values('Created DATE Sample code',SYSDATE);

SQL> insert into company_events(event_name,event_date) values('Oracle Open World',to_date('2-12月-2001','DD-MON-YYYY'));

SQL> column event_name format a40;

SQL> select * from company_events;

EVENT_NAME EVENT_DATE

---------------------------------------- ----------

Created DATE Sample code 31-12月-12

Oracle Open World 02-12月-01

SHOW PARAMETERS来判断我们数据库的默认日期格式,如下所示:

SQL> show parameters nls_date_format;

NAME TYPE VALUE

--------------------- ------------ ----------- 

nls_date_format string

DATE关键字规定日期值,如下语法实现:

SQL> insert into company_events(event_name,event_date) values('Created an Oracle 9i DATE value',DATE

'2001-10-11');

已创建 1 行。

SQL> select * from company_events;

EVENT_NAME EVENT_DATE

---------------------------------------- ----------

Created DATE Sample code 31-12月-12

Oracle Open World 02-12月-01

Created an Oracle 9i DATE value 11-10月-01

2. TIMESTAMP

<column_name> TIMESTAMP [SECONDS_PRECISION]

例如:

SQL> create table other_company_events(

2 event_name varchar2(100),

3 event_date date,

4 event_timestamp timestamp);

表已创建。

SQL> insert into other_company_events(event_name,event_date,event_timestamp) values('Created COMPAN

_EVENTS table',sysdate,sysdate);

已创建 1 行。

SQL> column event_name format a28;

SQL> column event_date format a18;

SQL> column event_timestamp format a28;

SQL> select event_name,to_char(event_date,'DD-MON-YY HH24:MI:SS') event_date,event_timestamp from ot

her_company_events;

EVENT_NAME EVENT_DATE EVENT_TIMESTAMP

---------------------------- ------------------ ----------------------------

Created COMPANY_EVENTS table 31-12月-12 16:26:5 31-12月-12 04.26.59.000000

9 下午

每当是事例中,我们向星星只列EVENT_DATE和EVENT_TIMESTAMP中插入了SYSDATE。当于夫表中精选数据的时,我们便可知见到TIMESTAMP列为SECOND字段提供了6员数字之精度,而DATE列没有存储小数部分的秒。

3. TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE数据类型是TIMESTAMP数据类型的恢宏。语法如下:

<column_name> TIMESTAMP [SECONDS_PRECISION] WITH TIME ZONE

(1) 建立名吧CONFERENCE_CALLS的说明,然后插入与三只电话会有关的消息:

SQL> create table conference_calls(

2 title varchar2(100),

3 phone varchar2(20),

4 place varchar2(100),

5 starts timestamp with time zone)

6 /

表已创建。

SQL> insert into conference_calls(title,phone,place,starts)

2 values('Sales Strategy','212.123.4567','Washington',TIMESTAMP '2001-12-01 15:00:00.000000 EST')

已创建 1 行。

(2) 查询所处的时区

SQL> select dbtimezone from dual;

DBTIME

------

-07:00

(3) 查询有在当前当地时间15:00之笔录

SQL> select title,phone from conference_calls

2 where starts=TIMESTAMP '2001-12-01 15:00:00.000000 -7:00';

未选定行

4. TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE与TIMESTAMP WITH TIME
ZONE大体相同,只是当前头一样栽状况被,要根据用户会话时区在排着存储时区数据。语法如下:

<column_name> TIMESTAME [SECONDS_PRECISION] WITH LOCAL TIME ZONE

如:

SQL> create table local_conference_calls(

2 title varchar2(100),

3 phone varchar2(20),

4 place varchar2(100),

5 starts timestamp with local time zone);

表已创建。

SQL> insert into local_conference_calls(title,phone,place,starts)

2 values('Sales Strategy','212.123.4567','New York',TIMESTAMP '2001-12-01 15:00:00.000000 EST');

已创建 1 行。

ALTER SESSION SQL语句也我们的对话设置时区。

SQL> alter session set time_zone='-05:00';

会话已更改。

SQL> column title format a25;

SQL> column stats format a30;

SQL> select title,starts from local_conference_calls;

TITLE

-------------------------

STARTS

---------------------------------------------------------------------------

Sales Strategy

01-12月-01 03.00.00.000000 下午

英国时区:

SQL> alter session set time_zone='GMT';

会话已更改。

SQL> select title,starts from local_conference_calls;

TITLE

-------------------------

STARTS

---------------------------------------------------------------------------

Sales Strategy

01-12月-01 08.00.00.000000 下午

5. INTERVAL YEAR TO MONTH

其可以用来存储月或者年之岁月周期。

INTERVAL YEAR [(YEAR_PRECISION)] TO MONTH

夫年精度(YEAR_PRECISION)值规定了足以间隔值的YEAR字段中包含的数字数量。合法值为0至9,默认值是2。

6. INTERVAL DAY TO SECOND

INTERVAL DAY TO SECOND是Oracle
9i中的别样一个间隔数据类型,它可以用于存储天、小时、分钟与秒。语法如下:

INTERVAL DAT [(DAY_PRECISION)] TO SECOND [(SECONDS_PRECISION)]

如下:

SQL> create table employee_breaks(

2 employee_id number,

3 break_reason varchar2(100),

4 break_time interval day(1) to second(2));

表已创建。

SQL> insert into employee_breaks values(100,'COFFEE BREAK',TIMESTAMP '2001-09-03 12:47:00.000000'-TI

MESTAMP '2001-09-03 13:13:00.000000');

已创建 1 行。

SQL> column break_reason format a20;

SQL> column break_time format a20;

SQL> select employee_id,break_reason,break_time from employee_breaks;

EMPLOYEE_ID BREAK_REASON BREAK_TIME

----------- -------------------- --------------------

100 COFFEE BREAK -0 00:26:00.00

3.4.4 ANSI数据类型

Oracle支持工业标准的ANSI数据类型,以及IBM
DB/2和SQL/DS数据类型。这些类别出于一些缘由会充分有因此:

  • 一部分数据库设计工具得以导出可以叫其他品类的数据库使用的ANSI兼容SQL。
  • 有些每当另外数据库及以的SQL脚论无需更换成Oracle语法就得当Oracle中利用。

1. 数值数据类型转换表

表3-2 数值数据类型转换表

可用SQL数据类型

Oracle等价数据类型

NUMERIC(PRECISION,SCALE)

NUMBER(PRECISION,SCALE)

DECIMAL(PRECISION,SCALE)

NUMBER(PRECISION,SCALE)

INTEGER

NUMBER(38)

INT

NUMBER(38)

SMALLINT

NUMBER(38)

FLOAT(b)

NUMBER

DOUBLE PRECISION

NUMBER

REAL

NUMBER

2. 字符数据类型转换表

说明3-3 字符数据类型转换表

可用SQL数据类型

Oracle等价数据类型

CHARACTER(size)

CHAR(size)

CHAR(size)

CHAR(size)

CHARACTER VARYING(size)

VARCHAR(size)

CHAR VARYING(size)

VARCHAR(size)

NATIONAL CHARACTER(size)

NCHAR(size)

NATIONAL CHAR(size)

NCHAR(size)

NCHAR(size)

NCHAR(size)

NATIONAL CHARACTER VARYING(size)

NVARCHAR2(size)

NATION CHAR VARYING(size)

NVARCHAR2(size)

NCHAR VARYING(size)

NVARCHAR2(size)

3.5 建立表

确立表的无限简易与无限常见的方法会如下语法:

CREATE TABLE [SCHEMA.].<table_name>(

<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,…]

);

SCHEMA。这是表所属的用户称,或者模式名称。

TABLE_NAME。这是一旦确立之表底号。

COLUMN_NAME。这是于表明中设树的排列的称号。

DATA TYPE。

DEFAULT
<expression>。对于每个列,用户还得以定义一个默认值,以用于没有也列插入语句提供值的状。

CONSTRAINT。用户可选在用户建立之次第列上定义约束。

3.5.1 约束

于Oracle中,可以运用有声明型完整性约束,来担保用户数据是。

声明型完整性(declarative integrity)是可以用于表列的强制规则。

参考完整性(referential
integrity)是要Oracle成为关系数据库的关键组成部分。

1. 约束语法

CREATE TABLE [SCHEMA.].<table_name>(

<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,…]

);

尚足以利用ALTER TABLE 语句向表中加上约束,如下所示:

ALTER TABLE [SCHEMA.]<table_name>

ADD [CONSTRAINT [<name>]]

<constraint definition>

);

2. 主键

发明的主键可以确保于一个表中没有还行。尽管用户可以起无主键的申,但是就通常为看是不好的惯,应该尽量避免。

用户之表中定义主键的当儿用记住的一些要点如下所示:

  • 于随心所欲给定表上只会来一个主键。
  • 表中莫可知生出另外两实行具相同之主键。
  • 主键列不可知为NULL。

SQL> create user hr_audit identified by zyf

2 /

用户已创建

SQL> grant create session,dba to hr_audit

2 /

授权成功

SQL> create table another_dept as select * from scott.dept;

表已创建。

SQL> alter table another_dept

2 add constraint another_dept_pk

3 primary key(deptno);

表已更改。

3. 外键

于Oracle中,表能够通过采取所谓的外键约束进行关联。约束好放置于一个阐明(子表)中的一个排或者千篇一律组列上。作为约束定义之片,必须使定义子表的排列去参考其他一个表中(父表)的一个匹配列或者列组。

当使用外键的上,需要记住一些要领:

  • 每当父表中吃参照的排列必须是唯一键或主键
  • 外键可以由多单列成。这些列于号称复合外键。复合外键所持有的子表列要跟父表列的数额相匹配。
  • 当当子表中插记录之时节,不论父表在相应的列中是否具备NULL值,外键列都可以插NULL值。
  • 外键可以是由参照约束,也就是说它们可依赖回到相同之表明。

SQL> grant select on emp to hr_audit;

授权成功。

SQL> create table another_emp as select * from scott.emp;

表已创建。

SQL> alter table another_emp

2 add constraint another_dept_fk foreign key(deptno) references another_dept(deptno)

3 /

表已更改。

4. 唯一性约束

唯一性约束(unique
constraints)可以确保表中的诸尽,对于值为非NULL的为定列或者列组都有着唯一值。如同给外键约束,在利用唯一性约束的时呢闹有要:

  • 每当表中,可以生出多独执行于对应的唯一性约束列被颇具NULL值。由于NULL值未抵另一个NULL值,所以可以当当唯一性约束列着有NULL值的排列唯一。
  • 好行使多独列建立唯一性约束。这些列称为复合唯一键。
  • 唯一键能够由最多32只列成。
  • 当定义唯一键封锁之当儿,Oracle会在后台建立一个唯一性索引来强制唯一性。

SQL> alter table another_emp

2 add(

3 ssn varchar2(9)

4 );

表已更改。

SQL> alter table another_emp

2 add constraint another_emp_ssn_uk

3 unique(ssn);

表已更改。

5. CHECK约束

CHECK约束是用来表中积德的评估规范。如果在建立约束的时节,针对表中任何笔录的条件评估为FALSE,那么她的成立就会见败。

SQL> alter table another_emp

2 add(

3 gender varchar(10));

表已更改。

SQL> alter table another_emp

2 add constraint ck_gender

3 check(gender in ('MALE','FEMALE'));

表已更改。

SQL> select * from another_emp where sal>1500;

SQL> update another_emp set gender='MALE' where mod(empno,2)=0;

SQL> update another_emp set gender='FEMALE' where mod(empno,2)=1;

SQL> select empno,job,sal,gender from another_emp where sal>3000;

EMPNO JOB SAL GENDER

---------- --------- ---------- ----------

7839 PRESIDENT 5000 FEMALE

3.5.2 CREATE TABLE AS SELECT

复制表结构

CREATE TABLE <table_name> AS SELECT

注意:

当用CREATE TABLE … AS SELECT
语法建立表的下,支持对象(例如约束、索引和触发器)将不会见作操作的结果建立。

3.6 数据词典

作为数据词典视图的简练示例,这是一个足吃抱有数据库用户采取的视图。

SQL> describe user_tables;

对视图所处之空中感兴趣,则如下所示:

SQL> select table_name,tablespace_name from user_tables order by table_name

TABLE_NAME TABLESPACE_NAME

------------------------------ ------------------------------

ANOTHER_DEPT SYSTEM

ANOTHER_EMP SYSTEM

BONUS SYSTEM

DEPT SYSTEM

EMP SYSTEM

SALGRADE SYSTEM

已选择6行。

其他视图:

  • USER_TAB_COLUMNS——这个视图不仅提供了关于表中的排的数据,而且还提供了有关属于即用户的视图和簇中的排列的数码。
  • USER_TAB_MODIFICATIONS——这个表包含了由Oracle优化器最后一软对表进行解析以来,在脚下用户所负有的表上进行的改观。
  • USER_TAB_PRIVS——这个表包含了有着针对表进行的授权。
  • USER_TABLES——这个视图包含了用户所所有的阐发底首先数据。

数码词典范围

USER_TABLES视图只能于我们展示暨目前用户所持有的表有关的音。而一方面,数据库管理账号也足以用DBA_TABLES视图。

SQL> select owner,table_name from all_tables order by owner,table_name;

3.7 小结

章根据自己明白浓缩,仅供参考。

选取自:《Oracle编程入门经典》 清华大学出版社 http://www.tup.com.cn/

相关文章