MySQL学习——操作视图

摘要:本文主要学习了使用DDL语句操作视图的方法。

了解视图

是什么

视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。

特点

视图不是数据库中真实的表,而是一张虚拟表,其结构和数据是建立在对数据中真实表的查询基础上的。

视图是查看数据表的一种方法,可以查询数据表中某些列构成的数据,只是一些SQL语句的集合。从安全的角度来看,视图的数据安全性更高,使用视图的用户不接触数据表,不知道表结构。

视图的建立和删除只影响视图本身,不影响对应的基本表。

使用视图

查询视图数据的语句和查询表的语句是一样的。

修改视图数据的语句实际上是通过修改表的数据实现的,对于可修改的视图,视图中的行和基本表的行之间必须具有一对一的关系。

使用注意

视图不包含数据,所以每次使用视图时,都必须执行查询中所需的任何一个检索操作。如果用多个连接和过滤条件创建了复杂的视图或嵌套了视图,可能会发现系统运行性能下降得十分严重。因此,在部署大量视图应用时,应该进行系统测试。

创建视图

语法

 create view 视图名 (列1, 列2, ..., 列n) as 查询语句;

列名可以任意取名,但数量必须和查询的列名相等,如果不指明视图的列名,默认使用查询语句的列名。

实例

创建一个简单的视图:

 mysql> create view score_view as select * from score;
Query OK, 0 rows affected (0.01 sec) mysql>

创建视图并指定列:

 mysql> create view score_view (编号, 学生, 科目, 成绩) as select id, student, course, grade from score;
Query OK, 0 rows affected (0.00 sec) mysql>

查看视图结构

语法

 desc 视图名;

实例

 mysql> desc score_view;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| 编号 | int(10) | NO | | 0 | |
| 学生 | varchar(20) | NO | | NULL | |
| 科目 | varchar(20) | NO | | NULL | |
| 成绩 | int(10) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec) mysql>

说明

Field:列名。

Type:类型。

Null:表示该列是否可以存储NULL值。

Key:表示该列是否已编制索引。PRI表示该列是主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,值是多少。

Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。

修改视图

语法

 alter view 视图名 (列1, 列2, ..., 列n) as 查询语句;

实例

 mysql> alter view score_view (学生, 课程, 成绩) as select student, course, grade from score;
Query OK, 0 rows affected (0.01 sec) mysql>

删除视图

语法

 drop view 视图名;

实例

 mysql> drop view score_view;
Query OK, 0 rows affected (0.00 sec) mysql>

MySQL学习——操作视图的更多相关文章

  1. MySQL学习——操作自定义函数

    MySQL学习——操作自定义函数 摘要:本文主要学习了使用DDL语句操作自定义函数的方法. 了解自定义函数 是什么 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由SQL ...

  2. MySQL学习——操作存储过程

    MySQL学习——操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...

  3. MySQL学习——操作表里的数据

    MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法. 插入数据 语法 通过传入数据插入: insert into 表名 [(列名1, …, 列名n)] values ...

  4. MySQL学习——操作数据库

    MySQL学习——操作数据库 摘要:本文主要学习了使用DDL语句操作数据库的方法. 创建数据库 语法 create database [if not exists] 数据库名 [default] ch ...

  5. Mysql学习笔记—视图

    1.什么是视图 视图(View)是一种虚拟存在的表.其内容与真实的表相似,包含一系列带有名称的列和行数据.但是视图并不在数据库中以存储的数据的形式存在.行和列的数据来自定义视图时查询所引用的基本表,并 ...

  6. MySQL学习之视图的使用

    视图基本操作 创建视图 视图的本质就是SQL指令(select语句) 基本语法:create view 视图名 as  select 指令; 在这里的select指令可以是单表数据,也可以是连接查询. ...

  7. MySQL学习随笔--视图

    视图概念 数据库中的视图指的是一个虚拟表,其内容由查询定义.同真实的表一样,视图也是由行与列构成的.视图的数据来源由SQL语句查询得到,不存储数据 视图创建方法 格式 : create view 视图 ...

  8. 我的MYSQL学习心得(十一) 视图

    我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  9. Mysql学习笔记(十一)临时表+视图

    学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表   临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数 ...

随机推荐

  1. CSS权重的进制问题

    这是复习篇的第一个知识点,(CSS权重进制在IE6为256,后来扩大到了65536.而现代浏览器则采用更大的数量)在说这个知识点之前我们先来看一个例子 <!DOCTYPE html> &l ...

  2. Java入门系列之集合ArrayList源码分析(七)

    前言 上一节我们通过排队类实现了类似ArrayList基本功能,当然还有很多欠缺考虑,只是为了我们学习集合而准备来着,本节我们来看看ArrayList源码中对于常用操作方法是如何进行的,请往下看. A ...

  3. zabbix snmp监控与主被模式

    1.snmp基础介绍 snmp全称是简单网络管理协议 为什么要用? 路由器交换机无法安装agent程序,但是都提供snmp服务端, 我们可以使用zabbix的snmp方式监控snmp服务端的数据 2. ...

  4. SAP 资产相关日期

    1. Capitalized Date(资本化日期) 可以手工输入资本化日期,或者如果不输入,则通常默认写入First Acquisition Date (资产第一次购置时输入资产价值日). 2.As ...

  5. ListenAndServe源码剖析

    使用goland追踪阅读ListenAndServe源码,剖析服务器启动流程 ListenAndServe阅读 func ListenAndServe(addr string, handler Han ...

  6. [20191031]完善vim的bccalc插件7.txt

    [20191031]完善vim的bccalc插件7.txt --//增加/ 2^16 %2^16功能,输入\tx,例子:1398145029 = /2^16  %2^16 (type and mode ...

  7. 微信小程序拒绝授权后重新拉起授权窗口

    问题: 在首次进入小程序时,我们常常会收到一些获取权限的申请,比如「获取地理位置权限」.需要微信登录时请求「获得你的公开信息(昵称.头像等)」.对于这些权限申请,开发者当然希望获得所有权限,而用户拒绝 ...

  8. linux 性能调优工具参考 (linux performance tools)

    之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...

  9. vi 中按了 Ctrl+S 后死机不能动怎么办?

    我们下意识想保存文档时,会不知觉地按下 Ctrl+S 组合键.但如果是正在 Linux 的 Shell 中使用 vi 编辑文本,这么按就糟了,会直接出现卡住.不能动.卡死的现象. 不过,后来我搞明白了 ...

  10. MarkDown使用小技巧

    写作目的 笔者看完一些MarkDown入门文字后,发现很多文档对一些容易遇到的细微问题缺少解释.本文意欲稍作补充. 目标读者 使用MarkDown仅为了排版出更好看的文章,而不关注技术细节,不懂HTM ...