设为首页 收藏本站
查看: 919|回复: 0

[经验分享] Oracle PL/SQL编程有关的数据库对象

[复制链接]
YunVN网友  发表于 2016-8-16 07:05:19 |阅读模式
下面主要是介绍一下表,视图,同义词,序列等数据库对象。
一.表。
在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 的日期和时间数据。
二.视图。
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.视图有那些作用呢(可以达到什么样目的)?
>保护数据安全的目的。因为视图可限制用户从表中所检索的内容,而不是表中所存储的所有数据。
>简化了数据查询和处理操作。
>有利于数据交换的操作。我们可以通过定义一个视图,把需要交换的数据集中在视图中,从而简化了数据交换的操作。
>有利于简化数据权限的管理。
三.同义词
在开发数据库应用程序时,应普遍遵守的规则是尽量避免直接引用表,视图或者其它数据库对象,否则,当DBA对数据对象进行修改变动后,比如改变表的名称,表的结构等,就必须更新并重新编译应用程序。oracle使用同义词(synonym)解决这个问题。
同义词分为两种:
>公有同义词:由一个特殊用户组public所拥有,数据库中的所有用户都可以使用公有同义词。
创建同义词的语法:
create public synonym 同义词名称 for 数据库对象名;
>私有同义词:由创建它的用户或者schema所拥有,用户可以控制其他用户是否有权限使用属于自己的私有同义词。
创建同义词的语法:
create synonym 同义词名称 for 数据库对象名;
删除同义词语法:
drop synonym 同义词名称;

四.序列。序列(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;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258358-1-1.html 上篇帖子: ORACLE:一列的多行数据拼成字符串 下篇帖子: PL/SQL 方式向oracle数据库插入日期类型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表