文档章节

MySql--视图

丿咖啡灬微凉
 丿咖啡灬微凉
发布于 2017/04/17 23:56
字数 562
阅读 2
收藏 0

MySql总结之视图部分,MySql可以利用复杂查询来进行多表查询,其实它还提供了一种非常方便的方法,那就是视图,可以从单个数据表中筛选部分数据,也可以从多个数据表中筛选数据,然后整合。

/*************************视图************************************************/	
功能类似于多表查询,可以将一个或多个表中的数据挑选出来独立成表

一、创建视图
	1、单源表视图的创建
		mysql> select * from studentInfo;
		+----+--------+-------+-----------+-----------+
		| id | name   | score | subject   | teacher   |
		+----+--------+-------+-----------+-----------+
		|  1 | 小明   | 87.00 | 数学      | 王老师    |
		|  2 | 小红   | 82.00 | 数学      | 王老师    |
		|  3 | 小张   | 83.00 | 数学      | 王老师    |
		|  4 | 小韩   | 88.00 | 数学      | 王老师    |
		|  5 | 小胡   | 88.00 | 计算机    | 张老师    |
		|  6 | 小胡   | 88.00 | 数据库    | 张老师    |
		+----+--------+-------+-----------+-----------+
		6 rows in set (0.00 sec)
	
		mysql> create view hjf.view_score 
			-> AS(SELECT SI.id, SI.name, SI.score, SI.subject, SI.teacher 
			-> from studentInfo SI 
			-> where SI.score >= 85);
		Query OK, 0 rows affected (0.00 sec)

		mysql> select * from view_score;
		+----+--------+-------+-----------+-----------+
		| id | name   | score | subject   | teacher   |
		+----+--------+-------+-----------+-----------+
		|  1 | 小明   | 87.00 | 数学      | 王老师    |
		|  4 | 小韩   | 88.00 | 数学      | 王老师    |
		|  5 | 小胡   | 88.00 | 计算机    | 张老师    |
		|  6 | 小胡   | 88.00 | 数据库    | 张老师    |
		+----+--------+-------+-----------+-----------+
		4 rows in set (0.00 sec)

	2、多源表视图的创建
	mysql> create view hjf.view_test 
		-> AS(select newInfo.id, newInfo.name, newInfo.score, subjectInfo.subjectname, teacherInfo.teachername
		-> from newInfo, subjectInfo, teacherInfo
		-> where newInfo.subjectid = subjectInfo.id and newInfo.teacherid = teacherInfo.id);
	Query OK, 0 rows affected (0.00 sec)

	mysql> select * from view_test;
	+----+--------+-------+-------------+-------------+
	| id | name   | score | subjectname | teachername |
	+----+--------+-------+-------------+-------------+
	|  1 | 小明   | 78.00 | 数学        | 张老师      |
	|  2 | 小红   | 87.00 | 英语        | 王老师      |
	|  3 | 小李   | 67.00 | 语文        | 吴老师      |
	+----+--------+-------+-------------+-------------+
	3 rows in set (0.02 sec)

二、修改视图
	mysql> create or replace view hjf.view_test
		-> AS(select newInfo.id, newInfo.name, newInfo.score, subjectInfo.subjectname
		-> from newInfo, subjectInfo
		-> where newInfo.subjectid = subjectInfo.id);
	Query OK, 0 rows affected (0.01 sec)

	mysql> select * from view_test;
	+----+--------+-------+-------------+
	| id | name   | score | subjectname |
	+----+--------+-------+-------------+
	|  3 | 小李   | 67.00 | 语文        |
	|  1 | 小明   | 78.00 | 数学        |
	|  2 | 小红   | 87.00 | 英语        |
	+----+--------+-------+-------------+
	3 rows in set (0.00 sec)

三、删除视图
	mysql> drop view view_test;
	Query OK, 0 rows affected (0.00 sec)

四、查看视图
	1、查看视图的字段信息
		mysql> describe(desc) view_test;
		+-------------+--------------+------+-----+---------+-------+
		| Field       | Type         | Null | Key | Default | Extra |
		+-------------+--------------+------+-----+---------+-------+
		| id          | int(11)      | NO   |     | NULL    |       |
		| name        | varchar(20)  | YES  |     | NULL    |       |
		| score       | decimal(4,2) | YES  |     | NULL    |       |
		| subjectname | varchar(30)  | YES  |     | NULL    |       |
		+-------------+--------------+------+-----+---------+-------+
		4 rows in set (0.00 sec)

	2、查看创建视图的语句				\G  格式化显示结果
		mysql> show create view view_test\G;
		*************************** 1. row ***************************
						View: view_test
				 Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_test` AS (select `newInfo`.`id` AS `id`,`newInfo`.`name` AS `name`,`newInfo`.`score` AS `score`,`subjectInfo`.`subjectname` AS `subjectname` from (`newInfo` join `subjectInfo`) where (`newInfo`.`subjectid` = `subjectInfo`.`id`))
		character_set_client: utf8
		collation_connection: utf8_general_ci
		1 row in set (0.00 sec)

/*****************************************************************************/


本文转载自:http://blog.csdn.net/hjf161105/article/details/69145702

丿咖啡灬微凉
粉丝 1
博文 70
码字总数 0
作品 0
私信 提问
[转] mysql 视图性能 算法选择

MySQL在处理视图时有两种算法,分别称为MERGE和TEMPTABLE。在执行"CREATE VIEW"语句时可以指定使用哪种算法。所谓MERGE是指在处理涉及到视图的操作时,将对视图的操作根据视图的定义进行展开...

红薯
2010/01/07
1K
0
MySQL View 视图分析

为什么MySQL中很少使用视图功能? 首先MySQL使用视图有什么好处: 清晰简单,可以让简单的语句逻辑更清晰 可复用,可以让部分复杂的sql逻辑多次复用,统一更新 安全,可以隐藏掉一些私密的表...

懒懒惰惰
2018/05/11
0
0
mysql binlog 恢复

开始先执行每天自动备份的数据库 再使用binlog恢复 binlog直接恢复数据库,不建议直接使用 优先使用下面的,把binlog导出sql文件,看下没有问题再重新导入 恢复的数据不包含视图,视图需要另外使...

donald121
2018/08/11
0
0
mysql视图学习总结

一、使用视图的理由是什么? 1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到 了一个特性:grant语句可以针对视图进行授予...

mifans
2016/10/19
13
0
mysql 1449错误

一、问题 为了更好地管理mysql数据库,重新创建了一个新账号:accout 并给予all privileges, 但是开发人员在使用视图的时候出现了mysql 1449的错误,网上说要给账号所有权限。 最后找到一篇文...

famiover
2016/04/20
42
0

没有更多内容

加载失败,请刷新页面

加载更多

Java agentlib参数分析

Java agentlib参数分析 再用intellij idea进行远程调试的时候,具体的配置选项如下: 标红的一行显示了远程调试需要添加的虚拟机参数。这个参数到底有什么意义? 我在命令行输入java命令,输...

Mr_Tea伯奕
25分钟前
0
0
四种软件架构演进史,程序员会一种就很牛了!

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。 ...

我最喜欢三大框架
30分钟前
3
0
如何做高可用的架构设计?

定义目标 既然我们的目标是做到高可用,那么我们就有必要先明确清楚高可用的含义,并通过拆解目标,让目标可以被量化。按照我的理解,可以将目标按照以下三条进行拆解: 1. 保持业务高稳定性...

别打我会飞
30分钟前
0
0
《错误的行为》的读后感优秀范文4000字

《错误的行为》的读后感优秀范文4000字: 第一章经济人和非理性人。本书中的经纪人是指经济学家经济模式中虚拟的理想人物,非理性人是指现实生活中实实在在存在的人,与经济人相对应的人。 ...

原创小博客
42分钟前
2
0
将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向

作者图解释很好 https://blog.csdn.net/yanxiaolx/article/details/52073221

南桥北木
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部