五、视图的操作

---------------------------------------------------------       小路原创           ------------------------------------------------

视图简介:
视图的本质是一个 虚拟的表,其内容和真实的表相似,包含一系列带有名称的列和行数据。但是,视图
并不在数据库中以存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体
引用视图时 动态生成。视图使程序员只关心感兴趣的某些特定数据和他们负责的特定任务。这样程序员
只能看到数据表中的部分数据,从而提高了数据库中数据的安全性。
视图的特点:
1、视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
2、视图是由基表(实表)产生的表(虚表)。
3、视图的建立和删除不会影响到实表。
4、对视图内容的更新直接影响基表。
5、视图来自多个表时,不允许添加和删除数据。

一、创建视图
create view view_name
as 查询语句;

example:
create view view_buildings
as select * from buildings;
--查看视图内容
select * from view_buildings;

二、查看视图
--查看指定数据库中的所有表和视图
use db_name;
show tables;

example:
use school;
show tables;
--查看指定数据库中所有表和视图的详细信息
show table status [from db_name] [like 'pattern']

example:
show table status from school;

--查看指定数据库中视图对象的详细信息
show table status from db_name lile 'pattern';

example:
show table status from school like 'view_buildings';

--查看指定视图定义信息
show create view view_name;

example:
show create view view_buildings;

--查看指定视图的设计信息
describe|desc view_name;

example:
desc view_buildings;
describe view_buildings;

--使用系统表查看视图信息
--information_schema数据库中的views表中保存着所有视图的信息,views表中有一列叫table_name指向视图的名字。
use information_schema;
select * from table_name where table_name = 'view_name';

example:
use information_schema;
select * from views where table_name = 'view_buildings';

三、删除视图
drop view view_name1 [,view_name2]……;

example:
use school;
drop view view_buildings;

四、修改视图
1、使用create or replace view语句修改视图
use db_name;
create or replace view view_name
as 查询语句;

example:
use school;
create or replace view view_buildings
as 
select Id,Name from buildings;
select * from view_buildings;

2、使用alter语句修改视图
alter view view_name
as 查询语句;

example:
alter view view_buildings
as 
select * from buildings;
select * from view_buildings;

五、利用视图操作基表
通过视图查询数据和通过表查询数据完全一样,但是通过视图查询更安全、简单和实用。
通过对视图数据的修改实际是对基表中数据的修改。
注意:如果视图来自几个不同的表,不允许添加和删除数据。
1、查询视图中的数据
select * from view_name;
2、添加 视图中的 数据
insert into view_name(属性1,……属性n)
values(数据1,……数据n);

example:
insert into view_buildings
values(4,'4号教学楼','物理学院');
--下面可看到视图中的数据的更新会直接影响基表的数据。
select * from view_buildings;
select * from buildings;
3、删除 视图中的 数据
delete from view_name where conditions

example:
delete from view_buildings where Id = 4;

select * from view_buildings;
select * from buildings;

4、更新 视图中的 数据
update view_name set 属性名 = 新数据 where conditions;

example:
update view_buildings set Dept = '物理学院' where Id = 3;
select * from view_buildings;
select * from buildings;

---------------------------------------------------------       小路原创           ------------------------------------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值