SQL复习六(视图)
视图是关系数据库系统提供给用户以多角度观察数据库中数据的一种重要方法。视图是从一个或者几个表中导出的虚拟表。视图一经定义就可以被查询和删除。也可以在视图上定义视图。用视图完成数据的更新(增,删,改)操作有一定的限制。
修改规则:
1)如果视图是从多个表使用连接操作导出的,不可以更新;
2)如果导出视图的过程中,使用了分组和集函数,不可以更新;
3)如果视图是从单个基本表使用选择和投影,导出的属性集包含了基本表的一个候选集,这个视图成为“行列子集视图”,允许对其进行更新操作。
1.1定义视图
语法:
create view <视图名> [<列名1,列名……>]
as <select 子查询语句>
[with check option]
组成视图的列名要么全部省略,要么全部指定。下列三种情况必须明确指定组成视图的列名:
1)某个目标列不是单纯的属性名,而是集函数或列表达式;
2)多连接导出的视图中有几个同名列作为该视图的属性列名
3)需要在视图中为某个列启用新的更合适的名字。
<select 子查询语句>可以是任意复杂的select语句,通常不允许有order by 和distinct短语;
with check option 表示视图进行update,insert 和delete操作时要保证更新,插入和删除的元祖满足视图定义中的谓词条件(select子查询中的条件表达式)
create viw emp_view
as select empno,ename,job,deptno from emp
with check option
create view emp_tatal (empno,ename,tatal)
as select empno,ename,sal+ifnull(comm,0) from emp
1.2 删除视图
语法:
drop view <视图名>
drop view emp_tatal;
1.3 查询视图
和使用基础表一样使用视图。
select * from emp_view;
1.4 更新视图
跟新视图,指着通过视图来插入,删除,和修改数据。视图的跟新最终要转化为对基本表的更新。
SQL复习六(视图)的更多相关文章
- [SQL]SQL语言入门级教材_跟我学SQL(六)
跟我学SQL:(一)数据查询 且不说你是否正在从事编程方面的工作或者不打算学习SQL,可事实上几乎每一位开发者最终都会遭遇它.你多半还用不着负责创建和维持某个,但你怎么着也该知道以下的一些有关的SQL ...
- SQL Server 系统视图
SQL Server系统视图非常的多,因此不可能一个一个地写,我最近一直在想,对于数据库的系统视图应该如何学,但是看了一下目录之后,我呆了,我觉得每个写一次,可能都要花费1个星期的时间,如果对每一个返 ...
- SQL SERVER分区视图
借助SQL SERVER分区视图,可以对SQL中的表进行集中管理,下文将以实例的方式为您详解SQL SERVER分区视图,希望对您学习SQL数据库能有所帮助. SQL SERVER分区视图给我们提供了 ...
- 转发:使用sql命令查询视图中所有引用的基础表
转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就 ...
- SQL VIEW(视图)
视图是可视化的表. SQL CREATE VIEW 语句 什么是视图? 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个 ...
- SQL Server系统视图sys.master_files不能正确显示数据库脱机状态
最近发现在SQL Server数据库(目前测试过SQL Server 2008, 2012,2014,2016各个版本)中,即使数据库处于脱机(OFFLINE)状态,但是sys.master_file ...
- Javaweb学习笔记——(十五)—————— sql复习
sql复习 数据库管理系统(DBMS)的概述 1.什么是DBMS:数据的仓库 *方便查询 *可存储的数据量大 *保证数据的完整.一致 *安全可靠 2.DBMS的发展:今天主流数据库为关系型数据库管理系 ...
- 刷新SQL Server所有视图、函数、存储过程
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
随机推荐
- .Net配置错误页
1.在web.config中,配置customErrors节,在子节点error中,可以对特定的错误码,进行错误也配置. 配置举例如下: <customErrors mode="Rem ...
- json的引号之伤
最近读他们的jquery解读的源码,由于版本不同,我可能看的是他们解读的1.7的,但是我本身运行的可能是1.9的,所以有些出处,但是中心思想不变,我有疑问的时候,直接debug,让例子自己走一遍,好处 ...
- inno setup 1
1.简单脚本 [setup] AppName=Test AppVerName=Test DefaultDirName="d:\setup\app" AppVersion=1.0 ...
- MySql 插入10位以上长度的字符报错or截断
当a字段为int类型时: 如果用MyBatis向MySql插入10个字符以上长度的字符串,则会报错. 如果直接在MySql中用sql语句插入10个字符以上长度的字符串,则会变成最大的int类型数值:2 ...
- addEventListener与removeEventListener
addEventListener:添加事件监听器 element.addEventListener(event, function, useCapture) event:事件类型,字符串,不要加&qu ...
- stdafx文件介绍
MSDN介绍: These files are used to build a precompiled header file Projname.pch and a precompiled types ...
- frame、bounds表示大小和位置的属性以及center、position、anchorPosition
在iOS开发开发过程中经常会用到界面元素的frame.bounds表示大小和位置的属性以及center.position.anchorPosition等单纯表示位置的属性.这些属性究竟什么含义?彼此间 ...
- HTML元素分类:块级元素 内联元素和内联块状元素
在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 1,块状元素 常用的块状元素有: <div>.<p>.<h1 ...
- PHP中require()文件包含的正确用法
以前看一些PHP框架源码的时候,很奇怪在文件包含的时候,会用dirname(__FILE__)来拼凑文件路 径,不知道这样做有什么好处,后来终于发现了其中的缘由. 我们来看一个简单的例子: 有a,b, ...
- iptables-过滤61开头的ip数据包
iptables -F root@android:/system/bin # iptables -L -n iptables -L -n Chain INPUT (policy ACCEPT) tar ...