数据库sql
现在有一教学管理系统,具体的关系模式如下:
Student (no, name, sex, birthday, class)
Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree)
其中表中包含如下数据: Course表:
Score表:
Student表:
- 1 -
数据库sql
Teacher表:
根据上面描述完成下面问题:
(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL
1. 写出上述表的建表语句。
2. 给出相应的INSERT语句来完成题中给出数据的插入。
单表查询
3. 以class降序输出student的所有记录(student表全部属性)
命令:select * from Student order by class desc;
- 2 -
数据库sql
4. 列出教师所在的单位depart(不重复)。
命令:select distinct depart from Teacher;
5. 列出student表中所有记录的name、sex和class列
命令:select name,sex,class from Student;
6. 输出student中不姓王的同学的姓名。
命令:select name from Student except select name from Student where name like '王%';或
- 3 -
数据库sql
select name from Student where name not like '王%';
7. 输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)
命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80;
8. 输出班级为95001或性别为‘女’ 的同学(student表全部属性)
命令:select * from Student where class=95001 or sex='女';
- 4 -
数据库sql
9. 以cno升序、degree降序输出score的所有记录。(score表全部属性)
命令:select * from Score order by cno asc,degree desc;
10. 输出男生人数及这些男生分布在多少个班级中
命令:select COUNT(*),count(distinct class) from Student where sex='男';
11. 列出存在有85分以上成绩的课程编号。
命令:select distinct cno from Score where degree>85;
12. 输出95001班级的学生人数
命令:select COUNT(*) from Student where class=95001;
- 5 -