一.连接查询
1.内连接
语法:
Select fieldlist from table1 [inner] join table2 on table1.column1=table2.column2
[where condition]
说明:
column1 和 column2 为 table1 表与 table2表的主键和外键
table1和table2进行内连接时,inner可省略
"where condition"可省略,条件表达式
示例:显示战争类电影相关信息,要求输出电影名、导演名和票价
select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元) from movie m
join movie_type mt on m.typeId=mt.id where mt.typeName=' 战争 '
二.多表查询
1.简单多表连接查询是内连接查询的简单表现形式,与内连接查询的功能相同.
语法:
Select fieldlist from table1, table2 where table1.column1=table2.column2
[and 其他条件]
示例:显示战争类电影相关信息,要求输出电影名、导演名和票价
select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元) from movie m,
movie_type mt where m.typeId=mt.id and mt.typeName=' 战争 '
2.多表连接查询
语法:
select fieldlist from table1 join table2 on table1.column1 = table2.column2_1 join table3 on table2.column2_2 = table3.column3
[where condition]
三.外连接查询
1.左外连接(left join) 结果集包括 left join 子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值
示例:
用左外连接方式显示所有电影的相关信息,要求输出电影名、导演名、票价和类型
select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元),typeName 类型
from movie m left join movie_type mt on m.typeId=mt.id
2.右外连接(right join) 右外连接是左外连接的反向连接,它返回右表的所有行。如果右表的某行在左表中没有匹配行,则在相关联的结果集行中,表的所有选择列表列均为空值
示例:采用右外连接方式显示所有电影类型的相关信息,要求输出电影名、导演名、票价和类型
select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元),typeName 类型
from movie m right join movie_type mt on m.typeId=mt.id