动感地带青春卡,搜索引擎优化实训,来安县城乡规划建设局网站,wordpress如何搭建一个购物网站--上节回顾--1.什么是事务--2.事务的特征--原子性、一致性、隔离性、持久性--3.与事务相关的t-sql命令--开启事务#xff1a;begin transaction--提交事务#xff1a;commit transaction--回滚事务#xff1a;rollback transaction ----------------视图-------------------…--上节回顾--1.什么是事务--2.事务的特征--原子性、一致性、隔离性、持久性--3.与事务相关的t-sql命令--开启事务begin transaction--提交事务commit transaction--回滚事务rollback transaction ----------------视图--------------------首先思考一个问题:查询上机记录信息。--计算机名、会员名称、上机开始时间、上机结束时间、金额 select cp.chvComputerName, ci.chvUserName, ri.dtmStart, ri.dtmEnd, ri.mnyFeefrom TblRecordInfo as ri--as表示为表取别名inner join TblCardInfo as ci on ri.intCardIdci.intCardId--内连接用inner join同时应该为两张表指定连接字段inner join TblComputer as cp on ri.intComputerIdcp.intComputerId --评价:上述书写sql查询语句的方式太繁琐每次书写的时候都会感觉很复杂 --思考到底有木有一种非常方便的操作方式能够实现一样的查询效果 --答案肯定有视图来解决 --什么是视图 --注意点--1.视图中的数据并没有保存在视图中它仅仅保留查询的结果-- 这些记录是保存在表当中的 --如何创建视图,创建视图有相应的语法create view view_RecordDetailas select cp.chvComputerName, ci.chvUserName, ri.dtmStart, ri.dtmEnd, ri.mnyFee from TblRecordInfo as ri--as表示为表取别名 inner join TblCardInfo as ci on ri.intCardIdci.intCardId--内连接用inner join同时应该为两张表指定连接字段 inner join TblComputer as cp on ri.intComputerIdcp.intComputerId --如何使用视图:使用方式和表一样 select * from view_recorddetail go --视图是不是只能用来进行查询操作??? --不是的,视图也可以用来进行新增\修改\删除 --利用学生信息表进行视图的增删改操作 create table TblStudent ( intStudentId int primary key identity, chvStudentName nvarchar(30) not null, dtmBirthday datetime null, chvCeilPhone nvarchar(11) not null ) go --创建视图:学生id、学生姓名、学生出生日期 create view view_Student as select intstudentid, chvstudentname,dtmbirthday from TblStudent go --通过视图完成对学生信息的新增insert into view_student(chvstudentname,dtmbirthday)values(zhangsan, 1989-9-9)go--上述sql会执行失败原因是学生的手机号不能为空 --如果修改视图alter view view_studentas select intstudentid, chvstudentname,dtmbirthday, chvCeilPhone from TblStudentgo --新增数据insert into view_student(chvstudentname,dtmbirthday, chvCeilPhone)values(zhangsan, 1989-9-9,13698766666)go--验证数据是在视图中还是在表中select * from TblStudent;goselect * from view_student --通过视图进行数据修改 update view_student set chvceilphone 13666666666where chvstudentname zhangsango select * from view_studentgo --通过视图删除数据delete from view_studentwhere chvstudentnamezhangsango select * from view_student;select * from TblStudent;go --如何删除视图--如何视图存在则删除否则不执行删除操作if exists (select 1 from sys.sysobjects where nameview_student)begin print 视图存在即将删除... drop view view_studentendelsebegin print 视图不存在end alter view view_RecordDetailas select cp.intComputerId, ci.intCardId, cp.chvComputerName, ci.chvUserName, ri.dtmStart, ri.dtmEnd, ri.mnyFee from TblRecordInfo as ri--as表示为表取别名 inner join TblCardInfo as ci on ri.intCardIdci.intCardId--内连接用inner join同时应该为两张表指定连接字段 inner join TblComputer as cp on ri.intComputerIdcp.intComputerId select * from view_recorddetailgo --如果执行下面的语句--A:失败 B:tblcomputer中的记录被删除 --c:recoredinfo表中的记录被删除 d:BCdelete from view_recorddetailwhere intComputerId2--答案:A --原因:视图或函数 view_recorddetail 不可更新因为修改会影响多个基表。 --是否是只要视图由多张表组成,那么就不能执行删除操作--否定的,是可以删除的,只是要满足指定的条件 转载于:https://www.cnblogs.com/changjiang/archive/2012/07/23/2605292.html