《第7章 使用视图和索引优化查询.ppt》由会员分享,可在线阅读,更多相关《第7章 使用视图和索引优化查询.ppt(43页珍藏版)》请在优知文库上搜索。
1、2select 列表名from 表名,n where 条件例:select *from xsqk where 出生日期75by 学号order by 学号4 select xsqk.学号,姓名,课程号,成绩 from xsqk,xs_kc where xsqk.学号 =xs_kc.学号 and 成绩 60selectfrom where select fromwhere说明说明:子查询执行后子查询执行后,若返回若返回1个单值个单值,则可用则可用比较运算比较运算符符来设置条件来设置条件:若返回一个列表若返回一个列表值值,则可用则可用:(not)in、any、allin6uselect into
2、from where xsqk.学号=xs_kc.学号 and xs_kc.课程号=kc.课程号生成一张新表,其中保存的是查询结果的数据7891011最基本的语句格式:ucreate view 视图 (列名表)with encryption as select查询语句 with check option 通过对象资源管理器创建视图12实例1:创建一个 名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:学生学号、男生姓名、生日。create view v1(学生学号,男生姓名,生日)as select 学号,姓名,出生日期 from xsqk wher
3、e 专业名=计算机网络 and 性别=1goselect *from v113实例2:创建一个 名为“v综合信息”的视图,用于查询学生的学号、姓名、专业名、课程名、成绩等信息create view V综合信息 as select xsqk.学号,姓名,专业名,课程名,成绩 from xsqk,xs_kc ,kc where xsqk.学号 =xs_kc.学号 and xs_kc.课程号=kc.课程号 exec sp_helptext v综合信息with encryption对视图的定义进行加密对视图的定义进行加密14课堂练习1:创建一个名为“V平均成绩”的视图,用于分组汇总查询每个学生的平均成
4、绩,将视图的列名分别改为:学生学号,个人平均分,并加密视图的定义。create view V平均成绩(学生学号,个人平均分)with encryptionas select 学号,avg(成绩)from xs_kc group by 学号15实例3:创建一个名为“V单科最高分”的视图,用于查询每门课程的最高分的学生学号、姓名、课程号、成绩信息。create view V单科最高分as select xsqk.学号,姓名,课程号,成绩 from xsqk,xs_kc where xsqk.学号=xs_kc.学号 and 成绩=any (select max(成绩)from xs_kc group
5、 by 课程号)16课堂练习2:创建一个名为“V全校最高分”的视图,用于查询所有成绩中的最高分的学生学号、姓名、专业名、课程号、成绩。create view V全校最高分asselect xsqk.学号,姓名,专业名,课程号,成绩 from xsqk,xs_kcwhere xsqk.学号=xs_kc.学号 and 成绩=(select max(成绩)from xs_kc)成绩=all(select 成绩 from xs_kc)17 语法格式:u alter view 视图 (列名表)with encryption as select查询语句 with check option 通过对象资源管理
6、器修改视图18实例4:在“v1”的视图中增加两列:专业名和所在系。alter view v1 (学生学号,男生姓名,生日,专业,系)as select 学号,姓名,出生日期,专业名,所在系 from xsqk where 专业名=计算机网络 and 性别=119实例5:修改名为“v综合信息”的视图,取消其加密属性,增加选项检查属性。alter view V综合信息 as select xsqk.学号,姓名,专业名,课程名,成绩 from xsqk,xs_kc,kc where xsqk.学号 =xs_kc.学号 and xs_kc.课程号=kc.课程号 with check option20u
7、dropview 2122-1.插入数据实例6:向“V1”视图中添加两条记录。insert into v1values(020106,李好,1981-04-22,计算机网络,计算机)insert into v1values(020107,周权,1981-07-08,信息安全,计算机)select *from xsqkselect *from v123-1.插入数据u可通过视图向基表中插入数据,但实际上,而不是存放在视图中。“with check option”24-1.插入数据实例7:假设“V1”视图已添加了“with check option”属性,通过视图向基表中添加两条记录。insert
8、 into v1values(020108,赵伟,1980-05-07,计算机网络,计算机)insert into v1values(020109,刘齐,1981-12-02,信息安全,计算机)请思考:这两条记录能否插入到基表中?能否在视图中能否显示?25-2.删除数据 delete fromwhere实例8:删除“V1”视图中学号为020108的记录。delete fromwhere26对于小表来说,是可行的。但对于有成千上万行的表来说,其搜索的效率非常低。建立索引。27281.索引的含义292.建立索引的优缺点303.使用索引的准则313.使用索引的准则textimage、charvarc
9、harbinary324.索引的类型331.创建索引的方法342.系统自动建立索引352.系统自动建立索引usecreate tablesmallint constraintprimary key char constraint uniquechar生成惟一性聚集索引生成惟一性非聚集索引363.手工建立索引(1)表索引命令格式ucreate uniqueclustered nonclusteredindexonasc desc默认值373.手工建立索引(1)表索引create unique indexon(课程名 desc)with drop_existingcreate indexon(课程
10、名 desc)删除同名的原索引,重建新索引。383.手工建立索引(1)表索引create unique clustered index pk_xs_kcon xs_kc(学号 desc,课程号)with pad_index,fillfactor=60,drop_existing中间级索引页也按“填充因子”指定的填充度填充叶级索引页按60%进行填充393.手工建立索引(1)表索引 请考虑:create indexon(姓名 desc,所在系)with pad_index,fillfactor=60 401.查看索引命令格式:uexec sp_helpindex 表名|视图名 用对象资源管理器方式412.删除索引命令格式:udrop index 表名.|视图名.索引名 ,n 实例6:删除表中的索引。udrop index kc.drop indexalter tabledrop constraint42create viewalter viewselectfrom43udrop index 索引名ualter table drop constraint