ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 四 管理数据库对象

四 管理数据库对象

原创 Linux操作系统 作者:treesofthehill 时间:2012-04-16 17:19:01 0 删除 编辑

管理数据库对象

1、  用户、模式和模式对象

1.1 用户与模式

在《三 管理数据库用户》中已讲过,模式是某个用户拥有的所有对象的集合。创建数据库对象的任何用户都拥有一个模式,并且都被视为模式用户。

1.2模式对象

模式对象是具有拥有者的对象,也即是指用户拥有的对象。如HR.regions

数据库还包含非模式对象,如表空间、公共的同义词、公共的数据库连接。

1.3 命名模式对象

模式对象命名规则:

模式对象名最多为30个字符

保留字不能用作模式对象

所有名称必须以从AZ的字母开头

名称只能包含字母,数字,”_”,”$”,”#”

小写字母会转换成大写字母

如果双引号中封装名称,则除了名称长度外,其他规则都不需要遵循。

1.4 对象的命名空间

命名空间定义了一组对象类型,这组对象类型内的所有名称都必须通过模式与名称被唯一标识。

不同命名空间内的对象能够共享相同的名称。

能够共享同一个命名空间的对象类型:表、视图、序列、私有的同义词、独立的过程、独立的函数、程序包、物化视图和自定义类型。

因此,如果数据库中有一个表叫做TEST,那么就不能再创建一个叫做TEST的视图,至少,在一个schema中是不可能出现这种现象的。

具有各自的命名空间的对象类型:索引、约束、集群、数据库触发器、私有的数据库链接和维。

所以你可以创建一个叫做TEST的索引,即使在相同的schema中。

不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:

User rolesPublic synonyms Public database linksTablespacesProfilesParameter files (PFILEs) and server parameter files (SPFILEs)

所以两个Non-schema objects可以用相同的名字。

2、  数据类型

数据类型定义了能够被插入该列的值的性质。

数据类型被分组为:字符数据、数值数据、日期时间数据、大数据和自定义数据。

3、  创建表

Create  table invoices

(

Invoice_number number(4),

Customer_number number(4),

Invoice_date date not null;

Amount number

);

4、  创建约束

约束有:主键、外键、unique, not null, check, default

ALTER TABLE "SYS"."INVOICES"

ADD ( PRIMARY KEY ("INVOICE_NUMBER") VALIDATE )

5、  创建索引

创建索引的两个目的:增强检索记录的性能;实施约束。

索引可以基于一个列、多个列或应用于列的函数。数据库可以自动维护索引。

索引可以改善检索个别记录的性能,同时会降低在记录上执行dml语句的性能;索引有助于select语句,不过会妨碍insert语句。

创建索引:

Create index name_idx on invoices(invoice_number);

6、  创建视图

视图是向用户显示数据的一种手段。视图不具有任何性能优势。

Create view cust_inv as

Select invoice_number, customer_number, amount

From invoices join customers using (cunstomer_number);

7、  创建序列

Create sequence ins_nos start with 1 increment by 1;

其中起始点和增量默认都为1

使用nextval会使序列值自动增加,并且这个增量操作无法回滚。

8、  删除表、约束、索引、视图、序列

Drop table invoice;

Drop view cust_inv;

Drop sequence inv_nos;

约束与索引会随着表删除自动删除,因此不需要删除任何约束和索引。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9537053/viewspace-721352/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-06-11

  • 博文量
    97
  • 访问量
    174453