实验三 多表查询

创建数据库关系图的方法

首先在右击数据库–>还原数据库,选择目标数据库,按下图的顺序就能导入bak文件了

sql server2012添加查询用户 sql server怎么新建查询_数据库


然后是创建关系图

点击教学管理,右击数据库关系图,点击新建,再将表依次添加进去就好了

sql server2012添加查询用户 sql server怎么新建查询_字段_02


创建出来是这样的

可随意移动布局

sql server2012添加查询用户 sql server怎么新建查询_sql_03

查询部分

1、查询所有学生的成绩,显示字段为学号,姓名,课程名,成绩。

SELECT 学生表.学号,姓名,课程名,成绩
FROM 学生表,成绩表,课程表
WHERE 学生表.学号=成绩表.学号 AND 成绩表.课程号=课程表.课程号;

2、查询所有学生的平均成绩,显示字段为学号,姓名,平均成绩。

SELECT 学生表.学号,姓名,AVG(成绩) as 平均成绩
FROM 学生表,成绩表
WHERE 学生表.学号=成绩表.学号
GROUP BY 学生表.学号,姓名;

3、查询教授英语课程的有哪些教师,显示字段为课程号,课程名,姓名。

SELECT 课程表.课程号,课程名,姓名
FROM 授课表,课程表,教师表
WHERE 课程表.课程号=授课表.课程号 AND 授课表.教师号=教师表.教师号
      AND 课程名 LIKE '英语%';

4、查找中文专业的教师信息,显示字段为教师号,姓名,姓别,职称, 专业名称。

SELECT 教师号,教师表.姓名,教师表.性别,职称,专业名称
FROM 专业表,教师表
WHERE 专业表.专业编号=教师表.专业编号 AND 专业表.专业名称 = '中文'

5、查找古代汉语的学生成绩,显示字段为学号,姓名,课程名,成绩。

SELECT 学生表.学号,姓名,课程名,成绩
FROM 成绩表,学生表,课程表
WHERE 成绩表.学号=学生表.学号 AND 成绩表.课程号 = 课程表.课程号 AND 课程表.课程名 = '古代汉语‘';

6、查找教授上的课程有哪些,显示字段为课程号和课程名。

SELECT 课程表.课程号,课程名
FROM  课程表,授课表,教师表
WHERE 课程表.课程号=授课表.课程号 AND 授课表.教师号=教师表.教师号 AND 教师表.职称 = '教授'

7、查找各个专业的教师数目,显示字段为专业名称和人数。

SELECT 专业名称,COUNT(DISTINCT 授课表.教师号)as 人数
FROM  专业表,教师表,授课表
WHERE 专业表.专业编号=教师表.专业编号 AND 教师表.教师号=授课表.教师号
GROUP BY 专业名称

8、总分表和学生表做右查询,显示所有信息。

SELECT *
FROM  总分表 RIGHT JOIN 学生表 ON (总分表.学号=学生表.学号)

9、学生表和成绩表做左查询,显示所有信息。

SELECT *
FROM  学生表 LEFT JOIN 成绩表 ON (学生表.学号=成绩表.学号)

10.教师表和专业表做交叉表查询。

select *from 教师表 cross join 专业表

希望能帮助到大家,有遇到不会的实验可以私聊,在能力允许的情况下会尽可能的给你提供帮助