课程名:数据库系统
内容/作用:设计/实验/作业/练习
学习:基于MySql和Navicate视图、索引的应用
一、前言
1.了解索引、视图的基本概念、类型。
2.掌握视图的定义方法。
3.理解索引的定义方法。
二、环境与设备
1、设备:Windows 10
2、软件:MySql和Navicate
三、内容
数据库三级模式两级印象
外模式: 局部逻辑结构(视图)
模式:全局逻辑结构
内模式:
(一)视图的应用
1、建立名为“学生选课信息”的视图,视图中显示学号、姓名、课程号、课程名、成绩
create view 学生选课信息 as
select student.sno,sname,sc.cid,cname,ascore
from student,sc,course
where sc.cid=course.cid and student.sno=sc.sno
2、建立名为“数据库选课信息”的视图,视图中显示选修过数据库相关课程的学生选课信息:学号,姓名,课程名,成绩
create view 数据库选课信息 as
select student.sno,sname,sc.cid,cname,ascore
from student,sc,course
where sc.cid=course.cid and student.sno=sc.sno and course.cname like '%数据库%'
3、建立名为“学生选课门数”的视图,视图中显示每个学生的选课门数
create view 学生选课门数 as
select
from
where
4、建立名为“选课信息统计”的视图,视图中显示所有选课成绩的最高分、总分、平均分及选课总人数
create view 选课信息统计 as
select
from
where
5、建立名为“入校成绩统计信息”的视图,视图中显示各分数段的人数.
create view 入校成绩统计信息 as
select '300-400分' as 分数段,count(*)
from student
where ascore >=300 and ascore<400
union
select '400-500分' as 分数段,count(*)
from student
where ascore >=400 and ascore<500
(二)索引的应用
1、在student表中根据性别建立一个普通索引,索引名为:
index_sex。
create index index_sex on student(sex)
2、在student表中根据入校成绩和姓名创建一个名为:index_name_asco的普通索引。
create index index_name_asco on student(ascore,sname)
3、在course表中根据课程号和课程名创建一个(唯一型)索引,索引名为:index_cid_cname.
create unique index index_cid_cname on course(cid,cname)
4、在sc表中根据学号、课程号、成绩创建一个主索引,索引名为:index_scno
create primery key index index_scno on sc(sno,cid,scores)
alter index scno rename to index_scno
alter table sc add primary key index_scno(sno,cid,cxores)
alter table 表名
add column 新列名 数据类型[完整性约束]--新增字段
add 表级完整性约束--主键、外键等
drop column 列名 cascade|restrict --删除字段
drop constraint 完整性约束名 cascade|restrict --删除约束条件
alter column 列名 数据类型--修改字段
四、总结
数据库的完整性约束;
- 实体完整性:主键
- 参照完整性:外键(标间关系)
- 用户自定义完整性:数据类型、长度、默认值、是否NULL、check约束(取值范围)等