〔 MySQL 〕视图

以下是上述文章的目录:

一、视图概述

  • 视图的定义

二、基本使用

  • 创建视图
  • 查询视图
  • 修改视图影响基表
  • 查询验证
  • 删除视图

三、视图规则和限制

  • 命名规则
  • 数量限制
  • 索引和触发器
  • 安全性
  • ORDER BY规则
  • 与表一起使用

四、实战案例

  • 牛客实战OJ
  • 修改基表影响视图
  • 查询验证
  • 删除视图

视图(Views)

视图是一个虚拟表,其内容由查询定义,可以像操作真实表一样对视图进行操作。

基本使用

创建视图

-- 创建视图v_ename_dname,包含EMP表的ename和DEPT表的dname
CREATE VIEW v_ename_dname AS
SELECT ename, dname
FROM EMP, DEPT
WHERE EMP.deptno = DEPT.deptno;

查询视图

-- 查询视图v_ename_dname,并按dname排序
SELECT * FROM v_ename_dname ORDER BY dname;

修改视图影响基表

-- 更新视图v_ename_dname中ename为'TEST',影响EMP表中的数据
UPDATE v_ename_dname SET ename = 'TEST' WHERE ename = 'CLARK';

查询验证

-- 查询EMP表,验证ename是否被更新为'TEST'
SELECT * FROM EMP WHERE ename = 'TEST';

删除视图

-- 删除视图v_ename_dname
DROP VIEW v_ename_dname;

视图规则和限制

  1. 命名规则:与表一样,视图名必须唯一,不能与现有视图或表名重复。
  2. 数量限制:创建视图的数量没有限制,但复杂查询作为视图可能会影响性能。
  3. 索引和触发器:视图不能添加索引,也不能有关联的触发器或默认值。
  4. 安全性:视图可以提高安全性,但必须具有足够的访问权限。
  5. ORDER BY 规则:视图中可以使用ORDER BY,但如果从视图检索数据的SELECT语句中也包含ORDER BY,则视图中的ORDER BY将被覆盖。
  6. 与表一起使用:视图可以和表一起使用。

实战案例

牛客实战OJ

针对actor表创建视图actor_name_view

-- 假设actor表结构如下:
-- CREATE TABLE actor (
--   actor_id INT PRIMARY KEY,
--   actor_name VARCHAR(100)
-- );-- 创建视图actor_name_view,包含actor_name
CREATE VIEW actor_name_view AS
SELECT actor_name
FROM actor;

修改基表影响视图

-- 修改EMP表deptno为10,影响视图v_ename_dname中的数据
UPDATE EMP SET deptno = 10 WHERE ename = 'JAMES';

查询验证

-- 查询视图v_ename_dname,验证ename是否为'JAMES'且dname是否变化
SELECT * FROM v_ename_dname WHERE ename = 'JAMES';

删除视图

-- 删除视图actor_name_view
DROP VIEW actor_name_view;

以上笔记包含了视图的基本使用、规则限制以及实战案例,方便快速理解和应用视图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat被检测到目标URL存在htp host头攻击漏洞

AI越来越火了,我们想要不被淘汰就得主动拥抱。推荐一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站 Tomcat被检测到目标URL存在http host头攻击漏洞,这个漏洞复现一下就是黑客访问你的网站,之后中修改请求头中的host属…

Vue 子组件修改父组件传过来的值的三种方式

方式1&#xff1a;子组件发送emit&#xff0c;触发父组件修改 父组件 <template><div><son :count"count" updateCount"updateCount" /></div> </template><script> import son from "./son"; export def…

python爬虫项目毕设:天津酒店爬虫数据可视化系统开题报告

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

12.11数据结构-图

无向完全图&#xff1a;在无向图中&#xff0c;如果任意两个顶点之间都存在边&#xff0c;则称该图为无向完全图。 有向完全图&#xff1a;在有向图中&#xff0c;如果任意两个顶点之间都存在方向相反的两条弧&#xff0c;则称该图为有向完全图。 含有n个顶点的无向完全图有…

MySQL 数据库事务实践

引言 在现代应用程序开发中&#xff0c;确保数据库操作的完整性和一致性至关重要。MySQL 提供了强大的事务管理功能&#xff0c;允许开发者以原子性、一致性、隔离性和持久性&#xff08;ACID&#xff09;的方式处理数据。本文将通过详细的解释和实际示例&#xff0c;带你深入…

Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)

一、Intel(R) Iris(R) Xe Graphics安装Anaconda 下载网址&#xff1a;https://repo.anaconda.com/archive/ 双击Anaconda3-2024.10-1-Windows-x86_64&#xff0c;一直下一步&#xff0c;选择安装的路径位置&#xff0c;一直下一步就安装完成了。打开Anaconda PowerShell Promp…

git使用教程(超详细)-透彻理解git

一.核心基础 核心概念有六个 首先请把与svn有关的一切概念暂时从你的脑海中移除掉&#xff0c;我们要重新认识本文所讲述的所有概念。 1.worktree worktree是一个目录&#xff0c;你在这里对文件进行增加、删除、修改。也就是我们常说的工作区。在git中worktree必须要与一个…

简单的Java小项目

学生选课系统 在控制台输入输出信息&#xff1a; 在eclipse上面的超级简单文件结构&#xff1a; Main.java package experiment_4;import java.util.*; import java.io.*;public class Main {public static List<Course> courseList new ArrayList<>();publi…

java全栈day16--Web后端实战(数据库)

一、数据库介绍 二、Mysql安装&#xff08;自行在网上找&#xff0c;教程简单&#xff09; 安装好了进行Mysql连接 连接语法&#xff1a;winr输入cmd&#xff0c;在命令行中再输入mysql -uroot -p密码 方法二&#xff1a;winr输入cmd&#xff0c;在命令行中再输入mysql -uroo…

CORDIC 算法实现 _FPGA

注&#xff1a;本文为 “CORDIC 算法” 相关文章合辑。 未整理去重。 如有内容异常&#xff0c;请看原文。 Cordic 算法的原理介绍 乐富道 2014-01-28 23:05 Cordic 算法知道正弦和余弦值&#xff0c;求反正切&#xff0c;即角度。 采用用不断的旋转求出对应的正弦余弦值&…

前端(vue组件)

1组件对象 1.1定义组件对象 defineComponent( {} ) 1.2注册组件 1.3使用组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

MySQL八股-MVCC入门

文章目录 当前读&#xff08;加锁&#xff09;快照读&#xff08;不加锁&#xff09;MVCC隐藏字段undo-log版本链A. 第一步B.第二步C. 第三步 readview MVCC原理分析RCA. 先来看第一次快照读具体的读取过程&#xff1a;B. 再来看第二次快照读具体的读取过程: RR隔离级别 当前读…

js 函数定义域

1、1 let a 1;function fun () {console.log(a) }function fun1 () {let a 2;fun(); }fun1(); 2、2 let a 1;function fun1 () {let a 2;function fun () {console.log(a)}fun(); }fun1(); 3、2 let a 1;function fun1() {function fun() {console.log(a);}let a 2;…

羽毛球匹配项目实施清单

1. 数据库设计 1.1 数据库选型 数据库&#xff1a;MySQL理由&#xff1a;关系型数据库&#xff0c;支持复杂查询和事务处理&#xff0c;适合存储用户、匹配、聊天记录等结构化数据。 1.2 表结构设计 1.2.1 用户表&#xff08;users&#xff09; 字段名 类型 描述 id BI…

初始Python篇(6)—— 字符串

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …

vue3中的v-model如何自定义修饰符

子组件封装 <script setup lang"ts"> import { defineModel } from "vue"const firstName defineModel("first-name") // 自定义组件修饰符&#xff0c;首字母大写 const [lastName, lastNameModifiers] defineModel("last-name&q…

Mac系统Android sdk的安装

在macOS系统上安装Android SDK,通常可以通过安装Android Studio来实现,因为Android Studio默认包含了Android SDK。以下是详细的安装步骤: 一、下载并安装Android Studio 访问官网:首先,打开浏览器,访问Android Studio官方网站的下载页面。下载Android Studio:点击“Do…

Vue的常用修饰符

1.事件修饰符 stop&#xff1a;阻止事件冒泡&#xff0c;相当于调用 event.stopPropagation()。 prevent&#xff1a;阻止事件的默认行为&#xff0c;相当于调用 event.preventDefault()。 capture&#xff1a;使用事件捕获模式&#xff0c;即从最外层开始触发事件。 self&…

从 CephFS 到 JuiceFS:同程旅游亿级文件存储平台构建之路

随着公司业务的快速发展&#xff0c;同程旅行的非结构化的数据突破 10 亿&#xff0c;在 2022 年&#xff0c;同程首先完成了对象存储服务的建设。当时&#xff0c;分布式文件系统方面&#xff0c;同程使用的是 CephFS&#xff0c;随着数据量的持续增长&#xff0c;CephFS 的高…

使用Python实现手写数字识别

引言: 手写数字识别是“光学字符识别技术”(简称OCR)的一个分支,它研究的对象是:如何利用电子计算机自动辨认人手写在纸张上的阿拉伯数字。 在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就…