添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

含义:虚拟表,和普通表一样使用,视图中的数据来自查询中使用的表,并且试图是动态生成的,并没有保存查询结果可以理解为封装:多次使用

语法结构:
creat view 视图名
as
查询语句;


案例 :创建视图查询每个部门的平均工资

 CREATE VIEW myv2
 SELECT AVG(salary) ag,`department_id`
 FROM employees
 GROUP BY department_id;

案例: #查询各部门工资级别

 SELECT myv2.ag,g.`grade_level`
 FROM myv2
 JOIN `job_grades` g
 ON myv2.ag BETWEEN g.`lowest_sal` AND `highest_sal`;

案例 #查询姓张的学生名和专业名

#之前写法

SELECT `stuNume`,`majorName`
FROM `stuinfo` s
INNER JOIN maijor m 
ON s.`maijorId`=m.`id`
WHERE s.`stuNume` LIKE '张%';

#做虚拟表,封装起来

CREATE VIEW v1
SELECT `stuNume`,`majorName`
FROM `stuinfo` s
INNER JOIN maijor m 
ON s.`maijorId`=m.`id`;
SELECT *FROM v1 WHERE stuNume LIKE '张%';

二 视图的修改 

方式1:
  create or replace view 视图名
  as
  查询语句;
  
  方式二:
  alter view 视图名
  as
  查询语句;


三 删除视图

drop view 视图名,视图名

四查看视图

DESC myv2;
SHOW CREATE VIEW myv2;

五 视图的更新(更新其中的数据)

 这个其实很好理解:更新视图的时候同时修改了原始表,所以当视图中有多于原始表中内容的操作的时候都不能执行

#1.插入 (修改视图的时候,原始表也修改了,可以插入的条件是,没有额外多余原始表的东西

INSERT INTO myv1 VALUES('张',NULL,NULL);
SELECT *FROM myv1;

#2.修改

UPDATE myv1 SET last_name='zt' WHERE last_name=''

 #3.删除

DELETE FROM myv1 WHERE 条件

系统变量:
   全局变量
   会话变量
自定义变量:
  用户变量
  局部变量

一 系统变量

作用域:服务器每次启动将为所有全局变量赋值,针对所有连接有效,但是不能跨重启

1.查看所有系统变量

 SHOW GLOBAL /【session】 VARIABLES

2.查看满足条件的部分系统变量

SHOW GLOBAL /【session】 VARIABLES LIKE ‘ ’;

3.查看某某个指定系统变量的值

SELECT @@global/【session】系统变量名 

4.为某个系统变量赋值

SET GLOBAL/【】 系统变量名=值
SET @@ global/【】 . 系统变量名=值;
SHOW VARIABLES;
SHOW VARIABLES LIKE '%ssl%';
SELECT @@autocommit;
SET autocommit=0;
SET @@autocommit=1;

二 自定义变量

用户自己定义的  
声明 赋值 使用

1.用户变量

可以应用到任何地方

1.1声明并且初始化

SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;

1.2 赋值

 和上面一样 或
SELECT 字段 INTO @变量名
FROM 表 
SET @coun=0;
SELECT COUNT(*) INTO @coun
FROM `employees`;

1.3 使用

SELECT @用户变量名;
SELECT @coun;

2.局部变量

DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
 SET 变量名=值
  SET 变量名:=值
SELECT 局部变量名

用户变量            局部变量

当前连接            只能在begin END 中第一句

SET @用户变量名=值    DECLARE 用户变量名 类型

案例 :声明两个变量并且赋值 求和 打印

1.用户变量 
SET @m=2;
SET @n=3;
SET@sum=@m+@n;
SELECT @sum;
2.局部变量
#下面这样写不行,需要在begin end 中
DECLARE m1 INT DEFAULT 5;
DECLARE n1 INT DEFAULT 6;
DECLARE summ INT ;
SET summ=m1+n1;
SELECT summ;
实现思路:mysql创建view时不允许绑定用户变量,我们可以通过一个函数来返回用户变量,达到我们想要效果(通过用户变量创建动态view) 1、创建test_sp,在sp中给@company用户变量赋值 2、创建函数test_f,函数定义返回值为varchar,函数直接返回用户变量@company 3、创建视图,test_v,将函数test_f绑
一、视图 2.1 、什么是视图视图mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 2.2、使用视图的好处 简化sql语句,用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。 保护基表的数据,提高了安全性,使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制
简单理解为视图是一个虚拟表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。1、宠用sql语句 2、简化复杂的sql操作,不必知道它的查询细节 3、保护数据,提高安全性(只提供客户想知道的数据) 4、查看视图 5、删除视图 6、更新视图 更新视图中的数据 7、视图与表的对比
目录标题视图概念视图的创建视图的修改视图的删除与查询视图的更新变量系统变量自定义变量用户变量局部变量存储过程带in模式带out模式带inout模式删除和查看信息函数 视图其实就是一个虚拟表,具体的使用和普通的数据表一样,是Mysql5.0.1版本提出的新特性,它其实就是将一组复杂的sql语句进行封装。 视图的好处是: 可重用sql 简化复杂的sql 保护数据,提高安全性 视图的创建 create view 视图名 一个案例如下:查询姓名中包含a字母的员工姓名、部门名
MySQL15.1版本出现的新特性,是通过表动态生成的数据 视图MySQL从5.0.1版本开始提供视图功能。一种虚拟 存在的表,行和列的数据来自定义视图的查询中使用的表 ,并且是在使用视图时动态生成的,只保存了sql逻辑,不 保存查询结果 应用场景: – 多个地方用到同样的查询结果 – 该查询结果使用的sql语句较复杂 重用sql语句 • 简化复杂的sql操作,不必知道它的查询细节 • 保护数据,提高安全性 更多MySQL命令
有参看其他博主文章: MySQL之系统变量与用户自定义变量:https://blog.csdn.net/qq_36528734/article/details/81187863 mysql视图的使用:https://blog.csdn.net/wujiangwei567/article/details/80549150 一、变量的介绍和使用 总体可分为两大类变量: 系统变量:包括全局变量和...
5.1 视图 视图MySQL从5.0.1版本开始提供视图功能。虚拟表(和普通表一样使用),并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。 应用场景: 多个地方用同样的查询结果 该查询结果使用的sql语句较复杂 视图的好处: 重用sql语句 简化复杂的sql操作,不必知道它的查询细节 保护基表的数据,提高安全性