oracle 快速入门之第五章 数据库对象

一:数据库对象基本概念:

   数据库对象又称模式对象,是逻辑结构的集合。
          最基本的数据库对象就是表

     数据逻辑结构:指的是存在一种或多种特定关系的数据元素集合。
     通俗点:就是把数据元素形象地进行了有规则排列,但不用考虑在计算机上如何实现。
     再通俗点:就是数据有规则的排列。

  •  左侧导航窗口的所有文件夹名称都可以称之为数据库对象
  •  最基础的数据库对象=====数据表table
  •  常用的数据库对象:function函数 procedure存储过程 package程序包
  • trigger触发器  table表格  index索引 view视图
  • sequence序列 users用户 synonym同义词
  • 所有数据库对象的操作必须动用SYS去管理

二:同义词(synonym)

同义词——现有对象的一个别名。

        Oracle只有一个数据库,用户的访问是通过表空间分隔开的,一般来说两个用户之间不能相互访问,但现在A用户要B用户分享某个表中的数据,那B的表空间就要给A分配个权限。

    如果只共享表空间中的某个表中的一部分数据,怎么共享?
       将某个表共享,但这也向其他用户曝露了表,存在安全问题。因此,我们给要共享的表设置个同义词(别名),将同义词共享给其他用户。

  • 作用:
  1. 一般为数据表起别名,方便查询使用
  2. 也方便别人能够在有效的权限中进行访问。
  3.  提高安全性
  4.  主要用于资源共享
  • 同义词分类:
  1.  私有同义词;--  只有自己使用; 只能在其模式内访问,且不能与当前模式的对象同名。
  2. 公有同义词;--  搞个别名给大家使用;公有同义词可被所有的数据库用户访问。
  3. 公开同义词的特点:全用户共享
  • 为数据表tb_0214创建一个公开的同义词
create table tb_0214
as
select empno,ename,sal from emp;


create public synonym qrj for scott.tb_0214;

select * from qrj;

  • 给定当前scott用户授予创建同义词的权限-----SYS去授予
grant create synonym to scott;

注意事项:不管是公有同义词还是私有同义词都需要单独授予权限(通过SYS角色授予)

  • 授予权限

  1. 私有同义词
  2. grant create synonym to 用户角色名;
  3. 公有同义词
  4. grant create public  synonym to 用户角色名;
  • 撤销权限

  1. revoke create public synonym from 用户角色

  2. revoke create  synonym from 用户角色

三:序列(sequence)

    序列是用于生成唯一的、连续的序号 的对象。
    序列有升序和降序。一般都是升序。

   生成一连串的有顺序的序号,类似rownum伪列

作用:

     能为我们生成一组连续的,永远不重复的一组数字。
    主要用于提供主键值,做分页。

  当创建表时,该表的主键字段如果需要序号去标记(1,2,3,4,5...)
  可以使用序列这个数据库对象进行标识。

  •   序列就是我们所学的sql server中的标识列:
  •     标识种子——从什么数字开始,常用1
  •     标识增量——每次增加的数

  • 创建序列的语法:

  1.   create sequence 序列名
  2.   start with 值      --该序列从什么值开始标识
  3.   increment by 值    --该序列每次增长指定的值
  4.   maxvalue 最大值
  5.   minvalue 最小值
//简单的
create sequence stu_id

//复杂的
create sequence stu_id2
start with 100
increment by 1
maxvalue 1000
minvalue 1
  • 序列中的两个伪列属性  :

  • currval 当前  

  • nextval 下一个

select stu_id.nextval from dual;

select stu_id.currval from dual;
create table tb_02144
(
       sid number primary key,
       sname varchar2(20)

)


select * from tb_02144;
insert into tb_02144 values(stu_id2.nextval,'张三')

四:视图(view)

    通过定制的方式显示来自一个或多个表的数据。
    说白了:视图就是一个虚拟表,就是一段查询的SQL语句。

  • 作用:

  • 一张虚表,可以将一个复杂的结果集存储到一个视图容器内,以后方便调用

  • 安全性,降低了程序的复杂程度

  • 语法:
  • create view 视图名称
  • as
  • select
  • 查询emp表和dept表一次查询
create view v_demo_01
as
select emp.*,dept.dname,dept.loc from dept inner join emp 
on dept.deptno = emp.deptno where dept.deptno = 10;

注意:视图创建必须授予权限  SYS

grant create view to scott

五:索引(index)

数据库中特定的一种数据排布方式。类似课本的目录
索引创建的目的:加快查询的效率
但是索引在一张表不能创建多个。反而会影响效率。

 

create index i_mc
on emp(ename)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值