iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MYSQL中怎么创建一个视图
  • 331
分享到

MYSQL中怎么创建一个视图

2024-04-02 19:04:59 331人浏览 泡泡鱼
摘要

Mysql中怎么创建一个视图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一. 视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样

Mysql中怎么创建一个视图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一. 视图概述

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

视图是存储在数据库中的查询的sql 语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。

  视图:查看图形或文档的方式。

  视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。

  所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。

  视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。

  当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

  视图有很多优点,主要表现在:

  •视点集中

  •简化操作

  •定制数据

  •合并分割数据

  •安全性

二. 创建视图——create view

1. 语法

create [or replace] [alGorithm = {undefined | merge | temptable}] view [db_name.]view_name [(column_list)] as select_statement [with [cascaded | local] check option]

通过该语句可以创建视图,若给定了[or replace],则表示当已具有同名的视图时,将覆盖原视图。

select_statement是一个查询语句,这个查询语句可从表或其它的视图中查询。视图属于数据库,因此需要指定数据库的名称,若未指定时,表示在当前的数据库创建新视图。

表和数据库共享数据库中相同的名称空间,因此,数据库不能包含相同名称的表和视图,并且,视图的列名也不能重复。

2. 使用举例

eg. 本例创建一个产品表(product)和一个购买记录表(purchase),再通过视图purchase_detail查询出购买的详细信息。

create table product

(

product_id int not null,

name varchar(50) not null,

price double not null

);

insert into product values(1, 'apple ', 5.5);

create table purchase

(

id int not null,

product_id int not null,

Qty int not null default 0,

gen_time datetime not null

);

insert into purchase values(1, 1, 10, now());

create view purchase_detail as select product.name as name, product .price as price, purchase.qty as qty, product .price * purchase.qty as total_value from product, purchase where product.product_id = purchase.product_id;

创建成功后,输入:select * from purchase_detail;

运行效果如下:

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

| name | price | qty | total_value |

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

| apple | 5.5 | 10 | 55 |

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

1 row in set (0.01 sec)

3. 注意事项

创建视图存在如下注意事项:

(1) 运行创建视图的语句需要用户具有创建视图(crate view)的权限,若加了[or replace]时,还需要用户具有删除视图(drop view)的权限;

(2) select语句不能包含from子句中的子查询;

(3) select语句不能引用系统或用户变量;

(4) select语句不能引用预处理语句参数;

(5) 在存储子程序内,定义不能引用子程序参数或局部变量;

(6)在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用check table语句;

(7) 在定义中不能引用temporary表,不能创建temporary视图;

(8) 在视图定义中命名的表必须已存在;

(9) 不能将触发程序与视图关联在一起;

(10) 在视图定义中允许使用order by,但是,如果从特定视图进行了选择,而该视图使用了具有自己order by的语句,它将被忽略。

三. 修改视图——alter view

1. 语法

alter [algorithm = {undefined | merge | temptable}] view view_name [(column_list)] as select_statement [with [cascaded | local] check option]该语句用于更改已有视图的定义。其语法与create view类似。

2. 使用举例

eg. 将上一小节中中创建的视purchase_detail进行修改,去掉qty列,语句如下:

alter view purchase_detail as select product.name as name, product .price as price, product .price * purchase.qty as total_value from product, purchase where product.product_id = purchase.product_id;

此时通过语句:select * from purchase_detail;对视图进行查询时,结果如下:

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

关于mysql中怎么创建一个视图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL中怎么创建一个视图

本文链接: https://www.lsjlt.com/news/56994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MYSQL中怎么创建一个视图
    MYSQL中怎么创建一个视图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一. 视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样...
    99+
    2024-04-02
  • MySQL中如何创建一个视图
    在 MySQL 中创建一个视图可以通过使用 CREATE VIEW 语句来完成。视图是基于一个或多个表的查询结果,它类似于虚拟表,可以像表一样查询和使用。 下面是创建一个视图的基本语法: CREATE VIEW view_name ASSE...
    99+
    2023-08-17
    mysql 数据库
  • mysql如何创建一个视图
    要创建一个视图,可以使用以下语法: CREATE VIEW view_name AS SELECT column1, col...
    99+
    2024-04-20
    mysql
  • MySQL中怎么创建视图
    MySQL中怎么创建视图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 MariaDB [test]> C...
    99+
    2024-04-02
  • 我们如何基于另一个现有视图创建 MySQL 视图?
    在MySQL中,我们可以创建一个基于另一个现有视图的视图。为了让它理解,我们有一个名为'Info'的视图,其中包含以下数据-mysql> Create view info AS Select Id, Name, Subjec...
    99+
    2023-10-22
  • PostgreSQL中如何创建一个新的视图
    在 PostgreSQL 中,可以使用 CREATE VIEW 语句来创建一个新的视图。以下是一个示例: CREATE VIEW m...
    99+
    2024-04-09
    PostgreSQL
  • mysql中怎么创建一个表
    在 mysql 中创建表格,使用 create table 语句,语法为:create table table_name (column_name data_type [constrai...
    99+
    2024-04-14
    mysql
  • mysql视图创建后怎么管理
    一旦创建了MySQL视图,可以使用以下方法对其进行管理: 更新视图:可以使用CREATE OR REPLACE VIEW语句来更...
    99+
    2024-04-09
    mysql
  • Python中怎么创建一个瀑布图
    这期内容当中小编将会给大家带来有关Python中怎么创建一个瀑布图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建图表首先,执行标准的输入,并确保IPython能显示matplot图。import&nb...
    99+
    2023-06-17
  • 在navicat中怎么创建视图
    在 navicat 中创建视图:连接数据库并右键单击 "视图" 节点。选择 "新建视图" 或 "新建" > "视图"。输入视图名称和 sql 查询,该查询定义了视图中的数据和列。选...
    99+
    2024-04-24
    navicat
  • mysql创建视图的语句怎么写
    这篇文章将为大家详细讲解有关mysql创建视图的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE VIEW”语句来创建视图,...
    99+
    2024-04-02
  • 怎么在MySQL中创建一个用户
    本篇文章为大家展示了怎么在MySQL中创建一个用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.使用CREATE USER语句创建用户CREATE U...
    99+
    2024-04-02
  • MySQL中怎么创建一个触发器
    MySQL中怎么创建一个触发器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 --创建测试表Mar...
    99+
    2024-04-02
  • Oracle中怎么创建物化视图
    Oracle中怎么创建物化视图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 oracle物化视图 一、oracle物化视图基本概念&nb...
    99+
    2024-04-02
  • MySQL创建视图要注意什么
    在创建MySQL视图时,需要注意以下几点: 视图的命名规范:视图的命名应该清晰明了,反映出视图所包含的数据内容。 视图的查询...
    99+
    2024-04-09
    MySQL
  • mysql中怎么创建一个超级用户
    mysql中怎么创建一个超级用户,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先在数据库本机上用ROOT用户登录上MySql,然后:  my...
    99+
    2024-04-02
  • 怎么在mysql中创建一个触发器
    本篇文章为大家展示了怎么在mysql中创建一个触发器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们可以可以使用CREATE TRIGGER语句创建一个新的触发器...
    99+
    2024-04-02
  • MySQL中如何创建和使用视图
    要在MySQL中创建视图,可以使用CREATE VIEW语句。例如,要创建一个名为customer_view的视图,可以按照以下步骤...
    99+
    2024-04-09
    MySQL
  • 怎么创建一个创建MySQL数据库中的datetime类型
    今天小编给大家分享一下怎么创建一个创建MySQL数据库中的datetime类型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-29
  • 如何使用多个表中的数据创建 MySQL 视图?
    MySQL UNION 运算符可以组合两个或多个结果集,因此我们可以使用 UNION 运算符创建一个包含多个表数据的视图。为了理解这个概念,我们使用具有以下数据的基表“Student_info”和“Student_detai...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作