知识大全 可更新的视图(1)
Posted 视图
篇首语:坚强的意志,是不会被假设所谓的命运击败的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 可更新的视图(1)相关的知识,希望对你有一定的参考价值。
SQL实战新手入门:可更新的视图(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
可更新的视图( )
在不久之前 视图仅仅是 数据的一个只读窗口 某些RDBMS在某种程度上已经放松了这种限制 允许对视图执行INSERT UPDATE或DELETE操作 目前 只有Oracle MySQL Microsoft SQL Server和IBM DB 对视图提供了这样的功能 即使在这些数据库中 在视图成为一个可更新视图之前 也必须满足一定的条件
最重要的一个限制就是一个可更新视图只能包含一个表 其他的限制包括不允许使用GROUP BY子句和ORDER BY子句 不支持DISTINCT关键字 不能使用聚合函数或子查询以及不能包含计算列等 诸如此类的限制还有很多 某些SQL语句还要求一些额外的具体条件 例如 要对一个视图执行INSERT语句 则必须将所有定义为NOT NULL的列都包含在创建该视图的SELECT语句中
试一试通过视图执行INSERT UPDATE或DELETE操作
下面将创建一个允许用户向数据库中添加新记录的视图 但限制只允许更新底层表中的两个列 这个练习将使用Microsoft SQL Server 但在其他支持可更新视图的RDBMS中也能正常运行
( ) 打开Microsoft SQL Server Management Studio 使用Windows身份验证连接到数据库
( ) 单击位于左上角的New Query按钮
( ) 在打开的查询窗口(中间的窗格)中输入下面的SQL查询
CREATE VIEW vwBookPrices
AS SELECT
bk_id
bk_title
bk_price
FROM books;
( ) 执行下面的查询 只提供BK_ID列的值 插入一条新记录
INSERT INTO vwBookPrices (BK_ID) VALUES ( )
( row(s) affected)
( ) 运行下面的查询 验证新记录是否确实插入到了BOOKS表中
SELECT
bk_id
bk_title
bk_price
FROM books;
bk_id bk_title bk_price
NULL NULL
( ) 运行下面的查询 使用指定的图书名称和价格更新刚才新插入的记录
UPDATE vwBookPrices
SET bk_title= Faust
bk_price =
WHERE bk_id =
( row(s) affected)
( ) 运行下面的查询 验证该记录是否确实插入到了BOOKS表中
SELECT
bk_id
bk_title
bk_price
FROM books
WHERE bk_id = ;
bk_id bk_title bk_price
Faust
( ) 最后 删除该记录
DELETE vwBookPrices WHERE bk_id = ;
( row(s) affected)
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
cha138/Article/program/SQL/201311/16459相关参考
前言 之前曾经编写过一篇关于多表可更新视图的文章而事实上ORACLE并不是要求所有的可更新视图都需要带触发器 只要要求更新的字段属于同一张数据表(简称更新表而且其它表与更新表是正常的关联关系则
SQL实战新手入门:创建视图(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建视图()
脚本可分两部分: 同义词 :synonymcmd: sqlplusdxsq/teledoone@jnnew@synonymsql synonymsql: create
基于Eclipse的工具开发:透视图开发[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
1主,左视图高平齐2主,俯视图长对正3俯,左视图宽相等。
1主,左视图高平齐2主,俯视图长对正3俯,左视图宽相等。
1主视图反映物体的上下和左右,2俯视图反映物体的左右和前后,3左视图反映物体的上下和前后
1主视图反映物体的上下和左右,2俯视图反映物体的左右和前后,3左视图反映物体的上下和前后
如何进行ListView性能优化视图缓存等Android中对View的更新有几种方式?多线程和双缓冲的使用情况AndroidIPC及原理Android多线程处理的机制Android为什么要设计大组件之
知识大全 SQL Server 2000的视图中必须小心使用*符号[1]
SQLServer2000的视图中必须小心使用*符号[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一