数据库作业

目录

数据库teaching中的表结构和表记录。

问题:

答案:


数据库teaching中的表结构和表记录。


   (1)学生信息表student
   #student表结构
     create table if not exists student (
     studentno  char(11) not null comment'学号', 
     sname char(8) not null comment'姓名', 
     sex enum('男', '女') default '男' comment'性别', 
     birthdate date not null comment'出生日期', 
     entrance int(3)  null comment'入学成绩',         
     phone varchar(12) not null comment'电话', 
     Email varchar(20) not null comment'电子信箱',
     primary key (studentno)
     );
   #student表常用数据
     studentno    sname sex    birthdate   entrance      phone          Email
     20112100072    许东方  男    2002/2/4         658      12545678998    [email protected] 
     20112111208    韩吟秋  女    2002/2/14    666      15878945612    [email protected] 
     20120203567    封白玫  女    2003/9/9         898      13245674564    [email protected]
     20120210009    崔舟帆  男    2002/11/5    789      13623456778    [email protected] 
     20123567897    赵雨思  女    2003/8/4     879      13175689345    [email protected]
     20125121109    梁一苇  女    2002/9/3      777      13145678921    [email protected] 
     20126113307    姚扶竹  女    2003/9/7      787      13245678543    [email protected]
     21125111109    敬秉辰  男    2004/3/1         789      15678945623 [email protected] 
     21125221327    何桐影  女    2004/12/4    879      13178978999  [email protected] 
     21131133071    崔依歌  男    2002/6/6         787   15556845645  [email protected] 
     21135222201    夏文斐  女    2005/10/6    867      15978945645  [email protected] 
     21137221508    赵临江  男    2005/2/13    789      12367823453  [email protected] 

数据库作业_第1张图片


   (2)课程信息表course
   #course表结构
     create table if not exists course (
     courseno  char(6) not null, 
     cname  char(6) not null, 
     type char(8) not null,  
     period int(2) not null, 
     exp int(2) not null,
     term int(2) not null,
     primary key (courseno)
     ); 
   #course表常用数据
     courseno    cname        type   period    exp    term
     c05103        高等数学        必修        64        16     2
     c05109        C语言        必修        48        16     2
     c05127        数据结构        必修        64        16     2
     c05138        软件工程        选修        48        8     5
     c06108        机械制图        必修        60        8     2
     c06127        机械设计        必修        64        8     3
     c06172        铸造工艺        选修        42        16     6
     c08106        经济法        必修        48        0     7
     c08123        金融学        必修        40        0     5
     c08171        会计软件        选修        32        8     8

数据库作业_第2张图片
   (3)成绩信息表score
   #score表结构
     create table if not exists score(
     studentno  char(11) not null, 
     courseno  char(6) not null, 
     daily float(4,1) default 0, 
     final float(4,1) default 0,
     primary key (studentno , courseno) 
     ); 
   #score表常用数据
     studentno    courseno     daily    final
     20112100072    c05103        99         92
     20120203567    c05103          78        67
     20120210009    c05103        65        98
     20125121109    c05103        88        79
     21125111109    c05103        96        97
     21137221508    c05103        77        92
     20112100072    c05109        95        82
     20120203567    c05109        87        86
     20125121109    c05109        77        82
     20126113307    c05109        89        95
     21125111109    c05109        87        82
     21125221327    c05109        89        95
     20120210009    c05138        88        89
     21137221508    c05138        74        91
     20112111208    c06108        77        82
     20120210009    c06108        79        88
     20123567897    c06108        99        99
     20126113307    c06108        78        67
     20112111208    c06127        85        91
     20120203567    c06127        97        97
     20112111208    c06172        89        95
     21125221327    c06172        88        62
     21131133071    c06172        78        95
     21125111109    c08106        77        91
     21135222201    c08106        91        77
     21137221508    c08106        89        62
     21131133071    c08123        78        89
     21135222201    c08123        79        99
     20112100072    c08171        82        69
     20125121109    c08171        85        91
     21131133071    c08171        88        98
     21135222201    c08171        85        92
     数据库作业_第3张图片
   (4)教师信息表teacher
   #teacher表结构
     create table if not exists teacher (
     teacherno  char(6) not null comment '教师编号', 
     tname  char(8) not null comment'教师姓名', 
     major  char(10) not null comment '专业', 
     prof char(10) not null comment '职称',
     department char(16) not null comment '部门',
     primary key (teacherno)
     ); 
   #teacher表常用数据
     teacherno    tname        major        prof     department
     t05001        苏超然        软件工程        教授        计算机学院
     t05002        常可观        会计学        助教        管理学院
     t05003        孙释安        网络安全        教授        计算机学院
     t05011        卢敖治        软件工程        副教授    计算机学院
     t05017        茅佳峰        软件测试        讲师        计算机学院
     t06011        夏期年        机械制造        教授        机械学院
     t06023        卢释舟        铸造工艺        副教授    机械学院
     t07019        韩庭宇        经济管理        讲师        管理学院
     t08017        白成园        金融管理        副教授    管理学院
     t08058        孙有存        数据科学        副教授    计算机学院

数据库作业_第4张图片
   (5)纽带表teach_course
   #teach_course表结构
     create table if not exists teach_course (
     teacherno char(6) not null, 
     courseno  char(6) not null, 
     primary key (teacherno,courseno) 
     );
   #teach_course表常用数据
     teacherno  courseno
     t05001        c05103
     t05002        c05109
     t05003        c05127
     t05011        c05138
     t05017        c06108
     t05017        c06172
     t06011        c06127
     t06023        c05127
     t06023        c06172
     t07019        c08106
     t08017        c08123
     t08058        c08171

数据库作业_第5张图片
   (6)选课信息表se_course
   #se_course表结构
     create table se_course
     (sc_no int(6) not null auto_increment, 
     studentno  char(11) not null, 
     courseno  char(6) not null, 
     teacherno char(6) not null,  
     score   int(3)    null,
     sc_time timestamp not null default now(), 
     primary key (sc_no)
     );
   #se_course表常用数据示例
     sc_no  studentno    courseno  teacherno  score   sc_time       
     1       21125111109   c06172    t05017     NULL    2020-12-09 18:33:45
     2       20120210009    c06108      t06023     NULL    2020-12-24 18:30:15
     3       20123567897    t01239      t05003     NULL    2020-12-26 18:09:09

 数据库作业_第6张图片

问题:

(1)在course表的cname列上创建索引IDX_cname。

(2)在student表的studentno和phone列上创建唯一索引uq_stu。并输出student表中的记录,查看输出结果的顺序。

(3)创建一个视图v_teacher,查询所有“计算机学院”教师的信息。

(4)创建一个视图v_avgstu,查询每个学生的学号、姓名及平均分,并且按照平均分降序排序。

(5)修改v_teacher的视图定义,添加with check option选项。

(6)通过视图v_teacher向基表teacher中分别插入数据('t05039','张馨月','计算机应用', '讲师', '计算机学院)和('t06018', '李书诚', '机械制造','副教授','机械学院'),并查看插入数据情况。

(7)通过视图v_teacher将基表teacher中教师编号为t05039的教师职称修改为‘副教授’。

答案:

1.

create index IDX_cname on course (cname);

select * from course;

数据库作业_第7张图片

2.

create unique index uq_stu on student (studentno, phone);

select * from student;

数据库作业_第8张图片

3.

create view v_teacher as select * from teacher where teacher.department='计算机学院';

select * from v_teacher;

数据库作业_第9张图片

4.

create view v_avgstu as select student.studentno,student.sname,avg(score.final) as avg from student join score on student.studentno=score.studentno group by score.studentno order by avg desc;

select * from v_avgstu;

数据库作业_第10张图片

5.

create view v_teacher as select * from teacher where teacher.department='计算机学院' with check option;

select * from v_teacher;

数据库作业_第11张图片

6.(注意:这里需要使用第3题创建的视图,因为这里插入了机械学院的数据)

insert into v_teacher(teacherno,tname,major,prof,department) values('t05039','张馨月','计算机应用','讲师','计算机学院');

insert into v_teacher(teacherno,tname,major,prof,department) values('t06018', '李书诚', '机械制造','副教授','机械学院');

select * from v_teacher;

数据库作业_第12张图片

7.

update v_teacher set prof='副教授' where teacherno='t05039';

select * from v_teacher;

数据库作业_第13张图片

你可能感兴趣的:(习题,数据库,sql,mysql)