mysql 开发基础系列16 视图
一. 什么是视图
视图是一种虚拟存在的表,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。优势有:
简单: 使用视图的用户完全不需要关心后面对应的表的结构,关联条件,筛选条件。
安全:使用视图的用户只能访问他们被允许查询的结果集。
数据独立: 源表增加列对视图没有影响,源表修改列名,则通过修改视图 对应好源表的列名来解决,不会造成对访问者的影响。
1.1 创建视图的操作
-- 创建视图
CREATE OR REPLACE VIEW view_city
AS
SELECT * FROM city;
-- 查询视图
SELECT * FROM view_city;

1.2 修改视图
-- 修改视图
ALTER VIEW view_city
AS
SELECT cityname FROM city;

1.3 限制
视图一般只是用来做查询使用,如果要对视图做修改有如下限制不能更新:
包含关键字 聚合函数(sum,min,max,count等),distinct,group by , having,union ,union all。
常量视图。
select 中包含子查询。
jion。
from 一个不能更新的视图。
where 字句的子查询引用了from字句的表。
LOCAL 是只要满足本视图的条件就可以更新, CASCADED 则是必须满足所有针对该视图的所有视图的条件才可以更新, 如果没有明确是LOCAL 还是CASCADED,则默认是CASCADED,由于视图基本不做修改,这里就不在演示。
-- local与CASCADED 语法
CREATE OR REPLACE VIEW view_city
AS
SELECT * FROM city;
-- with(local | CASCADED) CHECK OPTION;
1.4 删除视图
drop view view_city;
1.5 查看视图
-- 查看视图的定义
SHOW CREATE VIEW view_city

-- 查看视图的定义
SELECT * FROM information_schema.views WHERE table_name = 'view_city'

mysql 开发基础系列16 视图的更多相关文章
- mysql 开发基础系列12 选择合适的数据类型(上)
一. char 与varchar比较 在上图的最后一行的值只适用在"非严格模式",关于严格模式后面讲到.在“开发基础系列4“ 中讲到CHAR 列删除了尾部的空格.由于char是固定 ...
- mysql 开发基础系列20 事务控制和锁定语句(上)
一.概述 在mysql 里不同存储引擎有不同的锁,默认情况下,表锁和行锁都是自动获得的,不需要额外的命令, 有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性.这样就需要使 ...
- mysql 开发基础系列17 存储过程和函数(上)
一. 概述 存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,可以简化应用开发人员的很多工作,减少数据在数据库与应用服务器之间的传输,提高数据处理效率是有好处的.存储过程和函数的区别在 ...
- mysql 开发基础系列15 索引的设计和使用
一.概述 所有mysql 列类型都可以被索引,是提高select查询性能的最佳方法. 根据存储引擎可以定义每个表的最大索引数和最大索引长度,每种引擎对每个表至少支持16个索引,总索引长度至少为256字 ...
- mysql 开发基础系列9 存储引擎 MyISAM 介绍
MyISAM是mysql 默认存储引擎,它不支持事务,外键.但访问速度快,对事务完整性没有要求或者以select,insert 为主的应用基本上都可以使用这个引擎.每个MyISAM在磁盘上存储成3个文 ...
- mysql 开发基础系列22 SQL Model
一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql model 定义了mysql应用支持的sql语法,数据校验等,这样更容易在不同的环境中使用mysql. sql ...
- mysql 开发基础系列18 存储过程和函数(下)
1. 光标的使用(游标) 在存储过程和函数中可以使用光标对结果集进行循环的处理,光标使用包括光标的声明,open ,fetch,close. 下面在存储过程中使用一个光标, 这个举例中光标里的逻辑不重 ...
- mysql 开发基础系列14 字符集
字符集是一套文字符号及其编码,比较规则的集合.第一个字符集是ascll(american standard code for information interchange). 1. 选择合适的字 ...
- mysql 开发基础系列13 选择合适的数据类型(下)
一. BloB和Text 1. 合成索引 合成索引可以提高大文本字段BLOB和Text的查询性能, 合成索引是在表中增加一个字段存放散列值,这种技术只能用于精确匹配的查询,可以使用md5()或sha ...
随机推荐
- mysql自定义时间段分组
说明:一下是自定义7天为一个时间段的分组统计 select datediff(ms_time, '开始时间') div 7 as time , count(*) count,sum(money) mo ...
- 关于根据模板生成pdf文档,差入图片和加密
import com.alibaba.fastjson.JSONObject; import com.aliyun.oss.OSSClient; import com.itextpdf.text.pd ...
- Win7 VS2017 Boost Python入门
闲来无事想练习下用Python作为游戏脚本绑定到C++,网上搜了下,Python文档有些例子,但是太过复杂,gayhub无意中看到有人用Boost Python绑定,简单粗暴,省时省力,记录备忘. 写 ...
- WebApi零碎总结
1.如果Content-Type是application/json,而POST和PUT的参数是[FromBody] string value,那么如果curl -d的值是'{"Name&qu ...
- 利用python list 完成最简单的DB连接池
先来看查看效果: 在代码连接数据库后,并且执行三条sql后,将mysql直接重启掉,故我们的连接池连接均是不ok的,所以,它会全部删除再抓新的连接下来,重启mysql命令: 关于python代码: # ...
- Exp8 Web基础 20154320 李超
1.实验后回答问题 (1)什么是表单. 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签.表单域.表单按钮 ...
- 学习python一个月盘点
1,看了30多个视频,是一些基本操作的.粗略的了解了语法,函数,循环,正则表达,将视频内容全部敲入文本: 2,看了100页的书,习题不太会,进展很慢.第五章10以后的题都没做: 3,看C++的书,有点 ...
- VSCode 必装的 10 个高效开发插件 --转
https://www.cnblogs.com/parry/p/vscode_top_ten_plugins.html
- SQL Server Integration Services SSIS最佳实践
SQL Server Integration Services Best Practices Tips https://www.mssqltips.com/sql-server-tip-categor ...
- js获取复选框值
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...