一、视图的操作

为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性。

视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据。但是视图并不在数据库中一存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。

(一)视图的特点

  • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系
  • 视图是由基本表(实表)产生的表(虚表)
  • 视图的建立和删除不影响基本表
  • 对视图内容的更新(添加、删除和修改)直接影响基本表
  • 当视图来自多个基本表时,不允许添加和删除数据

(二)创建视图

1.创建视图的语法形式

虽然视图可以被看成是一种虚拟表,但是其在物理上是不存在的,即数据库管理系统没有专门的位置为视图存储数据。

create view view_name
AS 查询语句
  • 注意:在SQL语句命名规范中,视图一般以view——xxx或者v_xxx的样式来命名
2.视图查询
SELECT *
FROM view_name;
3.查看视图
#查看视图名
SHOW TABLES;
#查看视图详细信息
SHOW TABLE STATUS [FROM db_nam] [LIKE 'pattern]';
eg: SHOW TABLE STATUS
FROM VIEW
LIKE ‘view_xxxx’ \G
#查看视图定义信息
SHOW CREATE VIEW viewname;
  • 查看视图设计 信息
DESCRIBE |DESC viewname;
  • 通过系统表查看视图信息

当MySQL数据库安装成功后,会自动创建系统数据库information_schema。在该数据库中存在一个包含视图信息的表格views,可通过查看表格views来查看所有视图的相关信息。

(三)删除视图

1.删除视图的语法
DROP VOEW view_name [.view_name]...

(四)修改视图

1.修改视图语句
# CREATE OR REPLACE VIEW 语句修改视图
create or replace view view_name
as 查询语句;
# ALTER 语句修改视图
ALTER VIEW viewname
as 查询语句;
(五)利用视图操作基本表

在MySQL中可以通过视图检索基本表数据,这是视图最基本的作用,除此之外还可以通过视图修改基本表中的数据。

1.检索(查询)数据

通过视图查询数据,与通过表进行查询完全相同,只不过通过视图查询比表更安全,更简单,使用。在具体实现的时候只需要将表名改为视图名即可。

SELECT *
FROM view_name;
2.利用视图操作基本表数据
  • 对视图数据进行添加、删除操作直接影响基本表
  • 视图来自多个基本表时,不允许添加和删除数据。
  • 添加数据操作
INSERT INTO view_name (id,那么,price,order_id)
VALUES(11,‘PEAR4’,12.3,2);
  • 删除数据操作
DEFAULT  FROM view_product
WHERE name ='apple1';
  • 更新数据操作
UPDATE view_product
set price=3.5
WHERE name='pear1';

Mysql基础知识--视图的更多相关文章

  1. mysql基础知识大全

    前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 数据库和数据库软件 数据库是 ...

  2. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  3. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  4. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  5. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  6. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  7. MySQL基础知识:Character Set和Collation

    A character set is a set of symbols and encodings. A collation is a set of rules for comparing chara ...

  8. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型

    1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结 ...

  9. mysql基础知识笔记

    Mysql基础笔记 环境配置 基本概念 mysql命令行 进入 use show 查询 select order by where like 数据过滤regexp concat 文本函数 日期函数 数 ...

随机推荐

  1. 《从HBase offheap到Netty的内存管理》

      JVM中的堆外内存(off-heap memory)与堆内内存(on-heap memory) 1. 堆内内存(on-heap memory) 1.1 什么是堆内内存 Java 虚拟机在执行Jav ...

  2. LG4824 「USACO2015FEB」(Silver)Censoring KMP+栈

    问题描述 LG4824 题解 大概需要回顾(看了题解) KMP 先对要删除的 模式串 进行自我匹配,求出 \(\mathrm{fail}\) 然后再扫 文本串 的过程中记录一下每个字符匹配的最大长度, ...

  3. mybatis中<include>标签的作用

    MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段 sql标签中id属性对应include标签中的refid属性.通过include标签将sql片段和原sql片段进行 ...

  4. Python进阶-XVV hashlib模块、configparse模块、logging模块

    1.配置相关的configparse模块 配置文件如何组织?python中常见的是将配置文件写成py,然后引入该模块即可.优点是方便访问. 但是也有用类似windows中的ini文件的配置文件,了解即 ...

  5. pytest--生成HTML报告

    前戏 我们做自动化,测试报告是必不可少的.方便自己查看,也可以供领导查看,一个测试报告就可以说明我们做了哪些事情,pytest-html插件给我们提供了一个很简陋的测试报告,为什么说简陋,因为是真简陋 ...

  6. A1093 Count PAT's (25 分)

    一.技术总结 这是一个逻辑题,题目大职意思是可以组成多少个PAT,可以以A为中心计算两边的P和T,然后数量乘积最后相加便是答案. 还有一个注意的是每次相加后记得mod,取余,不要等到最后加完再取余,会 ...

  7. ubuntu中安装rabbitmq服务并成功启动

    在我们使用rabbitmq时,首先要对其进行安装,而后才能对其进行使用 安装 Erlang 由于 RabbitMQ 是采用 Erlang 编写的,所以需要安装 Erlang 语言库.就像 java 需 ...

  8. 解决WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    问题: 当我想要利用win10本地的cmd进行: ssh root@192.168.1.230 时,出现了如下错误: C:\Users\Raodi>ssh root@192.168.1.230 ...

  9. ubuntu / zsh shell / oh-my-zsh / 常用插件

    记录一下 zsh 的下载与配置,省得每次重装系统都要上网到处查. 安装 zsh shell sudo apt install zsh 切换 shell chsh -s /bin/zsh 安装 oh-m ...

  10. Vue.js 源码分析(十九) 指令篇 v-html和v-text指令详解

    双大括号会将数据解释为普通文本,而非 HTML 代码.为了输出真正的 HTML,你需要使用 v-html 指令,例如: <!DOCTYPE html> <html lang=&quo ...