数据库查询(连接查询)
数据库查询(连接查询)
知识点
1.连接查询思想:把两张或者两张以上的表按照某种条件拼接成一张表,然后在一张表中做查询。 2.连接查询查询语法格式
where方法:
select columns_list from table1,table2 where table1.column 比较运算符 table2.column
/*按照两个表相同字段进行比较连接,符合条件的就形成新行*/
join方法:
select columns_list from table1 join table2 join table3 on table2.column 比较运算符table3.columnon table1.column 比较运算符{table2|table3}
/*注意连接的时候连接表和条件对应的顺序*/
select columns_list from table1_name1 [left/*左外连接,即join左边的表中的行即使不满足连接条件也要形成新行*/|right/*右外连接,即join右边的表中的行即使不满足连接条件也要形成新行*/] join table_name on table1.column 比较运算符 table2.column
练习题 1.查询选修了206号课程或101课程的学生的姓名,成绩。(students.学号=score.学号) SELECT students.姓名,成绩 FROM students,score WHERE students.学号=score.学号 AND 课程号=206 OR 课程号=101; 2.查询选修了课程名为’计算机基础’的成绩在70分以上的学生的姓名和成绩。(students.学号=score.学号,score.课程号=courses.课程号) SELECT students.姓名,成绩 FROM students,score,courses WHERE students.学号=score.学号 AND score.课程号=courses.课程号 AND 课程名=“计算机基础”AND成绩>70; 3.查询姓名为’王林’的学生信息以及他的选修信息。(students.学号=score.学号) SELECT students.*,score.* FROM students,score WHERE students.学号=score.学号 AND 姓名=“王林”; 4.查询’0600101’班的班级情况以及他们的课表情况(class.班级号=education.班级号) SELECT class.*,education.* FROM class,education WHERE class.班级号=education.班级号 AND 班级=“0600101”; 5.查询’0600101’班的班级情况和班主任姓名(class.班主任编号=teacher.教师编号) 查询’0600101’班的班级名称,以他们的课表情况和给他们上课的教师姓名(class.班级编号=education.班级编号,education.教师编号=teacher.教师编号) SELECT class.*,teacher.姓名 FROM class,teacher,education WHERE class.班级编号=education.班级编号,education.教师编号=teacher.教师编号 AND 班级=“0600101”;