MySQL 视图变量
视图
含义:虚拟表,和普通表一样使用,视图中的数据来自查询中使用的表,并且试图是动态生成的,并没有保存查询结果可以理解为封装:多次使用
创建视图
语法结构:
creat view 视图名
as
查询语句;
案例 :创建视图查询每个部门的平均工资
CREATE VIEW myv2ASSELECT AVG(salary) ag,`department_id`FROM employeesGROUP BY department_id;
案例: #查询各部门工资级别
SELECT myv2.ag,g.`grade_level`FROM myv2JOIN `job_grades` gON 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
AS
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 视图变量相关推荐
- 【数据库优化专题】MySQL视图优化(一)
本期数据库优化专题分享,为大家带来的是DBA+社群MySQL领域原创专家--李海翔所著的MySQL视图优化系列文章.以下是第一部分的内容,未完部分敬请关注后续更新. 专家简介 李海翔 网名:那海蓝蓝 ...
- MySQL 服务器变量 数据操作DML-视图
原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言:DDL的一部 ...
- MySQL服务器变量一
autocommit={0|1} 设定MySQL事务是否自动提交,1表示立即提交,0表示需要显式提交.作用范围为全局或会话,可用于配置文件中(但在5.5.8之前的版本中不可用于配置文件),属于动态变量 ...
- mysql视图应用_MySQL视图的概念与实际应用
以下的文章主要是对MySQL视图的描述,其中包括MySQ视图L概述,以及创建MySQL视图-create view与修改MySQL视图--alter view等相关内容的具体描述,以下就是文章的具体内 ...
- MySQL 视图(详解) navicat如何创建视图
文章目录 MySQL 视图(详解 一,视图概念 使用视图的原因 二,创建视图 (1)基本语法 (2)创建基于单表的视图 [实例 1] [实例 2] (3)创建基于多表的视图 [实例 3] (4)查询视 ...
- MySQL数据库,从入门到精通:第十四篇——MySQL视图详解
MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...
- mysql视图添加行号排名
在mysql视图中,想要创建视图的同时,在sql查询语句中将原数据按照某一字段排序. 以我所遇到的情况为例,我想要查询视图中的数据,并将其按照市值(total_mv)降序排序. 以下是sql语句: s ...
- centos下加入mysql环境变量
centos下加入mysql环境变量 命令行的时候每次都要进入mysql的目录/usr/local/mysql/bin太麻烦了,为了能在任何一个位置直接进入,设置一下环境变量即可 vi /etc/pr ...
- mysql session变量_mysql 系统变量和session变量
mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...
最新文章
- 深刻理解Vue中的组件
- CSS3的边框(border)属性-radius
- Java学习笔记19
- SPOJ Ada and Spring Cleaning(hash)
- 搜索引擎爬虫蜘蛛的UserAgent收集
- 大数据薪资报告出炉:你的工资拖后腿了吗?
- bzoj4245: [ONTAK2015]OR-XOR
- C++ 网络开发工具
- 前端学习(177):定义列表
- 基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统
- 用计算机打cf,CF能用的特殊符号有什么 CF特殊符号怎么打
- mac mysql log在哪里_mac如何开启mysql bin-log
- htaccess文件是什么
- 微软发布关于 Surface Pro 3 TPM 绕过漏洞的安全公告
- 微信语音怎么转发?微信转发语音居然是这样做的…
- Windows及Linux系统下--adb驱动安装及问题总结
- [IOS] Storyboard全解析-第二部分
- 数字电路的一些基本知识
- 关于图片裁剪怎么弄,这里分享几款软件
- 存量 IoT 设备零改造,一键迁移企业物联网实例
热门文章
- 目前主流浏览器及其内核
- html中 lt br gt 的作用,lt;brgt;是什么意思?
- 创建角色和ansible-galaxy简单使用
- 3D数字人arkit面部捕捉简化版流程
- Origin如何绘制二维图形?
- 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?
- 出现意外的服务器响应怎么解决,Web服务器出现意外时该如何处理?
- 用C编写COM(一)
- No.10 position定位 之 absolute绝对定位
- Oracle Sysdate 时间计算 年月日时分秒