-- 视图是一种虚拟表,本质上是多个数据表查询结果的集合,本身不具体存在数据库中,是一个虚拟表 -- 视图的生成使用的是多表查询,每次使用视图时,必须执行定义视图时的所有查询,可能会性能降低 -- 主要优点:简化操作,建立前台后台的缓冲,合并分割数据,提高安全性 CREATE VIEW 工资(编号,姓名,收入) as SELECT [ Salary ].[编号],姓名,收入 from employees,[ Salary ] where employees.[编号]=[ Salary ].[编号] -- 删除视图只是删除视图的定义 Drop VIEW 工资 -- 查询视图 select * FROM 工资 -- 为视图添加数据,一个insert不能跨多表使用,要分别插入 INSERT into 工资(编号,姓名) values (12,'程凉快') INSERT into 工资(编号,收入) values (12,1254) -- 多表组成的视图不允许删除数据 -- 使用with check option 子语句创建视图后,通过视图的添加和修改必须满足创建时候的条件 -- 在as前面添加 with encryption 设置加密 -- 对视图的增删改,就是对源表的操作 -- 使用存储过程 sqlserver -- 改变性能,提高执行效率 -- sqlserver create PROCEDURE detfr as select * from Employees exec detfr -- 查看存储过程 exec sp_help detfr exec sp_helptext detfr exec sp_depends detfr -- 修改存储过程 alter PROCEDURE detfr as select * from Employees where sex=1 -- 删除 drop PROCEDURE detfr -- 使用游标 ,定位到结果集中的某一行 -- 声明 DECLARE youbiao CURSOR for SELECT * FROM Employees -- 打开 OPEN youbiao -- 读取 FETCH NEXT FROM youbiao while @@fetch_status =0 BEGIN FETCH NEXT FROM youbiao END -- 关闭 CLOSE youbiao -- 释放 DEALLOCATE youbiao -- 事务是保证数据一致性的重要手段 -- 事务是一系列语句构成的逻辑工作单元 -- 必须拥有: -- 原子性:对于一个工作单元,要么全部执行,要么全部取消,一条语句失败则全部回滚 -- 一致性:事务完成时,全部数据状态一致 -- 隔离性:事务所做的修改和其他事务隔离 -- 持久性:事务提交后,对数据库所做的修改会永久保存 -- 事务一旦出现问题,数据库就会返回事务开始前的状态 -- 显式事务:用户自定义或用户指定的事务 BEGIN TRANSACTION …… COMMIT TRANSACTION -- 隐式事务,执行下一条语句后自动启动一个新事务 -- 启动 SET CURRENT_TIMESTAMP ON …… COMMIT TRANSACTION -- 提交,自动开启下一个事务 …… COMMIT TRANSACTION -- 关闭事务 SET CURRENT_TIMESTAMP OFF -- 事务回滚点 -- 创建事务保存点 SAVE TRANSACTION 保存点名称 -- 回滚事务保存点,回滚时事务并不终止 ROLLBACK TRANSACTION 保存点名称 -- 在开始事务的语句末尾加 with mark ,否则回滚事务是会出现找不到该事务或保存点 -- 回滚整个事务,整个事务所有改变将无效 ROLLBACK TRAN 事务名 -- 编写有效事务 -- 不要在事务处理期间要求用户输入 -- 在浏览数据时尽量不要打开事务 -- 保持事务尽可能短 -- 灵活使用更低级的事务隔离级别 -- 在事务中尽量使访问数据量最小,减少事务间的争夺 -- 小心地使用隐式事务
视图 、存储过程、游标、事务
猜你喜欢
转载自www.cnblogs.com/LBJN/p/12770310.html
今日推荐
周排行