第18章 使用视图
可以把视图想象成有以下限制的表来用:
1.视图是虚拟表,它只包含使用时动态检索数据的查询。
2.视图可以嵌套,可以利用其他的视图来构建新的视图。
3.许多DBMS限制在视图中使用Order by子句
4.视图不能索引,也不能有关联的触发器和默认值。
5.有些DBMS规定视图是只读的,只能检索数据不能将数据写回系统。当也有一下DBMS是这样的,它不运行执行导致行不再属于这个视图的插入和更新。
最好的用之前查手册.
创建语法:CREATE VIEW viewname AS SELECT...
第19章 使用存储过程
存储过程可以看成为了以后使用而预先定义好的一条或多条Sql语句的集合.
1.存储过程的好处:
简单:Sql语句封装,避免重复编写,可重复调用,修改方便。
安全:统一调用减少讹误。
高效:通过编译后的形式存储,执行效率高。
2.存储过程的不好处:
不统一:各个DBMS对存储过程的使用语法和实现均不统一,破坏了系统的可移植性。复杂:相对SQL而言,更复杂,更需要经验。
具体的还是看手册来的实际。
第20章 控制事务处理
事务处理(transaction processing)用来维护数据库的完整。这个日常开发中遇见的N多。
1.看看这几个词,transaction 事务,rollback 回滚,commit 提交 ,savepoint 保留点。说明一下savepoint,其他的不用多言了。
2.savapoint:事务处理过程中的临时占位符(placeholder),你可以对它发布回退.
3.不是所有的都可以回退的,一般而言Insert,update可以回退,但是select(没必要),create ,drop不能回退,但是事务处理中可以使用这些语句,但进行回退时,它们不被撤销.
4.一般DBMS会隐含提交(implicit commit),即sql语句执行过程中,提交操作会自动执行。所以要显示的声明事务的开始和提交。
5.MS SQL 里面关于事务的例子,可以体会Savepoint的使用。
BEGIN TRANSACTION;
DELETE OrderItems WHERE order_num =12345;
SAVE TRANSACTION deleteDI;
DELETE Orders WHERE order_num =12345;
COMMIT TRANSACTION;
ROLLBACK TRANSACTION deleteDI;
第21章 使用游标
可以理解游标其实就是操作结构集的一种机制。
1.游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。
2.游标主要用于交换式应用,其中用户需要滚动屏幕上的数据并对数据浏览或操作。游标在客户端和服务器会话期间存在,而Web开发中,应用服务器为数据库客户端而不是最终用户,所以游标在web开发中用的不多,web开发多使用自己开发的功能来实现相关操作.
具体使用不通DBMS写法不一样,需要参考手册。
第22章 了解高级SQL特性
1.约束,常见的约束有这些,主键,外键,唯一约束等。
2.唯一约束与主键的区别:一个表可以有多个唯一约束,但是表只允许一个主键;唯一约束可以有Null,唯一约束可以修改或更新,唯一约束的值可以重复使用,唯一约束不能用来定义外键.
3.检查约束,用来限制列中可保存的数据的类型。
一个例子:
CREATE TABLE OrderItems (
...
quantity INTEGER NOT NULL CHECK (quantity > 0),
...
);
4.索引,老朋友了。有些要注意的地方
a.索引改善检索操作的性能,但是会降低数据插入,修改和删除的性能。
b.索引数据可能占有大量的存储空间.
c.选择索引列的条件:该列的唯一性要求比较好,重复值比较多的列不适合做索引;如果一个列经常数据过滤或者排序,可以考虑索引来优化性能.
d.一个表可以有多个索引列.
5.触发器,特殊的存储过程,它在特定的数据库活动发生时自动执行.但是注意触发器的效率不如约束快。
到这里《SQL必知必会》就完了。内容比较简单.
平凡而简单的人一个,无权无势也无牵无挂。一路厮杀,只进不退,死而后已,岂不爽哉!
收起对“车”日行千里的羡慕;收起对“马”左右逢缘的感叹;目标记在心里面,向前进。一次一步,一步一脚印,跬步千里。
这个角色很适合现在的我。
posted on 2007-11-28 18:54
过河卒 阅读(1014)
评论(1) 编辑 收藏 所属分类:
DataBase/Sql