推荐
数据库原理
实验三 视图和索引实验
一、 实验目的
(1)理解索引和视图的概念。
(2)掌握索引的使用方法。
(3)掌握视图的定义和使用方法。
二、实验内容
1)建立索引。对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGL
IF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')
DROP INDEX SC. SC_ind;
GO
USE JWGL
CREATE INDEX SC_ind ON SC ( Cno, Grade DESC);
2)视图的定义和操作。
①在JWGL数据库中,完成视图的定义和视图上的查询、更新操作:
(1)建立计算机系学生的视图,并要求进行修改和插入操作时需保证该视图只能对计算机系的学生进行操作。
(2)建立选择了2号课程且成绩在80分以上的学生视图。
(3)建立一个反映学生出生年份的视图。
(4)在计算机系的视图c_student上查询年龄在18~20岁之间的学生的学号和姓名。
(5)在(4)的学生视图上查询成绩在90分以上的女学生的学号和姓名。
(6)在例(1)的视图上进行如下操作,将学号为950002的学生的姓名改为“张良”。
(7)在(1)的视图上进行如下操作,插入一个学生的信息。
(8)在(1)的视图进行如下操作,删除学号为980013的学生信息。
②在Market数据库中,在Market数据库上,试用SQL语句完成以下各项操作:
(1)请为北京客户建立一个订单情况的视图,包括订单编号、商品名称、订货数量、客户编号、客户名称。
(2)针对(1)中定义的视图,完成查询,查找客户张三的所有订单信息。
三、实验环境
MySQL,SQLyog。
四、实验前准备
学习建立视图和索引的T-SQL语言
五、实验步骤
根据实验内容书写相应的T-SQL语言,完场要求。
六、实验结果
1.建立索引
#实验三 视图和索引实验
#实验6 实验6 索引和视图
# 1)建立索引。对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
#索引的建立
#① ALTER TABLE ... ADD ...
ALTER TABLE SC ADD INDEX SC_ind ON SC(Cno, Grade DESC);
#② CREATE INDEX ... ON ...
CREATE INDEX SC_ind ON SC(Cno, Grade DESC);
#查索引
SHOW INDEX FROM SC ;
/*
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
sc 0 PRIMARY 1 Sno A 2 \N \N BTREE YES \N
sc 0 PRIMARY 2 Cno A 5 \N \N BTREE YES \N
sc 1 SC_ind 1 Cno A 3 \N \N BTREE YES \N
sc 1 SC_ind 2 Grade D 5 \N \N YES BTREE YES \N
*/
#索引的删除
#方式1:ALTER TABLE .... DROP INDEX ....
ALTER TABLE SC
DROP INDEX SC_ind;
#方式2:DROP INDEX ... ON ...
DROP INDEX SC_ind ON SC;
2.视图的定义和操作
(1)在JWGL数据库中,完成视图的定义和视图上的查询、更新操作
①建立计算机系学生的视图,并要求进行修改和插入操作时需保证该视图只能对计算机系的学生进行操作。
#2)视图的定义和操作。
#① 在JWGL数据库中,完成视图的定义和视图上的查询、更新操作:
#(1) 建立计算机系学生的视图,并要求进行修改和插入操作时需保证该视图只能对计算机系的学生进行操作。
CREATE VIEW c_student(Sno,Sname,Sex,Age,Phonenumber,Sdept)
AS(SELECT * FROM student WHERE Sdept='CS')