下面主要是介绍一下表,视图,同义词,序列等数据库对象。
[size=medium][b]一.表。[/b][/size]
在oracle中创建,删除,修改表的语法与其它数据库的方式基本相同。但是oracle数据库的数据库类型却与其它数据库管理系统中的表的数据类型有所不同。
创建:
删除:
修改:
char:存储固定长度的非unicode字符数据,最大长度2,0000字节。
varchar2:存储可变长度的字符数据,最大长度4,000字节。
number:存储所有的数字类型,包括浮点,正数,负数和零。直接使用number(而不是如number(4))它的取值范围是10^-130到10^126-1。
date:存储在公元前01/01/4712到公元后12/31/9999 的日期和时间数据。
[size=medium][b]二.视图。[/b][/size]
1.视图(VIEW)是从一个或多个表中通过查询语句生成的一种虚拟表,可以认为视图就是一个查询语句的结果,只不过以类似于表的形式保存在数据库中。视图是一个虚表,即视图所对应的数据不是实际存在数据库中的,数据库只保存了视图的定义而已。(存在数据字典中)。
创建视图的基本语法:
例如:
创建好了视图,以后我们查询就可以直接使用创建好了的视图(前提是视图中的查询能够满足你的需要),如下:
即语法:
删除视图的语法:
2.视图有那些作用呢(可以达到什么样目的)?
>保护数据安全的目的。因为视图可限制用户从表中所检索的内容,而不是表中所存储的所有数据。
>简化了数据查询和处理操作。
>有利于数据交换的操作。我们可以通过定义一个视图,把需要交换的数据集中在视图中,从而简化了数据交换的操作。
>有利于简化数据权限的管理。
[size=medium][b]三.同义词[/b][/size]
在开发数据库应用程序时,应普遍遵守的规则是尽量避免直接引用表,视图或者其它数据库对象,否则,当DBA对数据对象进行修改变动后,比如改变表的名称,表的结构等,就必须更新并重新编译应用程序。oracle使用同义词(synonym)解决这个问题。
同义词分为两种:
>公有同义词:由一个特殊用户组public所拥有,数据库中的所有用户都可以使用公有同义词。
创建同义词的语法:
>私有同义词:由创建它的用户或者schema所拥有,用户可以控制其他用户是否有权限使用属于自己的私有同义词。
创建同义词的语法:
删除同义词语法:
[size=medium][b]四.序列。[/b][/size]序列(sequence)
是oracle中的一种特殊对象,它可以给应用程序提供基本连续并唯一的数值。序列主要的作用是实现数据库表的主键自动增长。
创建序列的语法:
其中不写[increment by 增长的种子数 start with 起始数字 maxvalue 最大值],默认第一个值是1。如:
序列创建好以后,可以使用它的两个属性:
>nextVal:返回下一个可用的序列值。
>currVal:获得当前序列值。
如果我们想获得最后产生的序列值,就可以使用currVal。
[size=medium][b]一.表。[/b][/size]
在oracle中创建,删除,修改表的语法与其它数据库的方式基本相同。但是oracle数据库的数据库类型却与其它数据库管理系统中的表的数据类型有所不同。
创建:
create table 表名(字段名 字段类型);
删除:
drop table 表名;
修改:
update 表名 set 字段=修改后的值 where 条件;
关于数据库表的数据类型在需要的时候查一下,常用的几个也就如下:
char:存储固定长度的非unicode字符数据,最大长度2,0000字节。
varchar2:存储可变长度的字符数据,最大长度4,000字节。
number:存储所有的数字类型,包括浮点,正数,负数和零。直接使用number(而不是如number(4))它的取值范围是10^-130到10^126-1。
date:存储在公元前01/01/4712到公元后12/31/9999 的日期和时间数据。
[size=medium][b]二.视图。[/b][/size]
1.视图(VIEW)是从一个或多个表中通过查询语句生成的一种虚拟表,可以认为视图就是一个查询语句的结果,只不过以类似于表的形式保存在数据库中。视图是一个虚表,即视图所对应的数据不是实际存在数据库中的,数据库只保存了视图的定义而已。(存在数据字典中)。
创建视图的基本语法:
create or replace view 视图名
as
SQL查询语句;
例如:
create or replace view stusummary
as
select stu.stuid,stu.stuname from student stu;
创建好了视图,以后我们查询就可以直接使用创建好了的视图(前提是视图中的查询能够满足你的需要),如下:
select stuid,stuname from stusummary;
即语法:
select * from 视图名;
删除视图的语法:
drop view 视图名;
2.视图有那些作用呢(可以达到什么样目的)?
>保护数据安全的目的。因为视图可限制用户从表中所检索的内容,而不是表中所存储的所有数据。
>简化了数据查询和处理操作。
>有利于数据交换的操作。我们可以通过定义一个视图,把需要交换的数据集中在视图中,从而简化了数据交换的操作。
>有利于简化数据权限的管理。
[size=medium][b]三.同义词[/b][/size]
在开发数据库应用程序时,应普遍遵守的规则是尽量避免直接引用表,视图或者其它数据库对象,否则,当DBA对数据对象进行修改变动后,比如改变表的名称,表的结构等,就必须更新并重新编译应用程序。oracle使用同义词(synonym)解决这个问题。
同义词分为两种:
>公有同义词:由一个特殊用户组public所拥有,数据库中的所有用户都可以使用公有同义词。
创建同义词的语法:
create public synonym 同义词名称 for 数据库对象名;
>私有同义词:由创建它的用户或者schema所拥有,用户可以控制其他用户是否有权限使用属于自己的私有同义词。
创建同义词的语法:
create synonym 同义词名称 for 数据库对象名;
删除同义词语法:
drop synonym 同义词名称;
[size=medium][b]四.序列。[/b][/size]序列(sequence)
是oracle中的一种特殊对象,它可以给应用程序提供基本连续并唯一的数值。序列主要的作用是实现数据库表的主键自动增长。
创建序列的语法:
create sequence 序列名 [increment by 增长的种子数 start with 起始数字 maxvalue 最大值];
其中不写[increment by 增长的种子数 start with 起始数字 maxvalue 最大值],默认第一个值是1。如:
create sequence my_seq;
创建了一个序列,起始值为1,每次增长1;
序列创建好以后,可以使用它的两个属性:
>nextVal:返回下一个可用的序列值。
>currVal:获得当前序列值。
如果我们想获得最后产生的序列值,就可以使用currVal。
select my_seq.currval from dual;