注释,同义词及视图

1 篇文章 0 订阅
1 篇文章 0 订阅

注释

1.列的注释

1) comment on column 表名.列名 is '注释的内容'; --第一次使用为添加注释

2) comment on column emp.empno is '注释';

3) comment on column 表名.列名 is '注释'; --第二次使用为修改注释 (可以用ctrl+鼠标左键修改)

4) comment on column 表名.列名 is '注释'; --注释为空串时,即为删除注释(单引号不写东西视为删除)

5) comment on column emp.empno is null; --报错,要求文字字符串

6) comment on column emp.empno is 'null'; 相当于添加了一个名为null的注释

2.表的注释

comment on table emp is '注释'; -修改删除方式同上

同义词

datavs

1.含义:相当于给数据库对象(表,索引,视图) 取一个长期有效的别名

公有同义词:所有用户都能使用的 --public synonym

私有同义词:只能是创建用户或者被授权用户使用的synonymd

2.基本语法 公有:create public synonym 公有名 for 对象名;

create public synonym sanshisan for class_1;

私有:create synonym 私有名 for 对象名;

create synonym sanshisi for class_1;

select * from class_1;

select * from scott.class_1;

select * from sanshisi;

3.删除同义词的方法 公有:drop public synonym 公有名;

drop public synonym sanshisan;

私有:drop synonym 私有名;

drop synonym sanshisi;

切换到sys账户时,同义词可以直接使用,不需要加所属用户,因为是私有同义词,无法直接找到,需要赋予查询权限,再来查看表。

视图

1.含义:将查询的结果动态保存到数据库中的一张虚拟表上

2.特点:占用空间小,查询速度快,能动态获取结果,还能像普通表一样使用

3.基本语法:创建视图--只有管理员账号才有创建视图的权限

1) create view 视图名 as SQL语句;

2) create view v_xemp as select * from emp where deptno=20;

3) select * from v_xemp;

4) select * from emp;

4.注意

1) 不能赋予用户查看同义词的权限

2) 给用户赋予查看表的权限后,可以直接使用那张表的同义词

grant select on 用户名.表名 to 用户名

--赋予用户查看某张表的权限

insert into emp (empno,ename,deptno) values (123,'菠萝',20);

--只要来源表发生改变,视图内容跟着改变

insert into v_xemp (empno,ename,deptno) values (125,'小白',20);

--修改视图后,来源表也会修改

insert into v_xemp (empno,ename,deptno) values (124,'小白',10);

--能插入数据,源表也会发生改变,但是视图中不显示,因为违反了创建视图时的where条件

grant dba to scott; 赋予权限

revoke dba from scott; 收回权限

--在视图中进行增加操作,原表也会进行对应的操作

--在emp表中,empno带有主键约束,结合上面一点所以在视图中进行增加操作必须加上empno这一列

5.用新试图替换旧视图的方法(修改视图)

create or replace view 视图名 as sql语句;

create or replace view v_xemp as select * from emp where deptno in (10,20);

删除视图 drop view v_xemp;

drop view v_emp;

drop view v_v_emp;

删除视图不会影响源表

思考题:1.视图中可以使用函数或者来源表中不存在的列吗?

--可以,需要起别名

create view v_emp as select deptno,sum(sal),max(sal) from emp group by deptno;

--提示来源表中不存在的列必须起别名

create view v_emp as select deptno,sum(sal) sum_sal,max(sal) max(sal) from emp by deptno;

2.可以基于表连接创建视图吗

--可以

表连接的表被删掉一个后,视图还在吗

--存在,但无法继续查询,可以再创建一个同名字的表

create view v_emp as select * from emp a join dept b on a.deptno=b.deptno;

--提示,来源表中不能有重复的列名

create view v_emp as select * from emp a join dept b using (deptno);

视图内容会不会随新表更改

会,物化视图:是一张实际存在的表,在源表上复制数据

优点:运行效率较快

创建物化视图的语法:create materialize view 视图名 as sql语句;

6.可以基于视图创建视图吗

--可以

create view v_v_emp as select * from v_emp where deptno in (10,20);

select * from v_v_emp;

--来源表视图被删除后,本视图还存在,但无法查询

7.可以用视图做表连接吗

--可以

8.同义词前面能加用户名吗

--可以

9.同义词能在其他用户下删除吗

--不可以

select * from all_sequences where sequence_owner = 'SCOTT';

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷雨雪白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值