MySQL一文教你学会视图(包含with check option检查选项)

14 篇文章 1 订阅
订阅专栏

目录

视图概念介绍

视图语法

检查选项(with check option)

视图的更新

视图的作用

​编辑 

总结

 

 

 


视图概念介绍

视图(View)只不过是通过相关的名称存储在数据库中的一个 SQL 语句。视图(View)实际上是一个以预定义的 SQL 查询形式存在的表的组合。

视图(View)可以包含一个表的所有行或从一个或多个表选定行。视图(View)可以从一个或多个表创建,这取决于要创建视图的 SQL 查询。

视图(View)是一种虚表,允许用户实现以下几点:

  • 用户或用户组查找结构数据的方式更自然或直观。

  • 限制数据访问,用户只能看到有限的数据,而不是完整的表。

  • 汇总各种表中的数据,用于生成报告。

视图中的数据并不在数据库中实际存在,行和列数据来自自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了sql语句的逻辑。


视图语法

演示示例:

首先我们先创建演示所用的表和插入数据:

-- 创建表----------------------
create table student(
    id int auto_increment primary key comment 'id',
    name varchar(30) not null comment '姓名',
    sid varchar(20) not null unique comment '学号'
)comment '学生表';

INSERT INTO student(name, sid) VALUES ('张三', '20190001');
INSERT INTO student(name, sid) VALUES ('李四', '20190002');
INSERT INTO student(name, sid) VALUES ('王五', '20190003');
INSERT INTO student(name, sid) VALUES ('赵六', '20190004');
INSERT INTO student(name, sid) VALUES ('刘七', '20190005');
INSERT INTO student(name, sid) VALUES ('周八', '20190006');
INSERT INTO student(name, sid) VALUES ('吴九', '20190007');
INSERT INTO student(name, sid) VALUES ('郑十', '20190008');
INSERT INTO student(name, sid) VALUES ('钱十一', '20190009');
INSERT INTO student(name, sid) VALUES ('孙十二', '20190010');

然后我们利用上面的语法来创建,查询,修改并且删除视图。

-- 创建视图---------------------------
create or replace view stu_v_1 as select id,name from student where id<=15;

-- 查询视图---------------------------
show create view stu_v_1;

select * from stu_v_1 where id<5;

-- 修改视图------------------------------
create or replace view stu_v_1 as select id,name,sid from student where id<=15;

alter view stu_v_1 as select id,name from student where id<=15;

-- 删除视图--------------------------------
drop view stu_v_1;

 自上而下我们执行一下:

我们可以看到在views里已经可以看到了我们创建的视图。

 

 

 

视图删除成功。


我们上面介绍了视图的创建,查询,修改,删除,那么我们能否通过视图来插入,更新数据呢?

接下来,做一个测试:

insert into stu_view_2 values (11,'TOM'); #报错 not null

insert into stu_view_2 values (33,'tom');

 当我们插入数据时候会发现报错,原因时我们创建表结构的时候设置了not null字段在sid里。所以会报错,当我们取消就不会报错了。

 

 可以看到原本的表和基于表的视图都插入成功了。

 

当我们插入第二条数据的时候,我们发现表里面确实增加了,但是视图里面却没增加,原因就是视图创建的时候后面的条件是id<=15 。所以在视图中查询不出来。那我们有没有什么方法来保持插入数据的正确性呢?


检查选项(with check option)

 (1)CASCADED(级联)

举例说明:

create view v1 as select id,name from student where id<=15;
create view v2 as select id,name from v1 where id>=10 with cascaded check option ;


insert into v2 values (9,'nine');
insert into v2 values (12,'th');
insert into v2 values (18,'ei');

 

 

 

可以看到插入数据所满足的条件必须为v1和v2的共同条件。即使v1没有设立检查选项。

(2)LOCAL(本地)

 

create view v1 as select id,name from student where id<=15;
create view v2 as select id,name from v1 where id>=10 with local check option ;
create view v3 as select id,name from student where id<20;

insert into v2 values (9,'nine');
insert into v2 values (12,'th');
insert into v2 values (18,'ei');

 

 可以看到插入成功。


视图的更新

 


视图的作用

 


总结

以上就是视图的所有内容,希望对你有帮助! 

 

 

 

 

mysql视图with check option
huangbaokang的博客
12-17 4869
mysql中的视图是一种虚表。 创建视图的时候with check option选项可以检查一些数据检查,避免脏数据的录入。 举例: 首先我们创建一个数据库表t,为了讲解with check option的作用,字段就弄的简单点。 mysql&amp;gt; create table t(id int); Query OK, 0 rows affected (0.03 sec) 我们创建一个视图v my...
WITH CHECK OPTION的用法
11-06
WITH CHECK OPTION的用法
SQL:WITH CHECK OPTION 与 WITH GRANT OPTION 的作用(简述)
最新发布
c123456282838的博客
05-22 645
WITH CHECK OPTION 与 WITH GRANT OPTION 的作用
【三十五、MySql】进阶篇--视图
qq_49121643的博客
02-04 190
视图
mysql视图之确保视图的一致性(with check option)操作详解
12-15
本文实例讲述了mysql视图之确保视图的一致性(with check option)操作。分享给大家供大家参考,具体如下: 我们有的时候,会创建一个视图来显示表的部分数据。我们知道,简单视图是的,因此可以更新通过视图不可见的数据,但是此更新会使的视图不一致。为了确保视图的一致性,在创建或修改视图时使用WITH CHECK OPTION可更新子句。我们来看下WITH CHECK OPTION可更新子句的语法结构: CREATE OR REPLACE VIEW view_name AS select_statement WITH CHECK OPTION; 我们要注意,将分号(;)放在WI
-------视图with check option选项-------------------
fredrickhu的专栏
10-29 9913
通过有with check option选项视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论:首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。1.对于update,有with check option,要保证update后,数据要被视图查询出来2.对于delete,有无with check option都一样4.对于insert
MySQL】WITH CHECK OPTION的用法
花北城的博客
12-02 3883
本专栏为【数据库】,主要介绍SQL的功能与特点、SQL数据定义语言(表、视图、索引、约束)、SQL数据操作语言(数据检索、数据插入、数据删除、数据更新)、创建与删除触发器、SQL数据控制语言(安全性和授权、事务处理)以及嵌入式SQL。如果你对本专辑感兴趣,持续关注吧。大家有任何问题,也可以评论区反馈,私信我。视图的定义:视图不是真实存在的基本表,而是一个虚拟表视图的作用:1、可以使视图集中数据、简化和定制不同用户对数据库的不同数据要求2、使用视图可以屏蔽数据的复杂性。
MYSQL视图 WITH CHECK OPTION 的用法
m0_74206166的博客
04-28 359
现在,我们想创建一个视图,只包含某个特定考试(比如考试ID为1001)的成绩记录。我们可以这样创建这个视图,并启用。同样,如果我们尝试更新视图中的一条记录,使其不符合视图定义的条件,更新操作也会被拒绝。的作用,它确保了插入和更新操作都符合视图的定义条件,从而保证了视图数据的一致性和完整性。中插入一条记录,但该记录的考试ID不是1001,那么插入操作将会被拒绝。
with check option视图
ajsyipsc40270的博客
12-25 282
建立视图的时候使用WITH CHECK OPTION 与不使用的区别 WITH CHECK OPTION   insert update delete 使用with check option 保证insert后,数据要被视图查询出来 保证update后,数据要被视图查询出来 无要求 未使用with check option...
mysql视图的with check option
04-22
MySQL视图可以使用 WITH CHECK OPTION 语句来创建触发器以强制完整性约束。使用此选项创建视图后,在试图向视图中插入数据时,MySQL检查插入的行是否符合筛选条件或是否符合视图中的定义。如果不符合视图的...
MySQL从入门到实战学习教程之9视图.pptx
10-31
2. 创建视图的语法格式如下:Create [or replace] view视图名[(列名1,列名2,…)]asselect语句[with check option] 3. 视图的列名默认和定义视图的Select语句的列名相同,可以通过在Select语句中设置列的别名或在视图...
数据库】浅谈WITH CHECK OPTION的作用
热门推荐
三桥君 | 人工智能领域优质创作者
04-05 3万+
说明: 本文通过定义一个基本表,分析了在两种视图的情况下,使用WITH CHECK OPTIONSQL语句查询视图的影响,对比分析说明了WITH CHECK OPTION的作用。 如果同学们感兴趣,可以自行把代码复制到软件上测试运行。 本文测试使用的软件为SQL Server2014版。 定义基本表 首先,定义一张Class表 //创建数据库WCO CREATE DATABASE WCO ...
SQL视图WITH CHECK OPTION
cout0
11-05 2984
文章目录WITH CHECK OPTION WITH CHECK OPTION 通过有with check option选项视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论: 首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。 对于update,有with check option,要保证update后,数据要被视图查询出...
mysql中with check option分析
qq_41286138的博客
07-13 3291
该语句用于视图创建,分为三种情况: 无with check option;with local check option;with cascaded check option。 当不加local或cascaded时,默认为cascaded。 该语句的作用: update,要保证数据update之后能被视图查询出来,也就是要符合where的条件 insert,保证insert的数据能被视图查询出来 delete,有无 with check option都一样 对于没有where字句的视图,使用with ch
视图中的with check option
eric_xiong0226的专栏
01-19 848
student表: 95001 李勇 男 20 CS 95002 刘晨 女 21 IS 95003 王敏 女 18 MA 95004 张力 男 19 IS 建立视图IS_STUDENT显示“IS”系所有学生的学号、姓名、性别。 create view IS_STUDENT as select Sno,Sname,Ssex from Student where
视图WITH CHECK OPTION
nns
05-16 494
视图的DML操作和WITH CHECK OPTIONDQL:查询SELECT DML:操纵INSERT UPDATE DELETE DLL:定义CREATE DCL:控制如授权、回滚视图WITH CHECK OPTION数据库禁止更改不包含在子查询里的行。创建视图时的列数也有要求,如列数不符合就无法插入非空列。视图的聚合函数列必须有一个别名,有聚合函数的视图是复杂视图,不能进行DML操作。例题...
浅析 with check option
数据库专栏
01-16 1354
先自定义一个table   名为 :Star                     先定义视图找出所有张姓明星: Java代码   create view  IS_Star   Java代码   as      select  *from Star  
with check option的使用
王小波的博客
03-01 1万+
在with check option选项下,可以总结为 1.update,要保证数据update之后能被视图查询出来,也就是要符合where的条件 2.insert,保证insert的数据能被视图查询出来 3.delete,有无 with check option都一样 4.对于没有where字句的视图,使用with check option是多余...
写文章

热门文章

  • 一文讲透实体-联系模型(E-R图) 35474
  • 一文搞懂操作系统中的管程 8104
  • 一文搞懂操作系统中银行家算法 6278
  • 一文搞懂信号量机制(内含消费者生产者问题) 4612
  • 磁盘详解(一文搞懂磁盘) 3953

分类专栏

  • 操作系统学习笔记 13篇
  • C语言笔记 14篇
  • MySQL学习笔记 14篇

最新评论

  • 一文讲透实体-联系模型(E-R图)

    测试_777: 弱实体的举例好容易理解!!

  • C++重新入门-vector容器

    Yakult-m: 博主最近怎么没更新啊

  • CMake良心教程(1)手把手教你入门!

    m0_65444062: 大佬!三 3.1里的test在哪里?

  • 一文讲透实体-联系模型(E-R图)

    银㱠: 哇,博主写的挺清晰简明的,我看着也不觉得繁杂,而且有拓展进阶的部分,还有简单的练习,挺好的表情包

  • C++重新入门-string容器

    Yakult-m: 博主好厉害!

大家在看

  • 矩阵对角化 405
  • 自然语言处理通关手册--文本数据预处理
  • 用神经网络自动玩游戏
  • PTA7-9大笨钟
  • 请解释MySQL中的查询缓存及其工作原理。

最新文章

  • C++重新入门-vector容器
  • C++重新入门-string容器
  • C++重新入门-基本输入输出
2024年18篇
2023年49篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家大连玻璃钢动物雕塑厂家杭州十一商场美陈商场仿真植物美陈五华区玻璃钢雕塑加工公司多少钱德阳公园玻璃钢雕塑定制四川特色商场美陈销售公司玻璃钢雕塑脱模后怎么清洗上漆玻璃钢雕塑上的石膏玻璃钢动物牛雕塑定制东莞玻璃钢唱戏人物雕塑电话新余动物玻璃钢雕塑价位吉林商场美陈报价宁德玻璃钢雕塑制品厂浙江常见商场美陈销售厂家百色玻璃钢雕塑价格玻璃钢雕塑艺术性广东中庭商场美陈批发价玻璃钢花盆长方形柳州玻璃钢座椅雕塑商场背景墙美陈广州多彩玻璃钢雕塑制作玻璃钢卡通门头雕塑设计哪家好台州玻璃钢卡通雕塑定制大兴玻璃钢雕塑淮南景区玻璃钢雕塑供应商威海玻璃钢仿铜雕塑价格玻璃钢花盆简笔画人物玻璃钢小鹿雕塑玻璃钢花盆种花图开远市玻璃钢雕塑设计厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化