diff --git a/实验七.sql b/实验七.sql new file mode 100644 index 0000000..eb55dd8 --- /dev/null +++ b/实验七.sql @@ -0,0 +1,42 @@ +-- (1)两个关系的连接查询 +SELECT * FROM 选课表 +JOIN 学生表 ON 选课表.学号=学生表.学号; + +-- (2)带其他查询条件的两个关系的连接查询 +SELECT * FROM 选课表 +JOIN 学生表 ON 选课表.学号=学生表.学号 +WHERE 学生表.姓名='张三'; + +-- (3)多个关系(三个以上)的连接查询 +SELECT * FROM 选课表 +JOIN 学生表 ON 选课表.学号=学生表.学号 +JOIN 课程表 ON 选课表.课程编号=课程表.课程编号; + +-- (4)两个关系的广义笛卡尔积运算结果 +SELECT * FROM 课程表 +CROSS JOIN 教师表; + +-- (5)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自然连接的结果 +SELECT * FROM 选课表 +INNER JOIN 学生表 ON 选课表.学号=学生表.学号; + +-- (6)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段 +SELECT 教师表.姓名,教师表.职称,课程表.课程名称,课程表.课程性质 +FROM 课程表 +INNER JOIN 教师表 ON 课程表.责任教师=教师表.教师编号; + +-- (7)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息) +-- 左连接 +SELECT 教师表.*,课程表.课程名称,课程表.课程性质 +FROM 教师表 +LEFT JOIN 课程表 ON 课程表.责任教师=教师表.教师编号; + +-- (8)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反映目前没有确定责任教师的课程信息 +SELECT 教师表.姓名,教师表.职称,课程表.课程名称,课程表.课程性质 +FROM 课程表 +LEFT JOIN 教师表 ON 课程表.责任教师=教师表.教师编号; + +-- (9)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息 +SELECT 教师表.姓名,教师表.职称,课程表.课程名称,课程表.课程性质 +FROM 课程表 +FULL OUTER JOIN 教师表 ON 课程表.责任教师=教师表.教师编号; \ No newline at end of file