前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库,详解视图,高手必备(二)

MySQL数据库,详解视图,高手必备(二)

作者头像
用户1289394
发布2021-11-16 11:05:36
4650
发布2021-11-16 11:05:36
举报
文章被收录于专栏:Java学习网

修改视图

2种⽅式。

⽅式1

如果该视图存在,就修改,如果不存在,就创建新的视图。

create or replace view 视图名

as

查询语句;

示例

CREATE OR REPLACE VIEW myv3

AS

SELECT

job_id,

AVG(salary) javg

FROM employees

GROUP BY job_id;

⽅式2

alter view 视图名

as

查询语句;

示例

ALTER VIEW myv3

AS

SELECT *

FROM employees;

删除视图

语法

drop view 视图名1 [,视图名2] [,视图名n];可以同时删除多个视图,多个视图名称之间⽤逗号隔开。

示例

mysql> drop view myv1,myv2,myv3;

Query OK, 0 rows affected (0.00 sec)

查询视图结构

/*⽅式1*/

desc 视图名称;

/*⽅式2*/

show create view 视图名称;

如:

mysql> desc myv1;

+-----------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-----------------+-------------+------+-----+---------+-------+

| last_name | varchar(25) | YES | | NULL | |

| department_name | varchar(3) | YES | | NULL | |

| job_title | varchar(35) | YES | | NULL | |

+-----------------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)

mysql> show create view myv1;

+------

+---------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

--------------+----------------------+----------------------+

| View | Create View

| character_set_client | collation_connection |

+------

+---------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------

--------------+----------------------+----------------------+

| myv1 | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL

SECURITY DEFINER VIEW `myv1` AS select `t1`.`last_name` AS

`last_name`,`t2`.`department_name` AS

`department_name`,`t3`.`job_title` AS `job_title` from ((`employees`

`t1` join `departments` `t2`) join `jobs` `t3`) where

((`t1`.`department_id` = `t2`.`department_id`) and (`t1`.`job_id` =

`t3`.`job_id`)) | utf8 | utf8_general_ci |

+------

+---------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

----------------------------------------------------------------------

--------------+----------------------+----------------------+

1 row in set (0.00 sec)

show create view显⽰了视图的创建语句。

更新视图【基本不⽤】

视图的更新是更改视图中的数据,⽽不是更改视图中的sql逻辑。

当对视图进⾏更新后,也会对原始表的数据进⾏更新。

为了防⽌对原始表的数据产⽣更新,可以为视图添加只读权限,只允许读视图,

不允许对视图进⾏更新。

⼀般情况下,极少对视图进⾏更新操作。

示例

CREATE OR REPLACE VIEW myv4

AS

SELECT last_name,email

from employees;

/*插⼊*/

insert into myv4 VALUES ('路⼈甲Java','javacode2018@163.com');

SELECT * from myv4 where email like 'javacode2018%';/*修改*/

UPDATE myv4 SET last_name = '刘德华' WHERE last_name = '路⼈甲Java';

SELECT * from myv4 where email like 'javacode2018%';

/*删除*/

DELETE FROM myv4 where last_name = '刘德华';

SELECT * from myv4 where email like 'javacode2018%';

注意:视图的更新我们⼀般不使⽤,了解即可。

总结

1. 了解视图的⽤途及与表的区别。

2. 掌握视图的创建、使⽤、修改、删除。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档