数据库对象

 

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

  1. 简化sql语句
  2. 隐藏对象的名称和所有者
  3. 提供对象的公共访问
  4. 可分为私有同义词和公有同义词

给用户赋予创建同义词的权限(在System账户下授权)

grant create synonym to 用户名;

创建同义词(在scott用户下创建时)

create synonym a for emp ;     创建私有同义词 a

create public synonym b for emp;  创建公有同义词b

删除同义词

drop synonym a;     删除创建的私有同义词

drop public synonym b;

 

序列:用于生成唯一,连续序号的对象。序列可以是升序也可以是降序

参数说明:

  1. maxvalue必须大于或等于start_num ,必须大于minvalue
  2. increment by:该值默认为1,绝对值必须小于(maxvalue-minvalue)

创建序列(序列名为t_table,不能使用or replace)

create sequence t_table

     start   with 1    起始值为1

     increment   by 1  步值为1

     maxvalue   20     最大值为20

       minvalue  1      最小值为1

       nocycle/cycle    数字不循环或者循环

       cache      指定保留在内存中的整数的个数

     order/noorder ; 确保按照请求秩序生成相应的名称

获得序列当前值

select    t_table.currval  from  dual;

获得下一个序列号

select    t_table.nextval from dual;

修改序列

注意:

  1. start with选出项不能被修改
  2. 不能修改序列的值的初值
  3. 序列的最小值不能小于当前值
  4. 序列的最大值不能大于当前值

alter sequence t_table maxvalue 15;

alter sequence t_table cycle;

alter sequence t_table order;

删除序列

drop sequence t_table;

案例:(使用序列填充主健)

create table p_table(

   stu_id   number primary key,

   stu_name   not null;

);

insert into p_table values(t_table.nextval,’test’);  每次调用一次,值就改变一次

视图:经过定制的方法显示来自一个或多个表的数据。虚拟表可视为“虚拟表”或者“存储的查询”,创建视图所依据的表称为“基表”

优点:

  1. 实现数据的安全性,简化sql语句
  2. 维护数据的独立性,视图可以从多个表检索数据
  3. 用户可以通过简单的查询从复杂的查询中得到结果
  4. 对于相同的数据可产生不同的视图

赋予用于创建视图的权限

grant create view to scott;

案列:创建简单视图(只从单表里获取数据,不包含函数和数据组,视图名view_num)

create or replace force view view_num  

as

select *from emp;

注意:force:适用于当基表不存在的时候,仍然可以创建视图,但是视图不可以查看数据

 

案列:创建视图并定义check约束(定义check约束chk_view20.只能修改除了where条件之外的其他列)

 

create or replace force view view_num

as  

select ename,empno,deptno,job from emp

where deptno=10

with check option constraint chk_view20;

案列:建立只读视图(对10部门的数据只读)

create or replace    force view view_num

as

select *from emp

where deptno=10

with read only;   

案例:建立复杂视图(每个岗位平均薪水,薪水总和,最多薪水,最少薪水)

create view view_all

as

select job 职位,avg(nvl(sal,0)) 平均薪水,sum(sal) 薪水总和,

max(sal)   最多薪水,min(sal) 最少薪水 from emp group by   job;

案列:建立连接视图

create or replace view view_num

as

select e.deptno,e.empno,e.ename,d.dname from emp   e,dept d

where e.deptno=d.deptno;

视图的定义原则:

1.视图的查询可以使用复杂的select语句,包括连接/分组查询,子查询

2.在没有with check option和read only情况下,查询中不能使用order by子句

3.如果没有为check option约束命名,系统会自动为之命名 sys_cn;

4.or replace选项可以不删除原始图便可更改重建,或重新授予对象权限

修改视图限制:

  1. 只能修改一个底层的基表
  2. 如果修改违反了基表的约束条件,则无法更新视图
  3. 如果视图中包含连接符(||),distinct关键字、聚合函数或group by子句,则无法更新视图
  4. 如果视图中包含伪列或表达式,则无法更新视图

重新编译视图

alter view view_num compile;

修改视图的约束

alter view view_num drop constraint chk_view20;

 

删除视图

drop view view_num;

索引:

  1. 为了提高sql语句的执行能力,和rowid有关
  2. 在创建表时,会默认为每个数据建立一个隐含的字段(rowid)
  3. 在向表中插入数据的时,系统自动为每条记录分配一格rowid,利用rowid快速的定位到记录
  4. 类型:唯一索引、组合索引、方向键索引、位图索引、基于函数的索引

创建索引:

create index index_name on table_name(col_name);

create index idx_emp_ename on emp(ename);

删除索引

drop index idx_emp_ename;

转载于:https://www.cnblogs.com/yuxi12/p/7985170.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值