mysql视图的特征_MySQL视图

什么是视图?

为了提高复杂sql语句的复用性和安全性,mysql提供了视图的功能,视图本质上是一种虚拟表, 其内容和真实的表一样,包含一系列的带有名称的行和列数据,但是视图并不在数据库中以存储的数值形式存在,行和列来自自定义视图的查询所引用基本表,并在具体引用视图时动态生成。

视图的特性:视图的列可以来自不同的表,是表的抽和在逻辑意义上建立的新关系

视图是由基本表(实表)产生的表(虚表)

视图的建立和删除不影响基本表

对视图的内容的更新(增、删、该)直接影响基本表

视图来自多个基本表时,不允许添加和删除数据

视图的好处:

1、提高了重用性,就像一个函数。

2、对数据库重构,却不影响程序的运行。

3、提高了安全性能。可以对不同的用户,设定不同的视图。

让数据更加清晰。想要什么样的数据,就创建什么样的视图。

1、新建视图:

create view view_name as 查询语句

视图名不能和表名、其他视图名重名,视图实际上就是封装了复杂的查询语句.

视图名以v_或者view_开头

例如:

create view v_employee

as

select no, name, job, mgr, hiredate, comm, deptno from employee;

原来的基表(employee)中有sql字段,在创建视图中讲sal字段隐藏掉了。

查询视图:

select * from v_employee;

查询视图和查询表很相似,但是视图可以隐藏信息。

2、创建各类视图:

封装常量

create view view_const

as

select 3.1415;

封装聚合函数

create view view_function

as

select count(name) from dept;

封装order by

create view view_orderby

as

select name from dept order by deptno desc;

封装内连接

create view view_innerjoin

as

select dept.name from dept join employee on dept.deptno=employee.deptno;

外连接

create view view_leftjoin

as

select dept.name from dept left join employee on dept.deptno=employee.deptno;

3、查看视图:1、show tables

2、show table status

显示所有的表名和视图名

show table STATUS from 数据库名;

show table STATUS from 数据库名 like “v%”;

3、show create view 视图名;

4、desc 视图名;

4、删除视图:

drop view view_name;

5、修改视图:

因为视图是虚表,所以可以先删除后新建

create or replace view view_name

create or replace view v_employee AS select name from employee;alter view view_name as 查询语句

alter view v_employee as select job from employee;

6、利用视图操作基本表:

①查询数据

select * from 视图名;

②利用视图操作基本表

视图不仅可以查询数据,还可以进行更新。但是对视图的更新会反应到实际表中。但是需要注意:对视图进行添加、删除直接影响基本表

视图来自多个基本表,不允许添加和删除数据

插入:

insert into v_employee values

(7888, "sunny", "teacher", 7782, "1987‐04‐01", null,10);

此时基本表empolyee中就会新填一条数据。

删除:

delete from v_employee where no=7888;

删除从视图中添加的no为7888的这条数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值