oracle视图作用及创建方法咯
2013-09-11 15:54
453 查看
视图一般都是需要sys权限才能查看的吧,而且自己建的视图还需要进行:
SQL>CONN /as sysdba;
SQL>grant create view to scott;
在查看日志文件的时候,想查看v$log和v$logfile时候发现不能用scott用户登录,显示视图或者表不存在!
视图可以用来方便理解,可以当作中间层简化逻辑,下边是我在晚上看到的一个例子,写的很好,很通俗易懂:
比如说图书馆有图书book(id,name,prise....)
读者reader(id.....)
借阅关系 borrow( bookid,readerid,date)
显然存在一张表很不方便操作,分开又不方便查看
那就建立个视图,view1:
select * from book,reader,borrow where book.id=bookid and
reader.id=readerid
等值链接。
这样只要查询select * from view1 就可以看到谁借了什么书了,包括所有的详细内容。
以下是我自己做的一个最简单的oracle数据库视图
创建book(图书)表:
book_id 为主键
book_name 为书名 price 是价格 (几个在0 ¥
到 1000¥ 之间)
create table book(book_id char(4) primary key, book_name
varchar2(30),price number, check(price between 0 and 1000));
创建reader(读者)表:
reader_id 是主键 reader_name 是读者姓名
age 是读者年龄 (必须在0 岁 到 100 之间)
create table reader(reader_id char(4) primary key, reader_name
varchar2(30), age number,check(age between 0 and 1000));
创建borrow(关系表)
reader_id 和 book_id 是联合主键。 describe 是描述。
create table borrow(reader_id char(4),book_id char(4), describe
varchar2(255), primary key(book_id,reader_id), foreign
key(reader_id) references reader (reader_id), foreign key(book_id)
references book (book_id));
到现在为止, 数据库表 已经完成了。下边要开始创建视图了
create or replace view book_reader as select
r.reader_name,r.age,b.book_name,b.price,bo.describe from book b,
reader r, borrow bo where b.book_id = bo.book_id and r.reader_id =
bo.reader_id;
已经完成了
你往这三个表了
insert(插入)一些数据就行了
然后测试一下
select * from book_reader ;
这是从视图里查询 查询结果是全部的数据
select * from book_reader where price between 100 and 130 ;
被别人借阅的书中 价格在100 到 130 之间的。
#数据库
SQL>CONN /as sysdba;
SQL>grant create view to scott;
在查看日志文件的时候,想查看v$log和v$logfile时候发现不能用scott用户登录,显示视图或者表不存在!
视图可以用来方便理解,可以当作中间层简化逻辑,下边是我在晚上看到的一个例子,写的很好,很通俗易懂:
比如说图书馆有图书book(id,name,prise....)
读者reader(id.....)
借阅关系 borrow( bookid,readerid,date)
显然存在一张表很不方便操作,分开又不方便查看
那就建立个视图,view1:
select * from book,reader,borrow where book.id=bookid and
reader.id=readerid
等值链接。
这样只要查询select * from view1 就可以看到谁借了什么书了,包括所有的详细内容。
以下是我自己做的一个最简单的oracle数据库视图
创建book(图书)表:
book_id 为主键
book_name 为书名 price 是价格 (几个在0 ¥
到 1000¥ 之间)
create table book(book_id char(4) primary key, book_name
varchar2(30),price number, check(price between 0 and 1000));
创建reader(读者)表:
reader_id 是主键 reader_name 是读者姓名
age 是读者年龄 (必须在0 岁 到 100 之间)
create table reader(reader_id char(4) primary key, reader_name
varchar2(30), age number,check(age between 0 and 1000));
创建borrow(关系表)
reader_id 和 book_id 是联合主键。 describe 是描述。
create table borrow(reader_id char(4),book_id char(4), describe
varchar2(255), primary key(book_id,reader_id), foreign
key(reader_id) references reader (reader_id), foreign key(book_id)
references book (book_id));
到现在为止, 数据库表 已经完成了。下边要开始创建视图了
create or replace view book_reader as select
r.reader_name,r.age,b.book_name,b.price,bo.describe from book b,
reader r, borrow bo where b.book_id = bo.book_id and r.reader_id =
bo.reader_id;
已经完成了
你往这三个表了
insert(插入)一些数据就行了
然后测试一下
select * from book_reader ;
这是从视图里查询 查询结果是全部的数据
select * from book_reader where price between 100 and 130 ;
被别人借阅的书中 价格在100 到 130 之间的。
#数据库
相关文章推荐
- ORACLE中判断表或视图是否存在,如果不存在再创建的方法
- 解决Oracle创建视图(VIEW)权限不足的方法
- Oracle中视图的创建和处理方法
- Oracle同义词创建及其作用,解决java中数据库报错的表或视图不存在
- 解决Oracle创建视图(VIEW)权限不足的方法
- 解决Oracle创建视图(VIEW)权限不足的方法
- Oracle中视图的创建和处理方法
- ORACLE中判断表或视图是否存在,如果不存在再创建的方法
- Oracle中视图的创建和处理方法
- 解决Oracle创建视图(VIEW)权限不足的方法
- Oracle中视图的创建和处理方法
- Oracle中视图的创建和处理方法
- Oracle中视图的创建和处理方法
- oracle创建视图触发器
- Oracle MATERIALIZED VIEW -- 创建物化视图
- Activiti 配置Oracle不能自动创建表解决方法
- oracle 12c 创建用户失败的解决方法
- ORACLE soctt 不能创建视图-权限不足
- oracle创建数据库的三种方法
- Oracle 创建 DBLink 的方法