视图,游标和索引

视图
1.基本概念:视图(View)是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,是从一个或几个表导出来的表,不是真实存在的基本表而是一张虚表;视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中,视图实际上是一个查询结果。

T-SQL语句创建视图:
use 用户  //我们使用的数据库
go
create view stu_course_grade  //表明我们要创建视图并加上视图的名字
as                           //通过查询语句确定视图的主体内容
 select student.sno,xingming,score.fengshu,course.kecheng
 from student,score,course
 where student.sno=score.sno and score.sno=course.sno
go

修改视图

use 用户   //使用的数据库
go
alter view stu_course_grade   //表明要进行修改视图并加上视图的名字
as                            //固定有个as
 select student.sno,xingming  //新的视图的查询语句
 from student

 go

更新视图:
//通过视图向表中插入记录 use tech
go
insert into view_stu values('21','张三','男','1998') //其中insert into 后面加视图名字,然后加上固定的values 表明要对视图插入记录,后面是记录的具体数据
//通过视图修改数据
use tech
go
update stu_course_grade
set grade=92
where sname='老王'and cname='数据结构'
go

删除视图

use tech
go
drop view stu_course_grade   //直接在drop后加上视图的名字
go 
索引
索引(Index)是对数据库表中一个或多个列的值进行排序的结构,其主要目的是提高SQLServer系统的性能,加快数据的查询速度、 减少系统的响应时间、提高系统性能。所以,索引就是加快检索表中数据的方法。

创建索引:

use
tech
go
create index birthday   //创建一个名字为birthday的索引
on student(sbirth desc) //在student表的sbirth列创建一个降序索引
go
删除索引
use tech
go
drop index birthday
go

游标
概念:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。
我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。因此,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通
游标的操作过程主要有(1)声明游标 (2)打开游标 (3)从游标中检索要查看的行(4)根据需要,对游标中当前位置的行执行修改操作(更新或删除)(5)关闭游标,删除游标

1.声明一个游标
declare cursor_stu cursor  //declare 表示声明 后面是游标名字,然后跟上cursor表示游标
dynamic                    //表明这个游标是动态的
for                        //for后面跟这个游标是干什么的
select sno,sname,sbirth,snative
from student
where sex='女'
for update of snative      //说明这个数据是可以修改的                                                                                  //这个游标与学生表student的查询结果关联,是动态的,可前后滚动的,其中籍贯信息可以修改

2.打开游标

open cursor_stu
go

3.操作游标
//从打开的cursor_stu游标中读取数据
打开该游标后
fetch next from cursor_stu
go

//从打开的游标中读取下一条记录,并存入变量
declare @sno varchar(12),@sname varchar(10),@sbirth date,@snative varchar(10)
fetch next from cursor_stu into @sno,@sname,@sbirth,@snative
select 学号=@sno,姓名=@sname,出生日期=@sbirth,籍贯=@snative
go

4.关闭游标
close cursor_stu
go

5.删除游标
deallocate cursor_stu
go

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值