返回顶部
首页 > 资讯 > 数据库 >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://lsjlt.com/news/56994.html(转载时请注明来源链接)

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

猜你喜欢
  • 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视图怎么创建
    视图是一种从其他表检索数据的虚拟表,不会存储实际数据。创建视图的步骤包括:1. 选择名称;2. 指定表;3. 选择列;4. 应用条件(可选);5. 执行查询。使用示例:创建一个名为 "c...
    99+
    2024-05-30
    mysql
  • PostgreSQL中如何创建一个新的视图
    在 PostgreSQL 中,可以使用 CREATE VIEW 语句来创建一个新的视图。以下是一个示例: CREATE VIEW m...
    99+
    2024-04-09
    PostgreSQL
  • 我们如何基于另一个现有视图创建 MySQL 视图?
    在MySQL中,我们可以创建一个基于另一个现有视图的视图。为了让它理解,我们有一个名为'Info'的视图,其中包含以下数据-mysql> Create view info AS Select Id, Name, Subjec...
    99+
    2023-10-22
  • 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
  • oracle怎么创建视图
    oracle 中创建视图的步骤:1. 定义视图:使用 create view 语句指定视图名称、源表和选择列表;2. 示例:使用 employeeview 视图包含 employees ...
    99+
    2024-05-21
    oracle
  • MySQL如何创建视图
    基本语法 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名...
    99+
    2022-05-13
    MySQL 视图 MySQL 创建视图
  • 如何创建mysql视图
    下面一起来了解下如何创建mysql视图,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何创建mysql视图这篇短内容是你想要的。 创建视图,并没有在数据库中保存用户数据,视图相当于是表的一个窗...
    99+
    2024-04-02
  • 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 中创建表格需要以下步骤:连接到数据库服务器。选择要创建表格的数据库。使用 create table 语句创建新表格,指定表格名、列名、数据类型和主键。使用 show ta...
    99+
    2024-08-01
    mysql
  • 怎么在mysql中创建一个触发器
    本篇文章为大家展示了怎么在mysql中创建一个触发器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们可以可以使用CREATE TRIGGER语句创建一个新的触发器...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作