MySQL学习——操作视图
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学习——操作视图的更多相关文章
- MySQL学习——操作自定义函数
MySQL学习——操作自定义函数 摘要:本文主要学习了使用DDL语句操作自定义函数的方法. 了解自定义函数 是什么 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由SQL ...
- MySQL学习——操作存储过程
MySQL学习——操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...
- MySQL学习——操作表里的数据
MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法. 插入数据 语法 通过传入数据插入: insert into 表名 [(列名1, …, 列名n)] values ...
- MySQL学习——操作数据库
MySQL学习——操作数据库 摘要:本文主要学习了使用DDL语句操作数据库的方法. 创建数据库 语法 create database [if not exists] 数据库名 [default] ch ...
- Mysql学习笔记—视图
1.什么是视图 视图(View)是一种虚拟存在的表.其内容与真实的表相似,包含一系列带有名称的列和行数据.但是视图并不在数据库中以存储的数据的形式存在.行和列的数据来自定义视图时查询所引用的基本表,并 ...
- MySQL学习之视图的使用
视图基本操作 创建视图 视图的本质就是SQL指令(select语句) 基本语法:create view 视图名 as select 指令; 在这里的select指令可以是单表数据,也可以是连接查询. ...
- MySQL学习随笔--视图
视图概念 数据库中的视图指的是一个虚拟表,其内容由查询定义.同真实的表一样,视图也是由行与列构成的.视图的数据来源由SQL语句查询得到,不存储数据 视图创建方法 格式 : create view 视图 ...
- 我的MYSQL学习心得(十一) 视图
我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- Mysql学习笔记(十一)临时表+视图
学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表 临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数 ...
随机推荐
- 记一次Ubuntu19无法安装docker源
按照各大网站以及个人习惯我会使用下面这种方法添加Docker源: root@ubuntu:~# sudo add-apt-repository "deb [arch=amd64] https ...
- PAT 1009 Product of Polynomials 模拟
This time, you are supposed to find A*B where A and B are two polynomials. Input Specification: Each ...
- C# 波浪线绘制
波浪线效果如上 界面绘制操作 private Point? _startPoint = null; private void ContainerCanvas_OnPreviewMouseLeftBut ...
- Python实现一个键对应多个值的字典(multidict)
一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, ...
- Add a Simple Action using an Attribute 使用特性添加简单按钮
In the previous Add a Simple Action lesson, you learned how to add an Action by implementing the Vie ...
- OpenCV:获取图像当中某一点的坐标
import numpy as np image=np.zeros((300,300,3),dtype='uint8') (cx,cy)=image.shape[1]//2,image.shape[0 ...
- 框架用多了真的会死人的,spring-cloud全家桶与mybitais 集成完整示例(附下载)
题外话: 看到这一长串包含各种技术名词的标题,一路走来感觉研发深深的被各种框架给绑架了,从我们刚出生最简单的jsp,servlet打天下,到spring mvc的盛行,再到现在spring-boo ...
- 通过Shell脚本来创建批量服务器上的MySQL数据库账号
1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...
- Linux系统学习 一、安装,调试
环境 主机: Windows 10 虚拟机: VMware 15 Pro 镜像: 一.安装过程: 然后开启虚拟机 设置主机名 时区 密码 最小安装 等着 重启 登录 二.配置静态IP地址 输入ifco ...
- centos7.6 安装Mysql5.7
#安装Mysqlwget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmyum localinstall mys ...