#进阶16 : 视图/*含义: 虚拟表,和普通表一样使用;(从5.1开始使用的:)是通过表动态生成的数据

创建语法:

create view 视图名

as

查询语句;

----------

作用: 重用SQL语句,简化复杂的sql操作,不必知道它的查询细节;

保护数据,提高安全性;

-------------------------

视图的修改:

方式1: create or replace view 视图名

as

查询语句;

方法2: alter view 视图名

as

查询语句;

----------------------------

三:视图的删除 : 用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。

语法: drop view 视图名,视图名,视图名;

-----------------------------

四:查看视图

desc v2;

-----------------------------

#五: 视图的更新

CREATE OR REPLACE VIEW myv1

AS

SELECT last_name,email FROM employees;

SELECT * FROM myv1 ORDER BY last_name DESC;

#1.插入

INSERT INTO myv1 VALUES('张飞','zafqq.com');

#2 修改

UPDATE myv1 SET last_name ='张无忌' WHERE last_name='张飞';

#3 删除

DELETE FROM myv1 WHERE last_name ='张无忌';

--------------------------------------------

#六 视图的可更新性

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。

• 包含以下关键字的sql语句:分组函数、distinct、group by 、having、union或者union all

• 常量视图 • Select中包含子查询

• join

• from一个不能更新的视图

• where子句的子查询引用了from子句中的表

---------------------------------------------

视图 : create view 没有占用多少物理空间,只保存sql逻辑

表 : create table 占用了*/#案例():查询姓张的学生名和专业名USEstudent;SELECTstudentname,majornameFROMstuinfo sINNER JOIN major m ON s.`majorid`=m.`majorid`WHERE s.`studentname` LIKE '张%';

#demo1: 创建视图 ;CREATE VIEWv1AS

SELECTstudentname,majornameFROMstuinfo sINNER JOIN major m ON s.`majorid`=m.`majorid`WHERE s.`studentname` LIKE '张%';

#然后从视图中查找出全部信息;SELECT * FROMv1WHERE studentname LIKE '张%';

#----------------------------

#1.查询邮箱中包含a字符的 员工名、部门名和工种信息CREATE VIEWv2AS

SELECTe.`last_name`,e.`department_id`,j.`job_id`,j.job_titleFROMemployees e,jobs jWHERE e.`job_id`=j.`job_id` AND email LIKE '%a%';

#② 使用视图SELECT * FROM v2 WHERE last_name LIKE '%a%';

#2.查询各部门的平均工资的级别CREATE VIEWv3AS

SELECT AVG(salary) ag,department_idFROMemployeesGROUP BYdepartment_id;SELECTv3.department_id,g.`grade_level`FROMv3JOINjob_grades gON v3.ag BETWEEN g.`lowest_sal` ANDg.`highest_sal`;

#3.查询平均工资最低的部门信息SELECT * FROM v3 ORDER BY ag LIMIT 1;

#4.查询平均工资最低的部门名和工资SELECT *

FROM`departments`WHERE departments.department_id =(SELECT department_id FROMv3ORDER BY ag LIMIT 1);

#5.视图的修改(REPLACE)--方式1

CREATE OR REPLACE VIEWv3AS

SELECT MIN(salary) min_ag,department_idFROMemployeesGROUP BYdepartment_id;SELECT * FROMv3;

#6.视图的修改(alter)--方式2

ALTER VIEWv3AS

SELECT MAX(salary) max_ag,department_idFROMemployeesGROUP BYdepartment_id;

#平均1.00 --2400次

SELECT ('28-29两天scanner sum'),(865-833+621-523+230-175+3+ 58-41+87-66+4+48-32+7+2+20+31-14+11-9),(0.054+0.073);

#五: 视图的更新CREATE OR REPLACE VIEWmyv1AS

SELECTlast_name,emailFROMemployees;SELECT * FROM myv1 ORDER BY last_name DESC;

#1.插入INSERT INTO myv1 VALUES('张飞','zafqq.com');

#2修改UPDATE myv1 SET last_name ='张无忌' WHERE last_name='张飞';

#3删除DELETE FROM myv1 WHERE last_name ='张无忌';

mysql视图的更新 条件_MySQL进阶16 - 视图的创建/修改/删除/更新--可更新性的不适用条件...相关推荐

  1. mysql怎么删除表中字段的数据库表_Mysql 数据库 表 字段的创建 修改 删除

    MYSQL基础上机练习题(一) 数据库.表.字段的创建.修改.删除 一.实验目的: 创建.修改.删除数据库 创建.修改.删除表 创建.修改.删除字段 二.内容: 创建一个用于企业管理的员工管理数据库, ...

  2. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...

  3. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  4. mysql的视图的名词解释_MySql中的视图的概念及应用

    视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...

  5. mysql bin的过期时间_Mysql设置binlog过期时间并自动删除

    问题: Mysql数据库由于业务原因,数据量增长迅速,binlog日志会增加较多,占用大部分磁盘空间. 解决方案: 出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作. 1.查看bi ...

  6. mysql各种联结的区别_mysql必知必会-创建高级联结

    使用表别名 使用别名引用被检索的表列 别名除了用于列名和计算字段外,SQL还允许给表名起别名.这样做 有两个主要理由: 缩短SQL语句: 允许在单条 SELECT 语句中多次使用相同的表. 可以看到, ...

  7. mysql 事b务 查询_MySQL进阶学习笔记二(包括连接查询、子查询、联合查询、事务、存储过程)...

    1.高级查询 (1)了解笛卡尔积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序 ...

  8. mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目

    触发器(Trigger)的起源 MySQL是最受欢迎的开源RDBMS,被社区和企业广泛使用.触发器是MySQL在5.0.1(开天辟地一版本)中增加的三大新功能之一,另外两个师兄弟是视图(view)与存 ...

  9. mysql 记录更新 内部_MySQL 入门(1):查询和更新的内部实现

    摘要 在MySQL中,简单的CURD是很容易上手的. 但是,理解CURD的背后发生了什么,却是一件特别困难的事情. 在这一篇的内容中,我将简单介绍一下MySQL的架构是什么样的,分别有什么样的功能.然 ...

  10. mysql update主键冲突_mysql主键重复,不报错,只更新的操作

    项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php $isExist = true; if ($isExist) { inser ...

最新文章

  1. TCP/IP详解--第七章
  2. excel 用VBA将所有单元格内容全部转换为文本
  3. python语言入门p-python初学者怎么入门
  4. Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)
  5. slot多作用域 vue_vue 深度长文之slot 篇
  6. 2019长安大学ACM校赛网络同步赛 L XOR
  7. struts2文件下载
  8. 03-01 appium架构介绍与环境安装
  9. 如何列出引用SQL Server中给定表的所有外键?
  10. 基于OpenCV全景图像拼接
  11. 《Kotlin项目实战开发》第1章 Kotlin是什么 1
  12. 【数字信号去噪】基于matlab同心兰姆波模式分解【含Matlab源码 679期】
  13. Android应用签名、打包实际操作
  14. 微信小程序开发批量推送服务通知
  15. 计算机硬件的五大逻辑部分,计算机的硬件系统由五大部分组成(计算机由几部分组成)...
  16. wow服务器合并信息,WOW魔兽世界5月21日大服务合并维护 二区合并至电信区
  17. asp.net paypal信用卡支付功能
  18. 用python实现等额本息
  19. pip install下载一些包很慢,可-i 从豆瓣源下载
  20. FDTD学习之偶极子光源的purcell值

热门文章

  1. 第二章 驱动程序调测方法与技巧
  2. 用glew,glfw实现opengl绘制3D学习笔记1-实现一个窗口
  3. 仙岛求药 详解(C++)
  4. php 带$字符处理,thinkphp中的特殊字符处理
  5. python需要学数据结构吗_我也要学python-内置数据结构(一)
  6. 计算机主机英语怎么说,电脑的英文-电脑的主机这个词英语怎么说?电脑的主 – 手机爱问...
  7. php oauth单点登陆,php单点登录
  8. linux打开文件系统调用,Linux2.4打开一个文件的系统调用
  9. android dns 测试工具,DNS Test测速工具
  10. 框架 go_Go语言优秀应用开发框架 GoFrame