返回顶部
首页 > 资讯 > 数据库 >Mysql之数据库视图
  • 160
分享到

Mysql之数据库视图

2024-04-02 19:04:59 160人浏览 薄情痞子
摘要

Mysql之数据库视图        数据库中的视图是一个虚拟表。同真实表一样,包含行和列数据,行和列的数据来自 定义视图查询

Mysql数据库视图

        数据库中的视图是一个虚拟表。同真实表一样,包含行和列数据,行和列的数据来自 定义视图查询所引用的表,并且在引用视图时动态生成。可以隔离用户与数据保持安全,且快速查询数据。

        mysql5.0后版本支持视图,可以使用select、insert into、update、delete等。无论修改基本表还是视图都对应发生变化。

视图的作用:

比直接从数据表中读取相比:

1、简化了:看到的就是需要的。

2、安全性:通过视图用户只能查询和修改他们所能看到的数据。其他数据看不到也取不到。

3、逻辑数据独立性:视图可以帮助用户屏蔽真实表结构变化带来的影响。


创建视图:

视图包含了select查询的结果,因此视图的创建基于select语句和已存在的数据表,视图可以建立在一张表上,也可以建立在多张表上。

语法:

create [or replace] [alGorithm = {undefined | merge | temptable }]
view view_name [(column_list)]
as select_statment
[with [cascaded | local] check option]
create    # 创建视图
replace   # 替换视图
algorithm  # 视图算法:undefined系统自己选择算法;merge表示视图语句与视图定义合并,使视图定义部分替代语句对应部分;temptable表示将视图结果存入临时表,用临时表来执行语句。
view_name  # 视图名称
column_list     # 属性列
select_statment   # select语句
[with [cascaded | local] check option]    # 表示权限范围之内:cascaded表示满足所有条件。local表示更新时满足视图本身条件即可。

单表创建视图:

mysql> create database view;
mysql> use view;
mysql> create table t (quantity INT,price INT);
mysql> insert into t values(3,50);
mysql> create view view_t as select quantity,price,quantity * price from t;
mysql> select * from view_t;

# 默认情况下创建的视图和基本表的字段一样,也可以通过指定视图字段的名称来创建视图。

mysql> create view view_t2(Qty,price,total) as select quantity,price,quantity * price from t;
mysql> select * from view_t2;

# view_t和view_t2两个视图中的字段名称不同,但是数据却是相同的。因此在使用视图的时候,可能用户根本就不需要了解表的机构,更接触不到实际表中的数据,从而保证了数据库的安全。

在多表上创建视图:

mysql> create database stud;
mysql> use stud;
mysql> create table student (id int,name char(20));
mysql> create table stu_info (id int,name char(20),addr char(20));
mysql> show tables;
mysql> insert into student values(1,'zhouyi'),(2,'zhaoer'),(3,'zhangsan');
mysql> insert into student values(1,'zhouyi','beijing'),(2,'zhaoer','shanghai'),(3,'zhangsan','chengdu');
mysql> select * from stu_info;
mysql> select * from student;
mysql> create view stu_glass(id,name,glass) as select student.id,student.name,stu_info.addr from student,stu_info where student.id=stu_info.id;
mysql> select * from stu_glass;

# 可以看出视图id是student.id

# name是student.name

# glass是stu_info.addr

查看视图:

mysql> show table status like 'stu_glass'\G;    # 全是NULL,Comment: VIEW表示虚表
mysql> desc stu_glass;    # 查看视图基本信息
mysql> show create view stu_glass\G;     # 查看视图创建信息
mysql> select * from infORMation_schema.views\G;    # 查看详细信息

修改视图:

mysql> use view;
mysql> desc view_t;
mysql> alter view view_t as select quantity from t;

或者:
mysql> create or replace view view_t as select * from t;
mysql> desc view_t;


更新视图:

mysql> alter view view_t as select quantity from t;  # 修改视图和元数据不同
mysql> select * from view_t;
mysql> select * from t;
mysql> update view_t set quantity=5;
mysql> select * from view_t;
mysql> select * from view_t2;
mysql> select * from t;
# 全部更新

插入数据:

mysql> insert into t values (3,5);    # 插入数据
mysql> select * from view_t;
mysql> select * from view_t2;
mysql> select * from t;        # 全部插入


mysql> delete from view_t2 where price=5;	# 删除view_t2视图中price=5的数据;
mysql> select * from view_t2;
mysql> select * from t;
# 在view_t2中删除price=5的操作最终是通过基本表中的相关记录实现的。
注意:
当视图中包含有如下内容时,视图的更新操作将不被执行:
1、视图中不包含基本表中被定义为非空的列;
2、在定义视图的select语句后的字段列表中使用数学表达式;
3、在定义视图的select语句后的字段列表中使用了聚合函数;
4、在定义视图的select语句中使用了distinct、uNIOn、top、group、having子句。


删除视图:

mysql> drop view if exists view_t2;
mysql> show create view view_t2; 
ERROR 1146 (42S02): Table 'view.view_t2' doesn't exist


您可能感兴趣的文档:

--结束END--

本文标题: Mysql之数据库视图

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

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

猜你喜欢
  • Mysql之数据库视图
    Mysql之数据库视图        数据库中的视图是一个虚拟表。同真实表一样,包含行和列数据,行和列的数据来自 定义视图查询...
    99+
    2024-04-02
  • MySQL数据库视图
    day05 MySQL数据库视图一、视图概述:    视图是一个虚拟表,是从数据库中一个或多个表中导出来的表,内容是由查询定义的。数据库中只存在视图的定义,而没有相关...
    99+
    2024-04-02
  • MySQL数据库数据视图
    目录一、 数据视图二、数据视图操作创建视图修改视图数据修改视图列明删除视图三、数据的备份与回复liunx备份mysql备份四、 MySQL存储过程和函数概念五、存储过程操作初始数据创...
    99+
    2022-11-13
    MySQL数据库 MySQL数据视图
  • 数据库优化之创建视图
         视图是保存在数据库中的SELECT查询,可在视图上执行SELECT语句的大多数命令。创建视图的原因有两个:一是出于安全考虑,用户不必看到整个数据库结构,而隐藏部分数据...
    99+
    2024-04-02
  • MySQL数据库高级(三)——视图
    MySQL数据库高级(三)——视图 一、视图简介 1、视图简介 视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式。视图包含一系列带有名称的数据列和数据行,但视图中的数据...
    99+
    2024-04-02
  • MySQL数据库——MySQL创建视图(CREATE VIEW)
    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 基本语法 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW AS 语法说明如下。 :指定...
    99+
    2023-09-08
    数据库 mysql sql
  • mysql怎么导出数据库视图
    mysql 数据库视图可通过如下方法导出:使用 mysqldump 实用程序:mysqldump -u [用户名] -p[密码] --no-data [数据库名称] [视图名称] >...
    99+
    2024-08-06
    mysql
  • Mysql数据库VIEW视图的详细介绍
    本文主要给大家介绍Mysql数据库VIEW视图的详细介绍,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql数据库VIEW视图的详细介绍吧。&n...
    99+
    2024-04-02
  • MySQL数据库视图的作用是什么
    这篇文章主要讲解了“MySQL数据库视图的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库视图的作用是什么”吧!1 视图的介绍与作用...
    99+
    2024-04-02
  • 数据库视图是什么意思以及 MySQL 视图如何工作?
    数据库视图只不过是存储在数据库中并具有关联名称的 SQL 语句。视图实际上是预定义 SQL 查询形式的表的组合。视图可以包含表的所有行,也可以从表中选择行。 MySQL 视图可以从一个或多个表创建,这些表依赖于编写的 MySQL 查询来创建...
    99+
    2023-10-22
  • MySQL数据库入门——浅析 视图和事务
    ==========视图============数据库中的虚拟表,相当于软链接作用:一张表中的数据给不同的权限用户提供访问假设一张表:公司员工绩效工资考核表工号    ...
    99+
    2024-04-02
  • MySQL数据库创建视图的方法是什么
    在MySQL数据库中,可以使用以下语法来创建视图: CREATE VIEW view_name AS SELECT colu...
    99+
    2024-03-12
    MySQL
  • Python数据可视化之环形图
    目录1.引言2.方式一:饼图形式3.方式二:条形图形式1.引言 环形图(圆环)在功能上与饼图相同,整个环被分成不同的部分,用各个圆弧来表示每个数据所占的比例值。但其中心的空白可用于显...
    99+
    2024-04-02
  • Centos_6.5之Mysql数据库
    1、安装Mysql数据库 yum install mysql mysql-server mysql-devel -y    2、启动Mysql服务 ...
    99+
    2024-04-02
  • Django视图之ORM数据库查询操作API的实例
    查询表记录 查询相关API 操作:models.表名.objects.方法() <BR>all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件...
    99+
    2022-06-05
    视图 数据库查询 实例
  • MySQL怎么修改视图数据
    要修改MySQL视图数据,可以使用以下语法: UPDATE view_name SET column1 = value1, colu...
    99+
    2024-04-19
    MySQL
  • MySQL如何修改视图数据
    要修改MySQL视图的数据,您需要进行以下步骤: 首先,您需要找到要修改的视图的名称。 使用CREATE OR REPLAC...
    99+
    2024-04-20
    mysql
  • 【MySQL数据库】看完还有谁学不会 MySQL 中的视图?
    文章目录 MySQL中的视图视图的概念视图的用法简化查询操作提高查询效率保护数据的安全性 视图的代码示例总结 附:好书推荐 MySQL中的视图 在MySQL中,视图是一种虚拟表,它是由一个或多个基本表的行或列组成的...
    99+
    2023-08-17
    mysql 数学建模 java
  • 数据库sql视图有什么用
    小编给大家分享一下数据库sql视图有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!视图介绍视图(View)是一种虚拟存在的...
    99+
    2024-04-02
  • sql数据库视图如何创建
    要创建一个SQL数据库视图,需要使用CREATE VIEW语句。以下是创建视图的语法:CREATE VIEW view_name A...
    99+
    2023-09-29
    sql数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作