数据库索引、约束使用

  1. 创建视图ST_CO_SR,它包含学号、姓名、性别、课程号、课程名、成绩等列,并输出该视图的所有记录。
create view ST_CO_SR as
select a.stno, a.stname, c.cno, cname, grade
from student a
         inner join score b on a.stno = b.stno
         inner join course c on c.cno = b.cno;

-- 输出视图结果
select *
from ST_CO_SR;
  • 输出
    在这里插入图片描述
  1. 创建视图ST_computer,它包含学生姓名、课程名、成绩等列,且专业为计算机,并输出该视图的所有记录。
create view ST_computer as
select stname,
       cname,
       grade
from student a
         inner join score b on a.stno = b.stno
         inner join course c on c.cno = b.cno
where speciality = '计算机';

-- 输出视图结果
select *
from ST_computer;
  • 输出
    在这里插入图片描述
  1. 创建视图 ST_AV,它包含学生姓名、平均分等列,并输出该视图的所有记录。
create view ST_AV as
select stname, avg(grade) as "avgScore"
from student a
         inner join
     score b on a.stno = b.stno
group by stname;

-- 输出视图结果
select *
from ST_AV;
  • 输出
    在这里插入图片描述
  1. 写出在teacher表的tno列上建立聚集索引的语句。
-- 查看已经存在的约束信息
sp_helpconstraint teacher;
-- 删除已经存在的聚集索引(根据上句输出信息)
drop index teacher.PK__teacher__DC10824F0AD2A005;
-- 删除主键索引
alter table teacher
    drop constraint PK__teacher__DC10824F0AD2A005;
-- clustered 聚集索引 nonclustered
create clustered index index_teacher_tnos on teacher (tno);
  • 输出
    在这里插入图片描述
  1. 写出在course表的credit列上建立非聚集索引的语句,并设置填充因子。
create nonclustered index index_course_credit on course (credit)
    with (PAD_Index = on,fillfactor = 5);
  • 输出
    在这里插入图片描述
  1. score表的grade列添加CHECK约束,限制grade列的值为0-100
alter table score
    add constraint check_grade check (grade between 0 and 100);
  • 输出
    在这里插入图片描述
  1. 使用T-SQL语句在student表的stsex列添加DEFAULT约束,使stsex列的默认值为
alter table student
    add constraint default_value default ('男') for stsex;
  • 输出
    在这里插入图片描述
  1. 删除student表的stno列的PRIMARY KEY约束,然后在该列添加PRIMARY KEY约束。
-- 查看已有主键名称
sp_helpconstraint student;
-- 删除主键
alter table student
    drop constraint PK__student__312D77347F60ED59;
-- 添加主键
alter table student
    add constraint pk_student_stno primary key (stno);
  • 输出
    在这里插入图片描述
  1. score表的stno列添加FOREIGN KEY约束。
alter table score[主表]
add constraint fk_score_stno foreign key (stno) references student[从表] (stno);
  • 输出
    在这里插入图片描述
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值