实训四 索引与视图

MySQL开发技巧 - 索引

第1关:索引

编程要求

在右侧编辑器补充代码,要求如下:

① 在创建student表结构时为stu_id字段创建名为pk_student的主键索引;

② 在age字段上建立名为idx_age的普通索引;

③ 在classes字段上添加名为uniq_classes的唯一索引,并以降序排列;

④ 在namesexgrade三个字段上建立名为idx_group的组合索引。

use School;
#请在此处添加实现代码
########## Begin ##########

#1.创建名为pk_student的主键索引
create table student(
    stu_id int not null,
    name varchar(25) not null,
    age int not null,
    sex char(2) not null,
    classes int not null,
    grade int not null,
    primary key(stu_id)
);

#2.创建名为idx_age的普通索引
create index idx_age on student(age);

#3.创建名为uniq_classes的唯一索引

create unique index uniq_classes on student(classes);
#4.创建名为idx_group的组合索引
create index idx_group on student(name,sex,grade);
########## End ##########

MySQL开发技巧 - 视图

第1关:视图

编程要求

根据提示,在右侧编辑器补充代码,根据提供的表完成视图的创建,具体要求如下:

student表数据结构:

stu_idnamemathchinese
1Tom8078
2Jack7080
3Lucy9795

stu_info表数据结构:

stu_idclassescity
11633长沙
21632重庆
31633成都
  1. student表上创建视图stu_view,查询mathchinese字段并定义一个math+chinese成绩之和字段,值为两者之和;

  2. student表和stu_info表上,创建stu_classes视图,查询出stu_id、姓名和班级,查询条件为两表中的stu_id字段相同。

use School;

#请在此处添加实现代码
########## Begin ##########
-- 在student表上创建视图stu_view,查询math、chinese字段并定义一个math+chinese成绩之和字段,值为两者之和;

-- 在student表和stu_info表上,创建stu_classes视图,查询出stu_id、姓名和班级,查询条件为两表中的stu_id字段相同。
#1.创建单表视图
create view stu_view as select math,chinese,math+chinese from student;

#2.创建多表视图
CREATE VIEW stu_classes AS 
SELECT s.stu_id, s.name, info.classes
FROM student s INNER JOIN stu_info info
ON s.stu_id = info.stu_id;

########## End ##########

索引(teachingdb数据库)

第1关:索引

编程要求

在右侧编辑器补充代码,要求如下:

  • 为 student 表按姓名升序建立索引,索引名为 idx_sname。
 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  create index idx_sname on student(sname asc);
  
 /**********End**********/

第2关:删除索引-练习

编程要求

根据提示,在右侧编辑器补充代码,删除索引 idx_sname。

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  drop index idx_sname on student;
  
 /**********End**********/


SQL视图(teachingdb数据库)

第1关:创建视图

编程要求

根据提示,在右侧编辑器补充代码:

  • 建立计算机系的学生的视图 student_cs。 student表结构 

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  create view student_cs as select sno,sname,sdept,sclass,ssex,birthday,totalcredit from student where sdept like '计算机';
  
 /**********End**********/


 

第2关:创建视图-练习一

编程要求

根据提示,在右侧编辑器补充代码, 创建由学号和平均成绩两个字段的视图 v_grade_avg 成绩表score结构如下:

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  create view  v_grade_avg as select sno '学号',avg(grade) '平均成绩' from score group by sno;
  
 /**********End**********/


 MySQL-索引和视图

第1关:建立索引

任务描述

任务: 第一题 在jdxx数据表根据省份sf、城市cs、区县qx和名称name建立主索引zsy 第二题 在jdxx数据表根据名称name建立普通索引namesy

 use province;
 #代码开始
alter table jdxx add   PRIMARY  key (sf,cs,qx,name);

 create index namesy on jdxx(name);
 
 #代码结束
 show index in jdxx\g;

第2关:建立视图并更新视图

任务描述

本关任务: 建立视图csxx,显示jdxx数据表的cs长沙市的区县qx、名称mc。 根据视图csxx,将开福区qx的西湖街道name修改为月湖街道

use province;
#代码开始
CREATE VIEW csxx AS 
SELECT qx, name
FROM jdxx
WHERE cs = '长沙市' and qx IS NOT NULL;

UPDATE csxx 
SET name = '月湖街道'
WHERE qx = '开福区' and name = '西湖街道';


#代码结束
select * from csxx;

第3关:建立基于多表的视图

任务描述

本关任务:建立基于多表的视图

任务要求

根据jdxx数据表和qxyzbm数据表 建立视图csbm 视图中有长沙市的区县qx、名称name和区县编码qxbm字段

use province
 #代码开始
 create view csbm as 
 select jdxx.qx,jdxx.name,qxbm 
 from jdxx join qxyzbm
 on jdxx.qx=qxyzbm.qx
 and jdxx.cs='长沙市';


 #代码结束
 select * from csbm;

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galaxy223

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值