oracle中的视图
create table a(
id number primary key,
name varchar2(20)
);
create table b(
id number,
name varchar2(20),
aid number references a(id)
);
insert into a values(1,'1');
insert into b values(1,'aaa',1);
如果 create view vi_new as select * from a
在视图vi_new 上做任何 dml操作都会修改 对应的基表中的数据
因为视图就是一个指针
测试 若果drop table 基表 视图同时也会报错 说明 视图不是单独存在的 而是指向基表的
如果 create view vi_new as select t.a,s.name from A t,B s where t.a=s.id
这样就只能进行查询操作了 进行增删改就会跑错
视图的优点
1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
2.用户通过简单的查询可以从复杂查询中得到结果。
3.维护数据的独立性,试图可从多个表检索数据。
4.对于相同的数据可产生不同的视图。
相关文档:
每次通过修改tnsnames.ora配置本地NET服务名都出现错误“ORA-12154:TNS,无法处理服务名”,总得郁闷半天~
这个错误,通常是因为oracle本地NET服务名配置tnsnames.ora文件有严格的格式要求。
例如:
mstrdw =
(DESCRIPTION =
(ADDRESS_LIST =
......
在plsql中,面向对象的程序设计是基于对象类型来完成的。对象类型是用户自定义的一种复合数据类型,它封装了数据结构和用于操纵这些数据结构的过程和函数,在建立复杂应用程序时,通过使用对象类型可以降低应用开发难度,进而提高应用开发的效率和速度。
对象类型包括对象类型规范(object type specification)和对象类型 ......
INTERVAL YEAR TO MONTH数据类型
Oracle语法:
INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]
该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2.
eg:
INTERVAL '123-2' YEAR(3) TO MONTH & ......
抽象数据类型
1、创建类型
--地址类型
CREATE OR REPLACE TYPE AddressType AS OBJECT
(
Country varchar2(15),
City varchar2(20),
Street varchar2(30)
);
2、类型嵌套
--创建基于前一个类型的新的抽象数据类型:巨星类型
CREATE OR REPLACE TYPE SuperStarType AS OBJECT
(
StarName varchar2(30),
Addres ......
-- 删除重复记录
DELETE from mytable t1 WHERE ROWID > (SELECT MIN (ROWID) from mytable t2 WHERE t1. key = t2.key);
-- 当前日期
SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd') from DUAL;
-- 上月当前日期
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,
-1), 'yyyy-MM-dd') from DUAL;
-- 下月当前日期
SELECT
TO_C ......