数据库专辑--WITH CHECK OPTION的用法

news2024/11/17 16:39:40

系列文章

C#底层库–数据库访问帮助类(MySQL版)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126886379

文章目录

  • 系列文章
  • 前言
  • 一、概念介绍
  • 二、测试用例
    • 2.1 数据准备
    • 2.2 数据查询
    • 2.3 修改视图,加上WITH CHECK OPTION
    • 2.4 再次进行数据插入
    • 2.5 再次查询数据
  • 三、用法总结


前言

本专辑主要介绍SQL的功能与特点、SQL数据定义语言(表、视图、索引、约束)、SQL数据操作语言(数据检索、数据插入、数据删除、数据更新)、创建与删除触发器、SQL数据控制语言(安全性和授权、事务处理)以及嵌入式SQL。
如果你对本专辑感兴趣,持续关注吧。大家有任何问题,也可以评论区反馈,私信我。

一、概念介绍

视图的定义:

视图不是真实存在的基本表,而是一个虚拟表

视图的作用:

1、可以使视图集中数据、简化和定制不同用户对数据库的不同数据要求
2、使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。
3、视图可以使用户只关心他感兴趣的某些特定数据和所负责的特定任务,而那些不需要的或者无用的数据则不再视图中显示。
4、视图大大地简化了用户对数据的操作
5、视图可以让不同的用户以不同的方式看到不同或者相同的数据集。
6、在某些情况下,由于表中数据量太大,因此在表的设计时常对表进行水平或者垂直分割,但表的结构的变化对应用程序产生不良的影响。
7、视图提供了一个简单而有效的安全机制

视图的创建:

CREATE VIEW 视图名(列表名)
AS SELECT 查询子句
[WITH CHECK OPTION]

二、测试用例

2.1 数据准备

创建用户信息表userinfo

CREATE TABLE userinfo(
sno CHAR(10) NOT NULL UNIQUE,
sname CHAR(40) UNIQUE,
city CHAR(20),
PRIMARY KEY (sno) 
);

创建用户信息视图V_userinfo,条件:“城市”只取“镇江”的数据。

CREATE VIEW V_userinfo
AS 
SELECT * FROM userinfo
WHERE city='zhengjiang'

向视图中插入数据,本质也是往表中插入数据

INSERT INTO V_userinfo VALUES('00001','成成','zhengjiang');
INSERT INTO V_userinfo VALUES('00002','欣欣','zhengjiang');
INSERT INTO V_userinfo VALUES('00003','刘健','nanjiang');

数据插入成功,如下图所示:
在这里插入图片描述

2.2 数据查询

查询表

SELECT * FROM userinfo

结果
在这里插入图片描述

查询视图

SELECT * FROM V_userinfo

结果
在这里插入图片描述

2.3 修改视图,加上WITH CHECK OPTION

修改视图

ALTER VIEW V_userinfo
AS 
SELECT * FROM userinfo
WHERE city='zhengjiang'
WITH CHECK OPTION

运行结果:成功

2.4 再次进行数据插入

插入00004

INSERT INTO V_userinfo VALUES('00004','婷婷','zhengjiang');

运行结果:

1 queries executed, 1 success, 0 errors, 0 warnings

查询:INSERT INTO V_userinfo VALUES('00004','婷婷','zhengjiang')1 行受到影响

执行耗时   : 0.009 sec
传送时间   : 0 sec
总耗时      : 0.009 sec

插入00005

INSERT INTO V_userinfo VALUES('00005','壮壮','nanjiang');

运行结果:

1 queries executed, 0 success, 1 errors, 0 warnings

查询:INSERT INTO V_userinfo VALUES('00005','壮壮','nanjiang')

错误代码: 1369
CHECK OPTION failed 'test.v_userinfo'

执行耗时   : 0 sec
传送时间   : 0 sec
总耗时      : 0 sec


2.5 再次查询数据

查询表

SELECT * FROM userinfo

结果
在这里插入图片描述

查询视图

SELECT * FROM V_userinfo

结果
在这里插入图片描述
可以清楚的发现,将入了“WITH CHECK OPTION”语句,00005这条数据无法插入进数据库中。

三、用法总结

WITH CHECK OPTION(带有检查选项)表示对update、insert、delete操作时保证更新、插入或者删除满足视图定义中的谓词条件(即子查询中的条件表达式)。
使用WITH CHECK OPTION的视图,对于数据插入,不满足where条件的数据,插入失败,错误代码1369。具有一个检查的功能。

with check option保证了通过视图进行的修改,必须也能通过该视图看到修改后的结果。
修改的结目标和结果都只在视图上呈现,这样不会影响其他视图。
所以你插入,那么插入这条记录在刷新视图后必须可以看到;
如果修改,修改完的结果也必须能通过该视图看到;
如果删除,当然只能删除视图里有显示的记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/55281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA 优质 插件 Translation 跟随 IDEA 2022.3 版 更新翻译引擎啦

IDEA 优质 插件 Translation 跟随 IDEA 2022.3 版 更新翻译引擎啦 文章目录IDEA 优质 插件 Translation 跟随 IDEA 2022.3 版 更新翻译引擎啦特征安装使用 IDE 内置插件系统安装:手动安装:使用1. 注册翻译服务(可选)2. 开始翻译3.…

BGP学习笔记

概念 动态路由协议按照按照工作范围可以分为IGP和EGP,IGP工作在一个AS之内,主要用来发现和计算路由,常见的IGP包括OSPF,RIP,ISIS等。EGP工作在AS与AS之间,在AS之间提供无环路的路由信息交换。BGP&#xff…

[附源码]Python计算机毕业设计Django基于Web的软考题库平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

ActiveMQ window安装、修改密码、启动一闪而过、设置8161端口仅本地访问

目录 1.ActiveMQ下载 2.ActiveMQ目录说明 3.启动activemq 4.修改activemq默认密码 5.设置8161端口仅本地访问。 1.ActiveMQ下载 官网下载ActiveMQhttps://activemq.apache.org/ window版本直接解压就可以。 2.ActiveMQ目录说明 apache-activemq-5.16.5 activemq目录结构…

这几款文档笔记工具,你习惯用哪个?

前言 俗话说的好:“好记性不如烂笔头”,平时工作记录笔记的确是一个良好的习惯,做文档笔记可以在我们遗忘时进行回看,方便查找,代替人的大脑。有时程序写多了,很不愿意去强制记忆一些东西,那么…

【高度预估】基于matlab卡尔曼滤波和粒子滤波无人机离地高度估计【含Matlab源码 2255期】

⛄一、卡尔曼滤波和粒子滤波无人机离地高度估计 1 无人机离地高度估计算法 1.1 离地高度估计基本方案 无人机安装两路距离测量传感器, 传感器能在小型无人机飞行的一般高度正常工作, 且两个传感器的安装位置保证它们能够测量相同的离地高度信息。 两路距离测量传感器以1s的频…

单源最短路径(贪心算法)

最近在研究算法设计与分析&#xff0c;看到了单源最短路劲&#xff0c;特发文一篇。 下面代码就是实现这个有向联通图 废话不说直接上代码 #include<stdio.h> #define m 5000 int c[5][5] {m,10,m,30,100,m,m,50,m,m,m,m,m,m,10,m,m,20,m,60,m,m,m,m,m, }; int dist[5]…

现在市面跑步耳机哪款好用、分享五款适合跑步用的耳机推荐

近这两年来&#xff0c;运动健身风潮一直都非常火&#xff0c;但是一个人运动健身&#xff0c;难免无聊&#xff0c;如果有音乐的陪伴&#xff0c;时间都能过得快很多&#xff0c;这时候就需要一款运动蓝牙耳机了。不过购买运动蓝牙耳机&#xff0c;比挑选普通的耳机还更需要花…

[附源码]Python计算机毕业设计Django架构的博客平台设计

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

节约软件开发成本,关键在这儿。

​1、节省软件开发成本的核心在减少返工&#xff01; 软件企业利润 销售额 - 成本。企业的利润少&#xff0c;可能是销售额太少&#xff0c;也可能是成本太高。而增加销售额&#xff0c;取决于销售人员、客户、市场、产品等众多不可控因素&#xff0c;可遇而不可求。相反&…

RabbitMQ-死信交换机

文章目录1 死信交换机1.1.什么是死信交换机1.2 利用死信交换机接收死信1.3 总结2 TTL2.1 接收超时死信的死信交换机2.2 声明一个队列&#xff0c;并且指定TTL2.3 发送消息时&#xff0c;设定TTL2.4.总结3 延迟队列3.1 DelayExchange原理3.2 使用DelayExchange3.3 总结1 死信交换…

智云通CRM:如何判断客户忠诚度的高低?

客户忠诚度是一个相对概念&#xff0c;说明了客户在购买同类产品或服务时对某一企业或品牌光顾比重的高低。注意&#xff0c;不能跨产品或服务进行客户忠诚度比较&#xff0c;因为这样比较是没有意义的。客户忠诚度可以通过以下指标来衡量。 一、 客户重复购买的次数 客户重复…

【LeetCode每日一题:1769. 移动所有球到每个盒子所需的最小操作数~~~双重循环遍历模拟】

题目描述 有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes &#xff0c;其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的&#xff0c;而 boxes[i] 的值为 ‘1’ 表示盒子里有 一个 小球。 在一步操作中&#xff0c;你可以将 一个 小球从某个盒子移动到一个与之相邻…

区块链共识机制 (Consensus)(PoW,PoS,PAXOS,RAFT,PBFT)

文章目录ConsensusProof of Work&#xff08;PoW)Proof of Stake&#xff08;PoS&#xff09;PAXOSPhases in PAXOSPrepare PhaseAccept PhaseReplicated And Fault Tolerant&#xff08;RAFT&#xff09;Leader ElectionLog ReplicationPractical Byzantine Fault Tolerance (…

Ubuntu18.04开机自动启动终端并运行脚本

目录 1.创建测试脚本文件 2.添加到开机自启动 1.创建测试脚本文件 CtrlAltT打开终端在终端中输入以下指令&#xff0c;创建.sh文件。 touch “文件名”.sh 双击打开test.sh文件&#xff0c;输入以下测试代码&#xff0c;并保存 #!/bin/bash source /opt/ros/melodic/setu…

用于Python降维的线性判别分析

减少预测模型的输入变量数称为降维。 较少的输入变量可以产生更简单的预测模型&#xff0c;该模型在对新数据进行预测时可能具有更好的性能。 线性判别分析&#xff08;简称LDA&#xff09;是一种用于多类分类的预测建模算法。它还可以用作降维技术&#xff0c;提供训练数据集…

Unity 3D 导航系统||Unity 3D 障碍物

Unity 3D 导航系统 过去&#xff0c;游戏开发者必须自己打造寻路系统&#xff0c;特别是在基于节点的寻路系统中&#xff0c;必须手动地在 AI 使用的点之间进行导航&#xff0c;因此基于节点系统的寻路非常烦琐。 Unity 3D 不仅具有导航功能&#xff0c;还使用了导航网格&…

牛客练习赛106 药丸

牛客练习赛106 药丸 2022.12.02 与舍友四排玩了团体对抗的模式&#xff0c;练习赛就只有40分钟的剩余时间了。 题目描述 来源&#xff1a;牛客网 牛牛有 nnn 个属性&#xff0c;第 iii 个属性的初始值为 aia_iai​ &#xff0c;牛牛想把第 iii 个属性的值变为目标值 bib_ib…

享元模式Flyweight

1.意图&#xff1a;运用共享技术有效地支持大量细粒度的对象。 2.结构 描述一个接口&#xff0c;通过这个接口Flyweight可以接受并作用于外部状态&#xff1b; ConcreteFlyweight实现Flyweight接口&#xff0c;并为内部状态&#xff08;如果有&#xff09;增加存储空间。Conr…

超融合时序数据库YMatrixDB与PostGIS案例

目录 什么是PostGIS PostGIS的特点 PostGIS 基础知识 OGC的WKB和WKT格式 插入数据实例 EWKT、EWKB和Canonical格式 插入数据实例 SQL-MM格式 常几何类型和函数 常用操作符 常用操作函数 OGC标准函数 管理函数 几何对象关系函数 几何对象处理函数 几何对象存取函…