视图,把基本表的某些数据组合起来构成一个虚拟表的一种形式,之所以叫虚拟,是因为只有当视图用于一条语句中的时候,它才能存在。同时如果对视图中的数据进行修改,会同时修改到基本表中的数据。
创建视图:
create [or replace] view view_name [column1,column2..]
as 表的表达式
as:
创建一个视图towns,1.包含了 players 表中的所有城市名,2.接下来并查询这个虚拟表的内容
1. create view towns as
select town
from players 2. select * from towns
以上是先创建视图towns,再查询视图,其中视图的列名称没有显式写出来,所以默认用的是后面查询的字段作了列的名称字段,as
之后的查询结果作为视图的数据,可以显式指定视图列名
as:
create view cplays (uid,name,job) as
select id,name,prefession
from works 从视图 cplays 中删除 id = 100的人
delete from cplays
where uid = 100
此时基本表中的 id = 100的人同时会被删除 允许select 中的一个表达式为函数或者计算
as:
create or replace view result as
select grand, count(*)
from score
group by grand
查询以上视图时:
select * from result
返回的字段有 grand,count(*)
or replace 是当视图存在时,则会更新这个视图 更新视图
如果没有约束的话,如下:
create view t_view as
select id,name,job
from test.work
where id < 4; update t_view set name = 'xxx'
where id = 4;
以上语句会使 id = 4 的name 变为
'xxx',没有问题,但当加上约束条件时,如果不满足条件,则不允许相应的操作
as:
create view t_view as
select id,name,job
from test.work
where id < 4
with check option; update t_view set name = 'xxx'
where id = 4;
以上更新会失败,因为视图用了约束,后面的所查询的 id
不在创建的视图中,所以无法更新相关数据,又因为视图是可以嵌套的,所以如果只当对前的视图的操作作检测,用
with local check option
约束条件即可,此时只会对当前的视图条件作检测,如果是对其相关的嵌套的视图也作检查,则约束条件用 with
[cascaded] check option,默认是 cascaded 的 删除视图
drop view [if exitsts] view_name

数据库之mysql 视图的更多相关文章

  1. 数据库之 MySQL --- 视图的原理解析与创建(八)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.什么是视图? 视图:MySQL从5.0.1版本开始提供视图功能.一种虚拟存在的表,行和列的数据来自定 ...

  2. 第二百八十二节,MySQL数据库-MySQL视图

    MySQL数据库-MySQL视图 1.视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 2.也 ...

  3. mysql数据库从删库到跑路之mysql:视图、触发器、事务、存储过程、函数

    mysql:视图.触发器.事务.存储过程.函数 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果 ...

  4. Mysql 视图 游标 触发器 存储过程 事务

    Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...

  5. Mysql视图的作用及其性能分析

    定义:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表. 作用: 1.简化操作,不用进行多表查询. 2.当不同种类的用用户共享同一个数据库时,非常灵活,(用户以不同的 方式看待同一数据. ...

  6. Mysql 视图笔记

    1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表.视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使 ...

  7. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  8. 深入解析MySQL视图view

    阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...

  9. MySQL视图view/存储过程和函数的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...

随机推荐

  1. 中国大概能用的NTPserver地址

    133.100.11.8 prefer210.72.145.44203.117.180.36131.107.1.10time.asia.apple.com64.236.96.53130.149.17. ...

  2. 【35】考虑virtual方法以外的其他选择

    1.使用Non-Virtual Interface 实现方法模版 将虚方法声明为private,子类重写private的虚方法,在父类中通过public方法调用虚方法.NVI的优点是:可以在虚方法之前 ...

  3. URL是否有效

    unit Unit1;interfaceuses    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...

  4. 文件和目录之access函数

    本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 当用open函数打开一个文件时,内核以进程的有 ...

  5. com.ulitis.www

    package com.ulitis.www; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  6. eclipse安装android sdk后工具栏没有图标的设置

    如果没有出现这android图标,选择'Window>Customize Perspective...>Commands',并在'Available command groups'中勾选' ...

  7. Input

    Input Basic Input Old Input Files Please note that both Input and Request do NOT sanitize your data, ...

  8. Reviewing the Blog Module

    Reviewing the Blog Module Throughout the tutorial, we have created a fully functional CRUD module us ...

  9. iOS之SDWebImage的使用

    第一步,下载SDWebImage,导入工程.github托管地址https://github.com/rs/SDWebImage 第二步,在需要的地方导入头文件 1 #import "UII ...

  10. visibility,display区别

    visibility:hidden,display:none 前者隐藏位置还在,后者隐藏位置消失