1.左外连接与内连接的区别:
1.如果一个左表的行和右表的行匹配,这结果包含左表的行和右表的行,这些也是内连接产生的行
2.如果坐标的行不匹配右表的任何行,这结果包含左表的行和右表的NULL值行。
2.对于每个查询可以展示同时匹配和没有匹配的,null值识别输出行没有匹配的
3.如果感谢去没有匹配的行,可以增加一个条件限制输出仅仅包含空值,如下:
select name,language
from country left JOIN contryLanguage on Code=countryCode
where contryCode IS NULL;
12.3.2 写右外连接
和左连接基本相同,右连接产生右表的每一行,无论是否左表和右表有匹配项。
12.4 查询时表的别名和列的别名
不同的表和相同的表使用使用别名后连接
select contry.Name,city.name from country,city
where code=CuntryCode;
12.4.2 采用表的别名
1.如果相同列的表来自不同的数据库,必须是数据库.表.lie
2.一个表总是和它自己相连接时矛盾,不行使用表的别名
select t1.IndepYear,t1.name,t2.name
from country as t1,country as t2
where t1.IndepYear =t2.IndepYear and t1.name='Qatar';
12.5 多表的更新和删除语句
1.更新行在一个表通过转换信息来自其他的表
2.更新行在一个表,决定哪个行来更新通过引用其他的表
3.使用一条语句来更新多个表
4.删除行从一个表,决定哪个行来删除通过参照其他的表
5.删除行来自多个表使用一个单独的语句
update t1,t2 set t1.name=t2.name where t1.id=t2.id;
多表的删除可以由以下两种格式,
delete t1 from t1,t2 where t1.id=t2.id;
delete from t1 using t1,t2 where t1.id=t2.id;
删除匹配的行从两个表中:
delete t1,t2 from t1,t2 where t1.id=t2.id;
delete from t1,t2 using t1,t2 where t1.id=t2.id;