iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >MySQL-SQL视图详细
  • 113
分享到

MySQL-SQL视图详细

数据库sqlmysql 2023-09-05 20:09:10 113人浏览 泡泡鱼
摘要

♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

前言

本章讲解sql语言中视图,为上章。

目录

1 视图

1.1 介绍

1.2 语法

1). 创建

2). 查询

3). 修改

4). 删除

1.3 检查选项

1). CASCADED

 2). LOCAL

 1.4 视图的更新

 1.5 视图作用

1). 简单

2). 安全

3). 数据独立

1.6 案例


1 视图

1.1 介绍

视图( View )是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的 SQL 逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条 SQL 查询语句上。

1.2 语法

1). 创建

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [CASCADED | LOCAL ] CHECK OPTioN ]

2). 查询

查看创建视图语句:SHOW CREATE VIEW 视图名称;查看视图数据:SELECT * FROM 视图名称 ...... ;

3). 修改

方式一:CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH[ CASCADED | LOCAL ] CHECK OPTION ]方式二:ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED |LOCAL ] CHECK OPTION ] 

4). 删除

DROP VIEW [IF EXISTS] 视图名称 [,视图名称] ...
演示示例:
-- 创建视图create or replace view stu_v_1 as select id,name from student where id <= 10;-- 查询视图show create view stu_v_1;select * from stu_v_1;select * from stu_v_1 where id < 3;-- 修改视图create or replace view stu_v_1 as select id,name,no from student where id <= 10;alter view stu_v_1 as select id,name from student where id <= 10;-- 删除视图drop view if exists stu_v_1;
上述我们演示了,视图应该如何创建、查询、修改、删除,那么我们能不能通过视图来插入、更新数据呢? 接下来,做一个测试
create or replace view stu_v_1 as select id,name from student where id <= 10 ;select * from stu_v_1;insert into stu_v_1 values(6,'Tom');insert into stu_v_1 values(17,'Tom22');
执行上述的 SQL ,我们会发现, id 6 17 的数据都是可以成功插入的。 但是我们执行查询,查询出来的数据,却没有 id 17 的记录。 因为我们在创建视图的时候,指定的条件为 id<=10, id 17 的数据,是不符合条件的,所以没有查 询出来,但是这条数据确实是已经成功的插入到了基表中。 如果我们定义视图时,如果指定了条件,然后我们在插入、修改、删除数据时,是否可以做到必须满足条件才能操作,否则不能够操作呢? 答案是可以的,这就需要借助于视图的检查选项了。

1.3 检查选项

当使用 WITH CHECK OPTION 子句创建视图时, Mysql 会通过视图检查正在更改的每个行,例如 插入,更新,删除,以使其符合视图的定义。 mysql 允许基于另一个视图创建视图,它还会检查依赖视 图中的规则以保持一致性。为了确定检查的范围, mysql 提供了两个选项: CASCADED LOCAL ,默认值为 CASCADED

1). CASCADED

级联。 比如, v2 视图是基于 v1 视图的,如果在 v2 视图创建的时候指定了检查选项为 cascaded ,但是 v1 视图创建时未指定检查选项。 则在执行检查时,不仅会检查 v2 ,还会级联检查 v2 的关联视图 v1

 2). LOCAL

本地。 比如, v2 视图是基于 v1 视图的,如果在 v2 视图创建的时候指定了检查选项为 local ,但是 v1 视图创 建时未指定检查选项。 则在执行检查时,知会检查 v2 ,不会检查 v2 的关联视图 v1

 1.4 视图的更新

要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项,则该视图不可更新: A. 聚合函数或窗口函数( SUM() MIN() MAX() COUNT() 等) B. DISTINCT C. GROUP BY D. HAVING E. UNION 或者 UNION ALL 示例演示 :
create view stu_v_count as select count(*) from student;
上述的视图中,就只有一个单行单列的数据,如果我们对这个视图进行更新或插入的,将会报错。
insert into stu_v_count values(10);

 1.5 视图作用

1). 简单

视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

2). 安全

数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据

3). 数据独立

视图可帮助用户屏蔽真实表结构变化带来的影响。

1.6 案例

1). 为了保证数据库表的安全性,开发人员在操作 tb_user 表时,只能看到的用户的基本字段,屏蔽 手机号和邮箱两个字段。
create view tb_user_view as select id,name,profession,age,gender,status,createtimefrom tb_user;select * from tb_user_view;
2). 查询每个学生所选修的课程(三张表联查),这个功能在很多的业务中都有使用到,为了简化操作,定义一个视图。
create view tb_stu_course_view as select s.name student_name , s.no student_no ,c.name course_name from student s, student_course sc , course c where s.id =sc.studentid and sc.courseid = c.id;select * from tb_stu_course_view;

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

来源地址:https://blog.csdn.net/lzl10211345/article/details/131193767

您可能感兴趣的文档:

--结束END--

本文标题: MySQL-SQL视图详细

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL-SQL视图详细
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-09-05
    数据库 sql mysql
  • MySQL 视图(详解)
    文章目录 一,视图概念使用视图的原因 二,创建视图(1)基本语法(2)创建基于单表的视图【实例 1】【实例 2】 (3)创建基于多表的视图【实例 3】 (4)查询视图【实例 4...
    99+
    2023-09-06
    MySQL 视图 增删改查 知识
  • MySQL高级开发中视图的详细教程
    目录1.介绍2.语法3.检查选项4.视图的更新5.视图作用6.案例1.介绍 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视 图的查询中使用的表,并且是在使用视图时动态生成的。...
    99+
    2023-01-09
    MySql视图创建 MySql视图
  • SpringMVC超详细讲解视图和视图解析器
    目录SpringMVC-视图和视图解析器1.基本介绍2.自定义视图1.为什么要自定义视图2.自定义视图实例-代码实现3.自定义视图工作流程小结自定义视图-小结自定义视图-工作流程4....
    99+
    2024-04-02
  • MySQL安装配置教程(图文+视频【超详细】)
    1.下载MySQL Mysql官网下载地址:MySQL官网下载  这里我们需要安装的是5.7.27版本,单击Archives 保证你的版本号和操作系统与我相同(如果你是Linux或其他操作系统,第二个选择与你对应的系统),然后点击Down...
    99+
    2023-10-23
    mysql 数据库
  • springMVC中的view视图详细解析
    目录1、ThymleafView2、转发视图3、重定向视图4、视图控制器view-controllerSpring MVC中的视图是view接口,视图的作用是渲染数据,将模型mode...
    99+
    2024-04-02
  • MySQL | 视图
    目录 一、创建视图 1.1 在单表上创建视图 1.2 在多表上创建视图 二、查看视图 2.1 使用DESCRIBE语句查看视图基本信息 2.2 使用SHOW TABLE STATUS语句查看视图基本信息 2.3 使用SHOW CREATE ...
    99+
    2023-08-31
    mysql 数据库 sql 大数据 big data
  • vue视图响应式更新详细介绍
    目录概述思路第一步统一封装更新函数第二步监听并触发视图更新引入Dep管家实现下语法糖v-model概述 前面两篇文章已经实现了对数据的变化的监听以及模板语法编译初始化,但是当数据变化...
    99+
    2024-04-02
  • SpringBoot详细讲解视图整合引擎thymeleaf
    目录1. 支持的视图技术2. Thymeleaf2.1 Thymeleaf语法2.2 标准表达式1. 变量表达式 ${…}2. 选择变量表达式 *{…}3...
    99+
    2024-04-02
  • mysql-视图
    mysql视图的定义视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存...
    99+
    2023-01-30
    视图 mysql
  • mysql视图之创建可更新视图的方法详解
    本文实例讲述了mysql视图之创建可更新视图的方法。分享给大家供大家参考,具体如下: 我们知道,在mysql中,视图不仅是可查询的,而且是可更新的。这意味着我们可以使用insert或update语...
    99+
    2024-04-02
  • MySQL用命令行运行sql文件的详细图文教程
    目录1.按下键盘上的Windows+R键输入cmd,或在搜索框直接输入cmd2.进入mysql:3.创建sql文件里的数据库,输入一下的命令4.使用该数据库5.运行相关路径下的sql文件(绝对路径)6.查看补充知识:编写...
    99+
    2023-01-12
    mysql 运行sql文件 mysql用命令行导入sql文件 mysql命令行执行sql脚本
  • sql视图怎么写
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-06-03
  • idea连接sql sever2019图文教程(超详细)
    目录1. 首先我们打开sql sever2. 打开sql配置管理器3. 开启Telnet服务4. 去官网下载适配本地jdk的jdbc5. 配置idea6. 测试是否连接成功配置了好多...
    99+
    2023-05-17
    idea连接sql sever idea连接sql sever2019
  • idea连接sql sever2019图文教程(超详细)
    目录1. 首先我们打开sql sever2. 打开sql配置管理器3. 开启Telnet服务4. 去官网下载适配本地jdk的jdbc5. 配置idea6. 测试是否连接成功配置了好多天都报错…我真的含泪写下...
    99+
    2023-04-24
    idea连接sql sever idea连接sql sever2019
  • MySQL中数据视图操作详解
    目录1.视图概述1.1创建视图1.2视图的查询2.操作视图2.1通过视图操作数据2.2修改视图定义2.3删除视图1.视图概述 视图是从一个或多个表(或视图)导出的表。视图与表(有时为...
    99+
    2022-11-13
    MySQL数据视图操作 MySQL 视图操作 MySQL 视图
  • MySQL慢sql优化思路详细讲解
    目录1、开启mysql慢查询1.1、查看慢查询相关配置1.2、查询慢查询sql耗时临界点1.3、开启Mysql慢查询2、explain查看SQL执行计划2.1、Select_type2.2、Type2.3、Po...
    99+
    2023-01-05
    mysql慢sql优化五个原则 mysql 慢sql 慢SQL优化
  • mysql视图之管理视图实例详解【增删改查操作】
    本文实例讲述了mysql视图之管理视图操作。分享给大家供大家参考,具体如下: mysql提供了用于显示视图定义的SHOW CREATE VIEW语句,我们来看下语法结构: SHOW CREATE VIE...
    99+
    2024-04-02
  • SQL视图如何创建
    创建SQL视图的步骤如下:1. 选择一个数据库管理工具,例如MySQL Workbench或phpMyAdmin,并登录到数据库服务...
    99+
    2023-10-11
    SQL
  • SQL Server视图的讲解
    在初期的工作中,要做一个系统登录验证,翻阅同事做的登录验证,发现同事们做用户名验证时,查的结果集来自一个视图,之前也弄过视图,但很少去仔细看过有关方面的详细知识,于是特意百度谷歌了一下,总结如下知识: 视图...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作